<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><table class="js-file-line-container highlight tab-size" data-tab-size="8" style="box-sizing: border-box; border-spacing: 0px; border-collapse: collapse; tab-size: 8; color: rgb(36, 41, 46); font-family: -apple-system, system-ui, &quot;Segoe UI&quot;, Helvetica, Arial, sans-serif, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, &quot;Segoe UI Symbol&quot;; font-size: 14px; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);"><tbody style="box-sizing: border-box;" class=""><tr style="box-sizing: border-box;" class=""><td id="LC161" class="js-file-line blob-code-inner blob-code" style="box-sizing: border-box; padding: 0px 10px; position: relative; line-height: 20px; vertical-align: top; overflow: visible; font-family: SFMono-Regular, Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace; font-size: 12px; word-wrap: normal; white-space: pre;"><font color="#000000" class=""><span class="pl-k" style="box-sizing: border-box;">My ideas was to only rename the datatypes in proj.h, so not breaking backwards compatibility. I am quickly realising that it is
not so simple as I thought. I am sure it is possible and I think it is worth the hassle to make sure we don’t clash with other
libraries in the future.

One change I believe we can do to fix the immediate problem is to remove the following two lines from projects.h (line 161-162): 

typedef</span> <span class="pl-k" style="box-sizing: border-box;">struct</span> { <span class="pl-k" style="box-sizing: border-box;">double</span> u, v; }        UV;
<span class="pl-k" style="box-sizing: border-box; font-variant-ligatures: normal;">typedef</span><span style="font-variant-ligatures: normal;" class=""> </span><span class="pl-k" style="box-sizing: border-box; font-variant-ligatures: normal;">struct</span><span style="font-variant-ligatures: normal;" class=""> { </span><span class="pl-k" style="box-sizing: border-box; font-variant-ligatures: normal;">double</span></font><span style="font-variant-ligatures: normal;" class=""><font color="#000000" class=""> u, v, w; }     UVW;</font>

The build completes and UV/UVW doesn’t get in the way of anything else. Have I overlooked something that hinders this idea?

/Kristian</span></td></tr></tbody></table><div><br class=""><blockquote type="cite" class=""><div class="">On 9 Feb 2018, at 13:17, Thomas Knudsen &lt;<a href="mailto:knudsen.thomas@gmail.com" class="">knudsen.thomas@gmail.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">
&gt; The typedef was introduced in projects.h in proj 5.0.0-rc1.

<br class=""><div class="gmail_extra"><br class=""></div><div class="gmail_extra">It has actually been part of PROJ forever. For a number of releases, however, it has been deffed away as, iirc, projUV: Part of a hack for making all of XY, LP and UV look alike (I have never understood why it was necessary, and it broke the classic PROJ pj_init/pj_fwd/pj_inv/pj_free API).<br class=""><br class=""></div><div class="gmail_extra">It took major code surgery to step between all the tripwires the projNN deffing had created, so be careful when touching it, and note that renaming datatypes will break backward compatibility for everyone.<br class=""></div><div class="gmail_extra">UV was hardly ever used, so perhaps it is way easier to just rename UV, which is mostly a PROJ internal type.<br class=""><br class=""></div><div class="gmail_extra">This would also open an opportunity to consider eliminating the projection approximation subsystem (gen_cheb.c, mk_cheby.c, biveval.c etc.) - a nice milestone for release 6 or 7 :-)<br class=""><br class=""></div><div class="gmail_extra">/thomas<br class=""></div></div>
_______________________________________________<br class="">Proj mailing list<br class=""><a href="mailto:Proj@lists.maptools.org" class="">Proj@lists.maptools.org</a><br class="">http://lists.maptools.org/mailman/listinfo/proj</div></blockquote></div><br class=""></body></html>