Rework windows to use zc:wchar_t for better c++ conformance and compatibility with modern libraries

master
Rye 2025-02-11 05:02:45 -05:00
parent 9b060f7fcc
commit 179b29252d
24 changed files with 174 additions and 170 deletions

View File

@ -116,11 +116,11 @@
<key>archive</key> <key>archive</key>
<map> <map>
<key>hash</key> <key>hash</key>
<string>320a8b76b1d30e5c1e7095c0c8315e8d0b68cbc5</string> <string>a4553df5b8fde2e9cd54ebb94c6efb8eb5fe3c38</string>
<key>hash_algorithm</key> <key>hash_algorithm</key>
<string>sha1</string> <string>sha1</string>
<key>url</key> <key>url</key>
<string>https://github.com/secondlife/3p-boost/releases/download/v1.86.0-dfe318c/boost-1.86-darwin64-11977000894.tar.zst</string> <string>https://github.com/secondlife/3p-boost/releases/download/v1.86.0-be1a669/boost-1.86-darwin64-13246092114.tar.zst</string>
</map> </map>
<key>name</key> <key>name</key>
<string>darwin64</string> <string>darwin64</string>
@ -130,11 +130,11 @@
<key>archive</key> <key>archive</key>
<map> <map>
<key>hash</key> <key>hash</key>
<string>589a3577448190f87dc1c3bb8149ff57780772d8</string> <string>4a2a19dc5cb555e157ad894ba917f5a83a35b20d</string>
<key>hash_algorithm</key> <key>hash_algorithm</key>
<string>sha1</string> <string>sha1</string>
<key>url</key> <key>url</key>
<string>https://github.com/secondlife/3p-boost/releases/download/v1.86.0-dfe318c/boost-1.86-linux64-11977000894.tar.zst</string> <string>https://github.com/secondlife/3p-boost/releases/download/v1.86.0-be1a669/boost-1.86-linux64-13246092114.tar.zst</string>
</map> </map>
<key>name</key> <key>name</key>
<string>linux64</string> <string>linux64</string>
@ -144,11 +144,11 @@
<key>archive</key> <key>archive</key>
<map> <map>
<key>hash</key> <key>hash</key>
<string>28a268d88e26f081bc2341400ca6a5bc72ac78a8</string> <string>8a1fa9366bfe49009286e4805d7aaedb7c3df82e</string>
<key>hash_algorithm</key> <key>hash_algorithm</key>
<string>sha1</string> <string>sha1</string>
<key>url</key> <key>url</key>
<string>https://github.com/secondlife/3p-boost/releases/download/v1.86.0-dfe318c/boost-1.86-windows64-11977000894.tar.zst</string> <string>https://github.com/secondlife/3p-boost/releases/download/v1.86.0-be1a669/boost-1.86-windows64-13246092114.tar.zst</string>
</map> </map>
<key>name</key> <key>name</key>
<string>windows64</string> <string>windows64</string>
@ -220,11 +220,11 @@
<key>archive</key> <key>archive</key>
<map> <map>
<key>hash</key> <key>hash</key>
<string>3a8de0ed0611279bd393df1cb224dfd3bbb907b7</string> <string>bf2fe4e8272e990bc8687b3b37bf4bb2b2ad6eb4</string>
<key>hash_algorithm</key> <key>hash_algorithm</key>
<string>sha1</string> <string>sha1</string>
<key>url</key> <key>url</key>
<string>https://github.com/secondlife/3p-colladadom/releases/download/v2.3-r9/colladadom-2.3.0-r9-darwin64-12258978859.tar.zst</string> <string>https://github.com/secondlife/3p-colladadom/releases/download/v2.3-r10/colladadom-2.3.0-r10-darwin64-13259816660.tar.zst</string>
</map> </map>
<key>name</key> <key>name</key>
<string>darwin64</string> <string>darwin64</string>
@ -234,11 +234,11 @@
<key>archive</key> <key>archive</key>
<map> <map>
<key>hash</key> <key>hash</key>
<string>c2cc015c86536cb4a77d909af1644e54a031ee6f</string> <string>118e509ca464182ef4b94ee8c4aa5b14a6c52a94</string>
<key>hash_algorithm</key> <key>hash_algorithm</key>
<string>sha1</string> <string>sha1</string>
<key>url</key> <key>url</key>
<string>https://github.com/secondlife/3p-colladadom/releases/download/v2.3-r9/colladadom-2.3.0-r9-linux64-12258978859.tar.zst</string> <string>https://github.com/secondlife/3p-colladadom/releases/download/v2.3-r10/colladadom-2.3.0-r10-linux64-13259816660.tar.zst</string>
</map> </map>
<key>name</key> <key>name</key>
<string>linux64</string> <string>linux64</string>
@ -248,18 +248,18 @@
<key>archive</key> <key>archive</key>
<map> <map>
<key>hash</key> <key>hash</key>
<string>c4807fd3352e6c175f7a28128e0269e524b051cb</string> <string>d7aee1b2ec17bd88a2c27359281b58a11ec52d48</string>
<key>hash_algorithm</key> <key>hash_algorithm</key>
<string>sha1</string> <string>sha1</string>
<key>url</key> <key>url</key>
<string>https://github.com/secondlife/3p-colladadom/releases/download/v2.3-r9/colladadom-2.3.0-r9-windows64-12258978859.tar.zst</string> <string>https://github.com/secondlife/3p-colladadom/releases/download/v2.3-r10/colladadom-2.3.0-r10-windows64-13259816660.tar.zst</string>
</map> </map>
<key>name</key> <key>name</key>
<string>windows64</string> <string>windows64</string>
</map> </map>
</map> </map>
<key>version</key> <key>version</key>
<string>2.3.0-r9</string> <string>2.3.0-r10</string>
</map> </map>
<key>cubemaptoequirectangular</key> <key>cubemaptoequirectangular</key>
<map> <map>
@ -328,11 +328,11 @@
<key>archive</key> <key>archive</key>
<map> <map>
<key>hash</key> <key>hash</key>
<string>4f2f5ea4de2891d2ffcc707f984729ddb523d5e1</string> <string>e742b1e2d0a58d607b023bf55411041ac65e8a76</string>
<key>hash_algorithm</key> <key>hash_algorithm</key>
<string>sha1</string> <string>sha1</string>
<key>url</key> <key>url</key>
<string>https://github.com/secondlife/3p-curl/releases/download/v7.54.1-r2/curl-7.54.1-12258966289-darwin64-12258966289.tar.zst</string> <string>https://github.com/secondlife/3p-curl/releases/download/v7.54.1-r3/curl-7.54.1-13259824618-darwin64-13259824618.tar.zst</string>
</map> </map>
<key>name</key> <key>name</key>
<string>darwin64</string> <string>darwin64</string>
@ -342,11 +342,11 @@
<key>archive</key> <key>archive</key>
<map> <map>
<key>hash</key> <key>hash</key>
<string>a4d6303c59f9c9760c5243b6d4d7b7b199ba9356</string> <string>49621c70f385d37c95bcb69a9a24d86ac25f4781</string>
<key>hash_algorithm</key> <key>hash_algorithm</key>
<string>sha1</string> <string>sha1</string>
<key>url</key> <key>url</key>
<string>https://github.com/secondlife/3p-curl/releases/download/v7.54.1-r2/curl-7.54.1-12258966289-linux64-12258966289.tar.zst</string> <string>https://github.com/secondlife/3p-curl/releases/download/v7.54.1-r3/curl-7.54.1-13259824618-linux64-13259824618.tar.zst</string>
</map> </map>
<key>name</key> <key>name</key>
<string>linux64</string> <string>linux64</string>
@ -356,11 +356,11 @@
<key>archive</key> <key>archive</key>
<map> <map>
<key>hash</key> <key>hash</key>
<string>ec0d4717e4b841107b19cab7bd705f327a89f397</string> <string>2522201692116cf0adb7203e169be9126885108c</string>
<key>hash_algorithm</key> <key>hash_algorithm</key>
<string>sha1</string> <string>sha1</string>
<key>url</key> <key>url</key>
<string>https://github.com/secondlife/3p-curl/releases/download/v7.54.1-r2/curl-7.54.1-12258966289-windows64-12258966289.tar.zst</string> <string>https://github.com/secondlife/3p-curl/releases/download/v7.54.1-r3/curl-7.54.1-13259824618-windows64-13259824618.tar.zst</string>
</map> </map>
<key>name</key> <key>name</key>
<string>windows64</string> <string>windows64</string>
@ -373,7 +373,7 @@
<key>copyright</key> <key>copyright</key>
<string>Copyright (c) 1996 - 2014, Daniel Stenberg, (daniel@haxx.se).</string> <string>Copyright (c) 1996 - 2014, Daniel Stenberg, (daniel@haxx.se).</string>
<key>version</key> <key>version</key>
<string>7.54.1-12258966289</string> <string>7.54.1-13259824618</string>
<key>name</key> <key>name</key>
<string>curl</string> <string>curl</string>
<key>description</key> <key>description</key>
@ -644,11 +644,11 @@
<key>archive</key> <key>archive</key>
<map> <map>
<key>hash</key> <key>hash</key>
<string>e079a1b6f47d02ed63ca5cffec79ac75532f6eaf</string> <string>5e6c7b9aaf73d90d7feab846a4024193c48eff6c</string>
<key>hash_algorithm</key> <key>hash_algorithm</key>
<string>sha1</string> <string>sha1</string>
<key>url</key> <key>url</key>
<string>https://github.com/secondlife/3p-freetype/releases/download/v2.13.3-r2/freetype-2.13.3-r2-darwin64-12259007838.tar.zst</string> <string>https://github.com/secondlife/3p-freetype/releases/download/v2.13.3-r3/freetype-2.13.3-r3-darwin64-13259804885.tar.zst</string>
</map> </map>
<key>name</key> <key>name</key>
<string>darwin64</string> <string>darwin64</string>
@ -658,11 +658,11 @@
<key>archive</key> <key>archive</key>
<map> <map>
<key>hash</key> <key>hash</key>
<string>6e33a17fb9360a670dfbac51efbe5f4c2bb88c81</string> <string>a9a3c371958e64a49b07d7be8f59218dfd6b0352</string>
<key>hash_algorithm</key> <key>hash_algorithm</key>
<string>sha1</string> <string>sha1</string>
<key>url</key> <key>url</key>
<string>https://github.com/secondlife/3p-freetype/releases/download/v2.13.3-r2/freetype-2.13.3-r2-linux64-12259007838.tar.zst</string> <string>https://github.com/secondlife/3p-freetype/releases/download/v2.13.3-r3/freetype-2.13.3-r3-linux64-13259804885.tar.zst</string>
</map> </map>
<key>name</key> <key>name</key>
<string>linux64</string> <string>linux64</string>
@ -672,18 +672,18 @@
<key>archive</key> <key>archive</key>
<map> <map>
<key>hash</key> <key>hash</key>
<string>6a543ab76d8e2095f811e46cf4e8a2f454934f77</string> <string>ad7fbc4a01607ec43d86035a49dadd43d6f2a4e5</string>
<key>hash_algorithm</key> <key>hash_algorithm</key>
<string>sha1</string> <string>sha1</string>
<key>url</key> <key>url</key>
<string>https://github.com/secondlife/3p-freetype/releases/download/v2.13.3-r2/freetype-2.13.3-r2-windows64-12259007838.tar.zst</string> <string>https://github.com/secondlife/3p-freetype/releases/download/v2.13.3-r3/freetype-2.13.3-r3-windows64-13259804885.tar.zst</string>
</map> </map>
<key>name</key> <key>name</key>
<string>windows64</string> <string>windows64</string>
</map> </map>
</map> </map>
<key>version</key> <key>version</key>
<string>2.13.3-r2</string> <string>2.13.3-r3</string>
</map> </map>
<key>glext</key> <key>glext</key>
<map> <map>
@ -1210,11 +1210,11 @@
<key>archive</key> <key>archive</key>
<map> <map>
<key>hash</key> <key>hash</key>
<string>75ff1513c5527a541bac0b685a90a49afb086156</string> <string>a453355ee032f79aea4142218a957085a22c7656</string>
<key>hash_algorithm</key> <key>hash_algorithm</key>
<string>sha1</string> <string>sha1</string>
<key>url</key> <key>url</key>
<string>https://github.com/secondlife/3p-libpng/releases/download/v1.6.44-r1/libpng-1.6.44-r1-darwin64-11965237099.tar.zst</string> <string>https://github.com/secondlife/3p-libpng/releases/download/v1.6.44-r2/libpng-1.6.44-r2-darwin64-13246065198.tar.zst</string>
</map> </map>
<key>name</key> <key>name</key>
<string>darwin64</string> <string>darwin64</string>
@ -1224,11 +1224,11 @@
<key>archive</key> <key>archive</key>
<map> <map>
<key>hash</key> <key>hash</key>
<string>23967758d45afc1e2243c3669ca045945de588a7</string> <string>75c7608646c9f5b99b1a9e3946326e2804a304d7</string>
<key>hash_algorithm</key> <key>hash_algorithm</key>
<string>sha1</string> <string>sha1</string>
<key>url</key> <key>url</key>
<string>https://github.com/secondlife/3p-libpng/releases/download/v1.6.44-r1/libpng-1.6.44-r1-linux64-11965237099.tar.zst</string> <string>https://github.com/secondlife/3p-libpng/releases/download/v1.6.44-r2/libpng-1.6.44-r2-linux64-13246065198.tar.zst</string>
</map> </map>
<key>name</key> <key>name</key>
<string>linux64</string> <string>linux64</string>
@ -1238,11 +1238,11 @@
<key>archive</key> <key>archive</key>
<map> <map>
<key>hash</key> <key>hash</key>
<string>19ac0a301438a0cbe8cb65179ce9e130f5fd827a</string> <string>09af51774c4ee7c03fe67a87dfc52e846aa625ea</string>
<key>hash_algorithm</key> <key>hash_algorithm</key>
<string>sha1</string> <string>sha1</string>
<key>url</key> <key>url</key>
<string>https://github.com/secondlife/3p-libpng/releases/download/v1.6.44-r1/libpng-1.6.44-r1-windows64-11965237099.tar.zst</string> <string>https://github.com/secondlife/3p-libpng/releases/download/v1.6.44-r2/libpng-1.6.44-r2-windows64-13246065198.tar.zst</string>
</map> </map>
<key>name</key> <key>name</key>
<string>windows64</string> <string>windows64</string>
@ -1255,7 +1255,7 @@
<key>copyright</key> <key>copyright</key>
<string>Copyright (c) 2004, 2006-2013 Glenn Randers-Pehrson</string> <string>Copyright (c) 2004, 2006-2013 Glenn Randers-Pehrson</string>
<key>version</key> <key>version</key>
<string>1.6.44-r1</string> <string>1.6.44-r2</string>
<key>name</key> <key>name</key>
<string>libpng</string> <string>libpng</string>
<key>description</key> <key>description</key>
@ -1300,11 +1300,11 @@
<key>archive</key> <key>archive</key>
<map> <map>
<key>hash</key> <key>hash</key>
<string>a7062e4feef42461b9acb4bfcef99bea5c89945e</string> <string>372c92936d940b1cfb5ba34310691d4bb435c161</string>
<key>hash_algorithm</key> <key>hash_algorithm</key>
<string>sha1</string> <string>sha1</string>
<key>url</key> <key>url</key>
<string>https://github.com/secondlife/3p-libxml2/releases/download/v2.13.5-r1/libxml2-2.13.5-r1-darwin64-11967192668.tar.zst</string> <string>https://github.com/secondlife/3p-libxml2/releases/download/v2.13.5-r2/libxml2-2.13.5-r2-darwin64-13246071272.tar.zst</string>
</map> </map>
<key>name</key> <key>name</key>
<string>darwin64</string> <string>darwin64</string>
@ -1314,11 +1314,11 @@
<key>archive</key> <key>archive</key>
<map> <map>
<key>hash</key> <key>hash</key>
<string>991aad5931d5f05e43b8750ad81ae59ac6013e59</string> <string>ba6fbc34112b1acab1c8615dcd13de983f3678d3</string>
<key>hash_algorithm</key> <key>hash_algorithm</key>
<string>sha1</string> <string>sha1</string>
<key>url</key> <key>url</key>
<string>https://github.com/secondlife/3p-libxml2/releases/download/v2.13.5-r1/libxml2-2.13.5-r1-linux64-11967192668.tar.zst</string> <string>https://github.com/secondlife/3p-libxml2/releases/download/v2.13.5-r2/libxml2-2.13.5-r2-linux64-13246071272.tar.zst</string>
</map> </map>
<key>name</key> <key>name</key>
<string>linux64</string> <string>linux64</string>
@ -1328,11 +1328,11 @@
<key>archive</key> <key>archive</key>
<map> <map>
<key>hash</key> <key>hash</key>
<string>4c00019229adc761673808567b8dcd64c7ba4a85</string> <string>71968c4b621636e8ae0c5680e631f4aa67561944</string>
<key>hash_algorithm</key> <key>hash_algorithm</key>
<string>sha1</string> <string>sha1</string>
<key>url</key> <key>url</key>
<string>https://github.com/secondlife/3p-libxml2/releases/download/v2.13.5-r1/libxml2-2.13.5-r1-windows64-11967192668.tar.zst</string> <string>https://github.com/secondlife/3p-libxml2/releases/download/v2.13.5-r2/libxml2-2.13.5-r2-windows64-13246071272.tar.zst</string>
</map> </map>
<key>name</key> <key>name</key>
<string>windows64</string> <string>windows64</string>
@ -1345,7 +1345,7 @@
<key>copyright</key> <key>copyright</key>
<string>Copyright (C) 1998-2012 Daniel Veillard. All Rights Reserved.</string> <string>Copyright (C) 1998-2012 Daniel Veillard. All Rights Reserved.</string>
<key>version</key> <key>version</key>
<string>2.13.5-r1</string> <string>2.13.5-r2</string>
<key>name</key> <key>name</key>
<string>libxml2</string> <string>libxml2</string>
<key>description</key> <key>description</key>
@ -1739,11 +1739,11 @@
<key>archive</key> <key>archive</key>
<map> <map>
<key>hash</key> <key>hash</key>
<string>40ef787f43a47acb18fd06cb9605f2f1ec6273fd</string> <string>b628d088e1f368a0cd51a6b66292aaf9a025e2d4</string>
<key>hash_algorithm</key> <key>hash_algorithm</key>
<string>sha1</string> <string>sha1</string>
<key>url</key> <key>url</key>
<string>https://github.com/secondlife/3p-minizip-ng/releases/download/v4.0.7-r2/minizip_ng-4.0.7-r2-darwin64-11967198844.tar.zst</string> <string>https://github.com/secondlife/3p-minizip-ng/releases/download/v4.0.7-r3/minizip_ng-4.0.7-r3-darwin64-13246046977.tar.zst</string>
</map> </map>
<key>name</key> <key>name</key>
<string>darwin64</string> <string>darwin64</string>
@ -1753,11 +1753,11 @@
<key>archive</key> <key>archive</key>
<map> <map>
<key>hash</key> <key>hash</key>
<string>2c403efb5c59e7189b5e86a9001bb4f9e0647f6e</string> <string>492ce9175b730d43df63821c4481685e035af623</string>
<key>hash_algorithm</key> <key>hash_algorithm</key>
<string>sha1</string> <string>sha1</string>
<key>url</key> <key>url</key>
<string>https://github.com/secondlife/3p-minizip-ng/releases/download/v4.0.7-r2/minizip_ng-4.0.7-r2-linux64-11967198844.tar.zst</string> <string>https://github.com/secondlife/3p-minizip-ng/releases/download/v4.0.7-r3/minizip_ng-4.0.7-r3-linux64-13246046977.tar.zst</string>
</map> </map>
<key>name</key> <key>name</key>
<string>linux64</string> <string>linux64</string>
@ -1767,11 +1767,11 @@
<key>archive</key> <key>archive</key>
<map> <map>
<key>hash</key> <key>hash</key>
<string>18a3d4adf09074f4ed97f7d086b30ce828d3508b</string> <string>58773e707ff3490822b7b8217d7729ade2186632</string>
<key>hash_algorithm</key> <key>hash_algorithm</key>
<string>sha1</string> <string>sha1</string>
<key>url</key> <key>url</key>
<string>https://github.com/secondlife/3p-minizip-ng/releases/download/v4.0.7-r2/minizip_ng-4.0.7-r2-windows64-11967198844.tar.zst</string> <string>https://github.com/secondlife/3p-minizip-ng/releases/download/v4.0.7-r3/minizip_ng-4.0.7-r3-windows64-13246046977.tar.zst</string>
</map> </map>
<key>name</key> <key>name</key>
<string>windows64</string> <string>windows64</string>
@ -1784,7 +1784,7 @@
<key>copyright</key> <key>copyright</key>
<string>This project uses the zlib license. Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler</string> <string>This project uses the zlib license. Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler</string>
<key>version</key> <key>version</key>
<string>4.0.7-r2</string> <string>4.0.7-r3</string>
<key>name</key> <key>name</key>
<string>minizip-ng</string> <string>minizip-ng</string>
<key>canonical_repo</key> <key>canonical_repo</key>
@ -1857,11 +1857,11 @@
<key>archive</key> <key>archive</key>
<map> <map>
<key>hash</key> <key>hash</key>
<string>dd0c79ac49e5e81cd153d44061c044d1db950fdc</string> <string>f45ea5a42d6a419f9b605dd3f976fbcb3850d736</string>
<key>hash_algorithm</key> <key>hash_algorithm</key>
<string>sha1</string> <string>sha1</string>
<key>url</key> <key>url</key>
<string>https://github.com/secondlife/3p-nghttp2/releases/download/v1.64.0-r1/nghttp2-1.64.0-r1-darwin64-11965382595.tar.zst</string> <string>https://github.com/secondlife/3p-nghttp2/releases/download/v1.64.0-r2/nghttp2-1.64.0-r1-darwin64-13184359419.tar.zst</string>
</map> </map>
<key>name</key> <key>name</key>
<string>darwin64</string> <string>darwin64</string>
@ -1871,11 +1871,11 @@
<key>archive</key> <key>archive</key>
<map> <map>
<key>hash</key> <key>hash</key>
<string>0ba810156e0f1ceee8fcc9f9115b91111323fabd</string> <string>c6e450fa41f24f1b4103d2006d706595f2a36c59</string>
<key>hash_algorithm</key> <key>hash_algorithm</key>
<string>sha1</string> <string>sha1</string>
<key>url</key> <key>url</key>
<string>https://github.com/secondlife/3p-nghttp2/releases/download/v1.64.0-r1/nghttp2-1.64.0-r1-linux64-11965382595.tar.zst</string> <string>https://github.com/secondlife/3p-nghttp2/releases/download/v1.64.0-r2/nghttp2-1.64.0-r1-linux64-13184359419.tar.zst</string>
</map> </map>
<key>name</key> <key>name</key>
<string>linux64</string> <string>linux64</string>
@ -1885,11 +1885,11 @@
<key>archive</key> <key>archive</key>
<map> <map>
<key>hash</key> <key>hash</key>
<string>182e03f4ef36eff082c571c33b13111d4cd6c8dd</string> <string>3bd92f892e155104740570fe244ea4dbb0b57d4b</string>
<key>hash_algorithm</key> <key>hash_algorithm</key>
<string>sha1</string> <string>sha1</string>
<key>url</key> <key>url</key>
<string>https://github.com/secondlife/3p-nghttp2/releases/download/v1.64.0-r1/nghttp2-1.64.0-r1-windows64-11965382595.tar.zst</string> <string>https://github.com/secondlife/3p-nghttp2/releases/download/v1.64.0-r2/nghttp2-1.64.0-r1-windows64-13184359419.tar.zst</string>
</map> </map>
<key>name</key> <key>name</key>
<string>windows64</string> <string>windows64</string>
@ -2027,11 +2027,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<key>archive</key> <key>archive</key>
<map> <map>
<key>hash</key> <key>hash</key>
<string>9250e12d4d88f0a437e49be2b32d107f6b4270d0</string> <string>a3cc405d48a48a474d05b3de3d28da2005d80037</string>
<key>hash_algorithm</key> <key>hash_algorithm</key>
<string>sha1</string> <string>sha1</string>
<key>url</key> <key>url</key>
<string>https://github.com/secondlife/3p-openal-soft/releases/download/v1.24.0-r1/openal-1.24.0-r1-darwin64-11968917548.tar.zst</string> <string>https://github.com/secondlife/3p-openal-soft/releases/download/v1.24.2-r1/openal-1.24.2-r1-darwin64-13245988487.tar.zst</string>
</map> </map>
<key>name</key> <key>name</key>
<string>darwin64</string> <string>darwin64</string>
@ -2041,11 +2041,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<key>archive</key> <key>archive</key>
<map> <map>
<key>hash</key> <key>hash</key>
<string>1e50db24586fba434a2be62f94fdc687569379ca</string> <string>a2b63f0f85ca156c59ee1d34ef96c8e50b89153c</string>
<key>hash_algorithm</key> <key>hash_algorithm</key>
<string>sha1</string> <string>sha1</string>
<key>url</key> <key>url</key>
<string>https://github.com/secondlife/3p-openal-soft/releases/download/v1.24.0-r1/openal-1.24.0-r1-linux64-11968917548.tar.zst</string> <string>https://github.com/secondlife/3p-openal-soft/releases/download/v1.24.2-r1/openal-1.24.2-r1-linux64-13245988487.tar.zst</string>
</map> </map>
<key>name</key> <key>name</key>
<string>linux64</string> <string>linux64</string>
@ -2055,11 +2055,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<key>archive</key> <key>archive</key>
<map> <map>
<key>hash</key> <key>hash</key>
<string>2ec7b2b1f4c37e5bd1b473e4a26935ec374ee208</string> <string>8ad24fba1191c9cb0d2ab36e64b04b4648a99f43</string>
<key>hash_algorithm</key> <key>hash_algorithm</key>
<string>sha1</string> <string>sha1</string>
<key>url</key> <key>url</key>
<string>https://github.com/secondlife/3p-openal-soft/releases/download/v1.24.0-r1/openal-1.24.0-r1-windows64-11968917548.tar.zst</string> <string>https://github.com/secondlife/3p-openal-soft/releases/download/v1.24.2-r1/openal-1.24.2-r1-windows64-13245988487.tar.zst</string>
</map> </map>
<key>name</key> <key>name</key>
<string>windows64</string> <string>windows64</string>
@ -2072,7 +2072,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<key>copyright</key> <key>copyright</key>
<string>Copyright (C) 1999-2007 by authors.</string> <string>Copyright (C) 1999-2007 by authors.</string>
<key>version</key> <key>version</key>
<string>1.24.0-r1</string> <string>1.24.2-r1</string>
<key>name</key> <key>name</key>
<string>openal</string> <string>openal</string>
<key>description</key> <key>description</key>
@ -2147,11 +2147,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<key>archive</key> <key>archive</key>
<map> <map>
<key>hash</key> <key>hash</key>
<string>f6fdad42168b30932384310866642b072465af11</string> <string>157193699127ac5056c5fc1a410f9c98d39731e2</string>
<key>hash_algorithm</key> <key>hash_algorithm</key>
<string>sha1</string> <string>sha1</string>
<key>url</key> <key>url</key>
<string>https://github.com/secondlife/3p-openssl/releases/download/v1.1.1w-r2/openssl-1.1.1w-r2-darwin64-11965633361.tar.zst</string> <string>https://github.com/secondlife/3p-openssl/releases/download/v1.1.1w-r3/openssl-1.1.1w-r3-darwin64-13246054022.tar.zst</string>
</map> </map>
<key>name</key> <key>name</key>
<string>darwin64</string> <string>darwin64</string>
@ -2161,11 +2161,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<key>archive</key> <key>archive</key>
<map> <map>
<key>hash</key> <key>hash</key>
<string>7a5048c806b053768c461d6dbac854324a597ee0</string> <string>2e29c127dbd002d64ae55bc000f8b6ed0249fad7</string>
<key>hash_algorithm</key> <key>hash_algorithm</key>
<string>sha1</string> <string>sha1</string>
<key>url</key> <key>url</key>
<string>https://github.com/secondlife/3p-openssl/releases/download/v1.1.1w-r2/openssl-1.1.1w-r2-linux64-11965633361.tar.zst</string> <string>https://github.com/secondlife/3p-openssl/releases/download/v1.1.1w-r3/openssl-1.1.1w-r3-linux64-13246054022.tar.zst</string>
</map> </map>
<key>name</key> <key>name</key>
<string>linux64</string> <string>linux64</string>
@ -2175,11 +2175,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<key>archive</key> <key>archive</key>
<map> <map>
<key>hash</key> <key>hash</key>
<string>3d16fa02ca44a6a1eeeb7c83d62af2dc8ef2e7e9</string> <string>ae9ced89051e03a99628c99b9ac78530fdea1e5a</string>
<key>hash_algorithm</key> <key>hash_algorithm</key>
<string>sha1</string> <string>sha1</string>
<key>url</key> <key>url</key>
<string>https://github.com/secondlife/3p-openssl/releases/download/v1.1.1w-r2/openssl-1.1.1w-r2-windows64-11965633361.tar.zst</string> <string>https://github.com/secondlife/3p-openssl/releases/download/v1.1.1w-r3/openssl-1.1.1w-r3-windows64-13246054022.tar.zst</string>
</map> </map>
<key>name</key> <key>name</key>
<string>windows64</string> <string>windows64</string>
@ -2192,7 +2192,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<key>copyright</key> <key>copyright</key>
<string>Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved; Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)</string> <string>Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved; Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)</string>
<key>version</key> <key>version</key>
<string>1.1.1w-r2</string> <string>1.1.1w-r3</string>
<key>name</key> <key>name</key>
<string>openssl</string> <string>openssl</string>
<key>description</key> <key>description</key>
@ -2825,11 +2825,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<key>archive</key> <key>archive</key>
<map> <map>
<key>hash</key> <key>hash</key>
<string>4d437afc7fc3988cf0c78ed05853a211cc6bf8b8</string> <string>e363e3b889c52fda7601d7aeaa9832307034651e</string>
<key>hash_algorithm</key> <key>hash_algorithm</key>
<string>sha1</string> <string>sha1</string>
<key>url</key> <key>url</key>
<string>https://github.com/secondlife/3p-zlib-ng/releases/download/v2.2.2-r1/zlib_ng-2.2.2-dev0.gcaa101e.d20241120-darwin64-11943461931.tar.zst</string> <string>https://github.com/secondlife/3p-zlib-ng/releases/download/v2.2.3-r1/zlib_ng-2.2.3-dev0.g8aa13e3.d20250206-darwin64-13183604450.tar.zst</string>
</map> </map>
<key>name</key> <key>name</key>
<string>darwin64</string> <string>darwin64</string>
@ -2839,11 +2839,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<key>archive</key> <key>archive</key>
<map> <map>
<key>hash</key> <key>hash</key>
<string>70c1d8728b85481bd42904c1213ed50264e77be1</string> <string>3cdd52f7fb3691789d50f0b40ed6f5642321ff32</string>
<key>hash_algorithm</key> <key>hash_algorithm</key>
<string>sha1</string> <string>sha1</string>
<key>url</key> <key>url</key>
<string>https://github.com/secondlife/3p-zlib-ng/releases/download/v2.2.2-r1/zlib_ng-2.2.2-dev0.gcaa101e.d20241120-linux64-11943461931.tar.zst</string> <string>https://github.com/secondlife/3p-zlib-ng/releases/download/v2.2.3-r1/zlib_ng-2.2.3-dev0.g8aa13e3.d20250206-linux64-13183604450.tar.zst</string>
</map> </map>
<key>name</key> <key>name</key>
<string>linux64</string> <string>linux64</string>
@ -2853,11 +2853,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<key>archive</key> <key>archive</key>
<map> <map>
<key>hash</key> <key>hash</key>
<string>f98c30b20120511ecceab8bf1b5eba048b10aade</string> <string>e802a28139328bb2421ad39e13d996d350d8106d</string>
<key>hash_algorithm</key> <key>hash_algorithm</key>
<string>sha1</string> <string>sha1</string>
<key>url</key> <key>url</key>
<string>https://github.com/secondlife/3p-zlib-ng/releases/download/v2.2.2-r1/zlib_ng-2.2.2-dev0.gcaa101e.d20241120-windows64-11943461931.tar.zst</string> <string>https://github.com/secondlife/3p-zlib-ng/releases/download/v2.2.3-r1/zlib_ng-2.2.3-dev0.g8aa13e3.d20250206-windows64-13183604450.tar.zst</string>
</map> </map>
<key>name</key> <key>name</key>
<string>windows64</string> <string>windows64</string>
@ -2870,7 +2870,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<key>copyright</key> <key>copyright</key>
<string>Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler</string> <string>Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler</string>
<key>version</key> <key>version</key>
<string>2.2.2-dev0.gcaa101e.d20241120</string> <string>2.2.3-dev0.g8aa13e3.d20250206</string>
<key>name</key> <key>name</key>
<string>zlib-ng</string> <string>zlib-ng</string>
<key>canonical_repo</key> <key>canonical_repo</key>

View File

@ -229,7 +229,7 @@ bool LLApp::parseCommandOptions(int argc, wchar_t** wargv)
if(wargv[ii][1] == '-') ++offset; if(wargv[ii][1] == '-') ++offset;
#if LL_WINDOWS #if LL_WINDOWS
name.assign(utf16str_to_utf8str(&wargv[ii][offset])); name.assign(ll_convert_wide_to_string(&wargv[ii][offset]));
#else #else
name.assign(wstring_to_utf8str(&wargv[ii][offset])); name.assign(wstring_to_utf8str(&wargv[ii][offset]));
#endif #endif
@ -253,7 +253,7 @@ bool LLApp::parseCommandOptions(int argc, wchar_t** wargv)
++ii; ++ii;
#if LL_WINDOWS #if LL_WINDOWS
value.assign(utf16str_to_utf8str((wargv[ii]))); value.assign(ll_convert_wide_to_string((wargv[ii])));
#else #else
value.assign(wstring_to_utf8str((wargv[ii]))); value.assign(wstring_to_utf8str((wargv[ii])));
#endif #endif

View File

@ -79,7 +79,7 @@ namespace {
// //
if (s.size()) if (s.size())
{ {
OutputDebugString(utf8str_to_utf16str(s).c_str()); OutputDebugString(ll_convert<std::wstring>(s).c_str());
OutputDebugString(TEXT("\n")); OutputDebugString(TEXT("\n"));
} }
} }

View File

@ -178,8 +178,7 @@ int LLFile::mkdir(const std::string& dirname, int perms)
{ {
#if LL_WINDOWS #if LL_WINDOWS
// permissions are ignored on Windows // permissions are ignored on Windows
std::string utf8dirname = dirname; std::wstring utf16dirname = ll_convert<std::wstring>(dirname);
llutf16string utf16dirname = utf8str_to_utf16str(utf8dirname);
int rc = _wmkdir(utf16dirname.c_str()); int rc = _wmkdir(utf16dirname.c_str());
#else #else
int rc = ::mkdir(dirname.c_str(), (mode_t)perms); int rc = ::mkdir(dirname.c_str(), (mode_t)perms);
@ -201,8 +200,7 @@ int LLFile::rmdir(const std::string& dirname)
{ {
#if LL_WINDOWS #if LL_WINDOWS
// permissions are ignored on Windows // permissions are ignored on Windows
std::string utf8dirname = dirname; std::wstring utf16dirname = ll_convert<std::wstring>(dirname);
llutf16string utf16dirname = utf8str_to_utf16str(utf8dirname);
int rc = _wrmdir(utf16dirname.c_str()); int rc = _wrmdir(utf16dirname.c_str());
#else #else
int rc = ::rmdir(dirname.c_str()); int rc = ::rmdir(dirname.c_str());
@ -214,10 +212,8 @@ int LLFile::rmdir(const std::string& dirname)
LLFILE* LLFile::fopen(const std::string& filename, const char* mode) /* Flawfinder: ignore */ LLFILE* LLFile::fopen(const std::string& filename, const char* mode) /* Flawfinder: ignore */
{ {
#if LL_WINDOWS #if LL_WINDOWS
std::string utf8filename = filename; std::wstring utf16filename = ll_convert<std::wstring>(filename);
std::string utf8mode = std::string(mode); std::wstring utf16mode = ll_convert<std::wstring>(std::string(mode));
llutf16string utf16filename = utf8str_to_utf16str(utf8filename);
llutf16string utf16mode = utf8str_to_utf16str(utf8mode);
return _wfopen(utf16filename.c_str(),utf16mode.c_str()); return _wfopen(utf16filename.c_str(),utf16mode.c_str());
#else #else
return ::fopen(filename.c_str(),mode); /* Flawfinder: ignore */ return ::fopen(filename.c_str(),mode); /* Flawfinder: ignore */
@ -227,10 +223,8 @@ LLFILE* LLFile::fopen(const std::string& filename, const char* mode) /* Flawf
LLFILE* LLFile::_fsopen(const std::string& filename, const char* mode, int sharingFlag) LLFILE* LLFile::_fsopen(const std::string& filename, const char* mode, int sharingFlag)
{ {
#if LL_WINDOWS #if LL_WINDOWS
std::string utf8filename = filename; std::wstring utf16filename = ll_convert<std::wstring>(filename);
std::string utf8mode = std::string(mode); std::wstring utf16mode = ll_convert<std::wstring>(std::string(mode));
llutf16string utf16filename = utf8str_to_utf16str(utf8filename);
llutf16string utf16mode = utf8str_to_utf16str(utf8mode);
return _wfsopen(utf16filename.c_str(),utf16mode.c_str(),sharingFlag); return _wfsopen(utf16filename.c_str(),utf16mode.c_str(),sharingFlag);
#else #else
llassert(0);//No corresponding function on non-windows llassert(0);//No corresponding function on non-windows
@ -270,8 +264,7 @@ std::string LLFile::getContents(const std::string& filename)
int LLFile::remove(const std::string& filename, int supress_error) int LLFile::remove(const std::string& filename, int supress_error)
{ {
#if LL_WINDOWS #if LL_WINDOWS
std::string utf8filename = filename; std::wstring utf16filename = ll_convert<std::wstring>(filename);
llutf16string utf16filename = utf8str_to_utf16str(utf8filename);
int rc = _wremove(utf16filename.c_str()); int rc = _wremove(utf16filename.c_str());
#else #else
int rc = ::remove(filename.c_str()); int rc = ::remove(filename.c_str());
@ -282,10 +275,8 @@ int LLFile::remove(const std::string& filename, int supress_error)
int LLFile::rename(const std::string& filename, const std::string& newname, int supress_error) int LLFile::rename(const std::string& filename, const std::string& newname, int supress_error)
{ {
#if LL_WINDOWS #if LL_WINDOWS
std::string utf8filename = filename; std::wstring utf16filename = ll_convert<std::wstring>(filename);
std::string utf8newname = newname; std::wstring utf16newname = ll_convert<std::wstring>(newname);
llutf16string utf16filename = utf8str_to_utf16str(utf8filename);
llutf16string utf16newname = utf8str_to_utf16str(utf8newname);
int rc = _wrename(utf16filename.c_str(),utf16newname.c_str()); int rc = _wrename(utf16filename.c_str(),utf16newname.c_str());
#else #else
int rc = ::rename(filename.c_str(),newname.c_str()); int rc = ::rename(filename.c_str(),newname.c_str());
@ -327,8 +318,7 @@ bool LLFile::copy(const std::string& from, const std::string& to)
int LLFile::stat(const std::string& filename, llstat* filestatus) int LLFile::stat(const std::string& filename, llstat* filestatus)
{ {
#if LL_WINDOWS #if LL_WINDOWS
std::string utf8filename = filename; std::wstring utf16filename = ll_convert<std::wstring>(filename);
llutf16string utf16filename = utf8str_to_utf16str(utf8filename);
int rc = _wstat(utf16filename.c_str(),filestatus); int rc = _wstat(utf16filename.c_str(),filestatus);
#else #else
int rc = ::stat(filename.c_str(),filestatus); int rc = ::stat(filename.c_str(),filestatus);
@ -453,14 +443,14 @@ llifstream::llifstream() {}
// explicit // explicit
llifstream::llifstream(const std::string& _Filename, ios_base::openmode _Mode): llifstream::llifstream(const std::string& _Filename, ios_base::openmode _Mode):
std::ifstream(utf8str_to_utf16str( _Filename ).c_str(), std::ifstream(ll_convert<std::wstring>( _Filename ).c_str(),
_Mode | ios_base::in) _Mode | ios_base::in)
{ {
} }
void llifstream::open(const std::string& _Filename, ios_base::openmode _Mode) void llifstream::open(const std::string& _Filename, ios_base::openmode _Mode)
{ {
std::ifstream::open(utf8str_to_utf16str(_Filename).c_str(), std::ifstream::open(ll_convert<std::wstring>(_Filename).c_str(),
_Mode | ios_base::in); _Mode | ios_base::in);
} }
@ -472,14 +462,14 @@ llofstream::llofstream() {}
// explicit // explicit
llofstream::llofstream(const std::string& _Filename, ios_base::openmode _Mode): llofstream::llofstream(const std::string& _Filename, ios_base::openmode _Mode):
std::ofstream(utf8str_to_utf16str( _Filename ).c_str(), std::ofstream(ll_convert<std::wstring>( _Filename ).c_str(),
_Mode | ios_base::out) _Mode | ios_base::out)
{ {
} }
void llofstream::open(const std::string& _Filename, ios_base::openmode _Mode) void llofstream::open(const std::string& _Filename, ios_base::openmode _Mode)
{ {
std::ofstream::open(utf8str_to_utf16str( _Filename ).c_str(), std::ofstream::open(ll_convert<std::wstring>( _Filename ).c_str(),
_Mode | ios_base::out); _Mode | ios_base::out);
} }

View File

@ -1328,7 +1328,7 @@ bool gunzip_file(const std::string& srcfile, const std::string& dstfile)
S32 bytes = 0; S32 bytes = 0;
tmpfile = dstfile + ".t"; tmpfile = dstfile + ".t";
#ifdef LL_WINDOWS #ifdef LL_WINDOWS
llutf16string utf16filename = utf8str_to_utf16str(srcfile); std::wstring utf16filename = ll_convert<std::wstring>(srcfile);
src = gzopen_w(utf16filename.c_str(), "rb"); src = gzopen_w(utf16filename.c_str(), "rb");
#else #else
src = gzopen(srcfile.c_str(), "rb"); src = gzopen(srcfile.c_str(), "rb");
@ -1372,7 +1372,7 @@ bool gzip_file(const std::string& srcfile, const std::string& dstfile)
tmpfile = dstfile + ".t"; tmpfile = dstfile + ".t";
#ifdef LL_WINDOWS #ifdef LL_WINDOWS
llutf16string utf16filename = utf8str_to_utf16str(tmpfile); std::wstring utf16filename = ll_convert<std::wstring>(tmpfile);
dst = gzopen_w(utf16filename.c_str(), "wb"); dst = gzopen_w(utf16filename.c_str(), "wb");
#else #else
dst = gzopen(tmpfile.c_str(), "wb"); dst = gzopen(tmpfile.c_str(), "wb");

View File

@ -110,6 +110,17 @@ namespace tut
void stringize_object::test<3>() void stringize_object::test<3>()
{ {
//Tests rely on validity of wstring_to_utf8str() //Tests rely on validity of wstring_to_utf8str()
#if LL_WINDOWS // Windows wstring is a 2byte UTF16 type
ensure_equals(ll_convert<std::string>(wstringize(c)), ll_convert<std::string>(std::wstring(L"c")));
ensure_equals(ll_convert<std::string>(wstringize(s)), ll_convert<std::string>(std::wstring(L"17")));
ensure_equals(ll_convert<std::string>(wstringize(i)), ll_convert<std::string>(std::wstring(L"34")));
ensure_equals(ll_convert<std::string>(wstringize(l)), ll_convert<std::string>(std::wstring(L"68")));
ensure_equals(ll_convert<std::string>(wstringize(f)), ll_convert<std::string>(std::wstring(L"3.14159")));
ensure_equals(ll_convert<std::string>(wstringize(d)), ll_convert<std::string>(std::wstring(L"3.14159")));
ensure_equals(ll_convert<std::string>(wstringize(abc)), ll_convert<std::string>(std::wstring(L"abc def")));
ensure_equals(ll_convert<std::string>(wstringize(abc)), ll_convert<std::string>(wstringize(abc.c_str())));
ensure_equals(ll_convert<std::string>(wstringize(def)), ll_convert<std::string>(std::wstring(L"def ghi")));
#else
ensure_equals(wstring_to_utf8str(wstringize(c)), wstring_to_utf8str(L"c")); ensure_equals(wstring_to_utf8str(wstringize(c)), wstring_to_utf8str(L"c"));
ensure_equals(wstring_to_utf8str(wstringize(s)), wstring_to_utf8str(L"17")); ensure_equals(wstring_to_utf8str(wstringize(s)), wstring_to_utf8str(L"17"));
ensure_equals(wstring_to_utf8str(wstringize(i)), wstring_to_utf8str(L"34")); ensure_equals(wstring_to_utf8str(wstringize(i)), wstring_to_utf8str(L"34"));
@ -119,6 +130,7 @@ namespace tut
ensure_equals(wstring_to_utf8str(wstringize(abc)), wstring_to_utf8str(L"abc def")); ensure_equals(wstring_to_utf8str(wstringize(abc)), wstring_to_utf8str(L"abc def"));
ensure_equals(wstring_to_utf8str(wstringize(abc)), wstring_to_utf8str(wstringize(abc.c_str()))); ensure_equals(wstring_to_utf8str(wstringize(abc)), wstring_to_utf8str(wstringize(abc.c_str())));
ensure_equals(wstring_to_utf8str(wstringize(def)), wstring_to_utf8str(L"def ghi")); ensure_equals(wstring_to_utf8str(wstringize(def)), wstring_to_utf8str(L"def ghi"));
#endif
// ensure_equals(wstring_to_utf8str(wstringize(llsd)), wstring_to_utf8str(L"{'abc':'abc def','d':r3.14159,'i':i34}")); // ensure_equals(wstring_to_utf8str(wstringize(llsd)), wstring_to_utf8str(L"{'abc':'abc def','d':r3.14159,'i':i34}"));
} }
} // namespace tut } // namespace tut

View File

@ -189,7 +189,7 @@ LLSD LLCrashLock::getProcessList()
bool LLCrashLock::fileExists(std::string filename) bool LLCrashLock::fileExists(std::string filename)
{ {
#ifdef LL_WINDOWS // or BOOST_WINDOWS_API #ifdef LL_WINDOWS // or BOOST_WINDOWS_API
boost::filesystem::path file_path(utf8str_to_utf16str(filename)); boost::filesystem::path file_path(ll_convert<std::wstring>(filename));
#else #else
boost::filesystem::path file_path(filename); boost::filesystem::path file_path(filename);
#endif #endif
@ -199,7 +199,7 @@ bool LLCrashLock::fileExists(std::string filename)
void LLCrashLock::cleanupProcess(std::string proc_dir) void LLCrashLock::cleanupProcess(std::string proc_dir)
{ {
#ifdef LL_WINDOWS // or BOOST_WINDOWS_API #ifdef LL_WINDOWS // or BOOST_WINDOWS_API
boost::filesystem::path dir_path(utf8str_to_utf16str(proc_dir)); boost::filesystem::path dir_path(ll_convert<std::wstring>(proc_dir));
#else #else
boost::filesystem::path dir_path(proc_dir); boost::filesystem::path dir_path(proc_dir);
#endif #endif

View File

@ -103,7 +103,7 @@ std::vector<std::string> LLDir::getFilesInDir(const std::string &dirname)
//Returns a vector of fullpath filenames. //Returns a vector of fullpath filenames.
#ifdef LL_WINDOWS // or BOOST_WINDOWS_API #ifdef LL_WINDOWS // or BOOST_WINDOWS_API
boost::filesystem::path p(utf8str_to_utf16str(dirname)); boost::filesystem::path p(ll_convert<std::wstring>(dirname));
#else #else
boost::filesystem::path p(dirname); boost::filesystem::path p(dirname);
#endif #endif
@ -196,7 +196,7 @@ U32 LLDir::deleteDirAndContents(const std::string& dir_name)
try try
{ {
#ifdef LL_WINDOWS // or BOOST_WINDOWS_API #ifdef LL_WINDOWS // or BOOST_WINDOWS_API
boost::filesystem::path dir_path(utf8str_to_utf16str(dir_name)); boost::filesystem::path dir_path(ll_convert<std::wstring>(dir_name));
#else #else
boost::filesystem::path dir_path(dir_name); boost::filesystem::path dir_path(dir_name);
#endif #endif

View File

@ -172,7 +172,7 @@ LLDir_Win32::LLDir_Win32()
{ {
w_str[wcslen(w_str)-1] = '\0'; /* Flawfinder: ignore */ // remove trailing slash w_str[wcslen(w_str)-1] = '\0'; /* Flawfinder: ignore */ // remove trailing slash
} }
mTempDir = utf16str_to_utf8str(llutf16string(w_str)); mTempDir = ll_convert<std::string>(std::wstring(w_str));
if (mOSUserDir.empty()) if (mOSUserDir.empty())
{ {
@ -225,14 +225,14 @@ LLDir_Win32::LLDir_Win32()
// Set working directory, for LLDir::getWorkingDir() // Set working directory, for LLDir::getWorkingDir()
GetCurrentDirectory(MAX_PATH, w_str); GetCurrentDirectory(MAX_PATH, w_str);
mWorkingDir = utf16str_to_utf8str(llutf16string(w_str)); mWorkingDir = ll_convert<std::string>(std::wstring(w_str));
// Set the executable directory // Set the executable directory
S32 size = GetModuleFileName(NULL, w_str, MAX_PATH); S32 size = GetModuleFileName(NULL, w_str, MAX_PATH);
if (size) if (size)
{ {
w_str[size] = '\0'; w_str[size] = '\0';
mExecutablePathAndName = utf16str_to_utf8str(llutf16string(w_str)); mExecutablePathAndName = ll_convert<std::string>(std::wstring(w_str));
auto path_end = mExecutablePathAndName.find_last_of('\\'); auto path_end = mExecutablePathAndName.find_last_of('\\');
if (path_end != std::string::npos) if (path_end != std::string::npos)
{ {
@ -347,8 +347,8 @@ U32 LLDir_Win32::countFilesInDir(const std::string &dirname, const std::string &
WIN32_FIND_DATA FileData; WIN32_FIND_DATA FileData;
llutf16string pathname = utf8str_to_utf16str(dirname); std::wstring pathname = ll_convert<std::wstring>(dirname);
pathname += utf8str_to_utf16str(mask); pathname += ll_convert<std::wstring>(mask);
if ((count_search_h = FindFirstFile(pathname.c_str(), &FileData)) != INVALID_HANDLE_VALUE) if ((count_search_h = FindFirstFile(pathname.c_str(), &FileData)) != INVALID_HANDLE_VALUE)
{ {
@ -370,7 +370,7 @@ std::string LLDir_Win32::getCurPath()
WCHAR w_str[MAX_PATH]; WCHAR w_str[MAX_PATH];
GetCurrentDirectory(MAX_PATH, w_str); GetCurrentDirectory(MAX_PATH, w_str);
return utf16str_to_utf8str(llutf16string(w_str)); return ll_convert<std::string>(std::wstring(w_str));
} }

View File

@ -51,7 +51,7 @@ public:
private: private:
void* mDirSearch_h{ nullptr }; void* mDirSearch_h{ nullptr };
llutf16string mCurrentDir; std::wstring mCurrentDir;
}; };
#endif // LL_LLDIR_WIN32_H #endif // LL_LLDIR_WIN32_H

View File

@ -31,6 +31,9 @@
#include "llerror.h" #include "llerror.h"
#if LL_WINDOWS #if LL_WINDOWS
#include "llwin32headers.h"
class LLDirectoryGuard class LLDirectoryGuard
{ {
public: public:
@ -46,8 +49,8 @@ public:
(wcsncmp(mOrigDir,mFinalDir,mOrigDirLen)!=0)) (wcsncmp(mOrigDir,mFinalDir,mOrigDirLen)!=0))
{ {
// Dir has changed // Dir has changed
std::string mOrigDirUtf8 = utf16str_to_utf8str(llutf16string(mOrigDir)); std::string mOrigDirUtf8 = ll_convert<std::string>(std::wstring(mOrigDir));
std::string mFinalDirUtf8 = utf16str_to_utf8str(llutf16string(mFinalDir)); std::string mFinalDirUtf8 = ll_convert<std::string>(std::wstring(mFinalDir));
LL_INFOS() << "Resetting working dir from " << mFinalDirUtf8 << " to " << mOrigDirUtf8 << LL_ENDL; LL_INFOS() << "Resetting working dir from " << mFinalDirUtf8 << " to " << mOrigDirUtf8 << LL_ENDL;
SetCurrentDirectory(mOrigDir); SetCurrentDirectory(mOrigDir);
} }

View File

@ -52,7 +52,7 @@ LLDirIterator::Impl::Impl(const std::string &dirname, const std::string &mask)
: mIsValid(false) : mIsValid(false)
{ {
#ifdef LL_WINDOWS // or BOOST_WINDOWS_API #ifdef LL_WINDOWS // or BOOST_WINDOWS_API
fs::path dir_path(utf8str_to_utf16str(dirname)); fs::path dir_path(ll_convert<std::wstring>(dirname));
#else #else
fs::path dir_path(dirname); fs::path dir_path(dirname);
#endif #endif

View File

@ -103,7 +103,7 @@ void LLDiskCache::purge()
std::vector<file_info_t> file_info; std::vector<file_info_t> file_info;
#if LL_WINDOWS #if LL_WINDOWS
std::wstring cache_path(utf8str_to_utf16str(sCacheDir)); std::wstring cache_path(ll_convert<std::wstring>(sCacheDir));
#else #else
std::string cache_path(sCacheDir); std::string cache_path(sCacheDir);
#endif #endif
@ -226,7 +226,7 @@ void LLDiskCache::clearCache()
*/ */
boost::system::error_code ec; boost::system::error_code ec;
#if LL_WINDOWS #if LL_WINDOWS
std::wstring cache_path(utf8str_to_utf16str(sCacheDir)); std::wstring cache_path(ll_convert<std::wstring>(sCacheDir));
#else #else
std::string cache_path(sCacheDir); std::string cache_path(sCacheDir);
#endif #endif
@ -259,7 +259,7 @@ void LLDiskCache::removeOldVFSFiles()
boost::system::error_code ec; boost::system::error_code ec;
#if LL_WINDOWS #if LL_WINDOWS
std::wstring cache_path(utf8str_to_utf16str(gDirUtilp->getExpandedFilename(LL_PATH_CACHE, ""))); std::wstring cache_path(ll_convert<std::wstring>(gDirUtilp->getExpandedFilename(LL_PATH_CACHE, "")));
#else #else
std::string cache_path(gDirUtilp->getExpandedFilename(LL_PATH_CACHE, "")); std::string cache_path(gDirUtilp->getExpandedFilename(LL_PATH_CACHE, ""));
#endif #endif
@ -300,7 +300,7 @@ uintmax_t LLDiskCache::dirFileSize(const std::string& dir)
*/ */
boost::system::error_code ec; boost::system::error_code ec;
#if LL_WINDOWS #if LL_WINDOWS
std::wstring dir_path(utf8str_to_utf16str(dir)); std::wstring dir_path(ll_convert<std::wstring>(dir));
#else #else
std::string dir_path(dir); std::string dir_path(dir);
#endif #endif

View File

@ -316,7 +316,7 @@ void LLFileSystem::updateFileAccessTime(const std::string& file_path)
boost::system::error_code ec; boost::system::error_code ec;
#if LL_WINDOWS #if LL_WINDOWS
// file last write time // file last write time
const std::time_t last_write_time = boost::filesystem::last_write_time(utf8str_to_utf16str(file_path), ec); const std::time_t last_write_time = boost::filesystem::last_write_time(ll_convert<std::wstring>(file_path), ec);
if (ec.failed()) if (ec.failed())
{ {
LL_WARNS() << "Failed to read last write time for cache file " << file_path << ": " << ec.message() << LL_ENDL; LL_WARNS() << "Failed to read last write time for cache file " << file_path << ": " << ec.message() << LL_ENDL;
@ -330,7 +330,7 @@ void LLFileSystem::updateFileAccessTime(const std::string& file_path)
// before the last one // before the last one
if (delta_time > time_threshold) if (delta_time > time_threshold)
{ {
boost::filesystem::last_write_time(utf8str_to_utf16str(file_path), cur_time, ec); boost::filesystem::last_write_time(ll_convert<std::wstring>(file_path), cur_time, ec);
} }
#else #else
// file last write time // file last write time

View File

@ -477,7 +477,7 @@ std::string get_string(IDxDiagContainer *containerp, const WCHAR *wszPropName)
WCHAR wszPropValue[256]; WCHAR wszPropValue[256];
get_wstring(containerp, wszPropName, wszPropValue, 256); get_wstring(containerp, wszPropName, wszPropValue, 256);
return utf16str_to_utf8str(wszPropValue); return ll_convert<std::string>(std::wstring(wszPropValue));
} }
@ -784,7 +784,7 @@ bool LLDXHardware::getInfo(bool vram_only)
else else
{ {
get_wstring(device_containerp, L"szKeyDeviceID", deviceID, 512); get_wstring(device_containerp, L"szKeyDeviceID", deviceID, 512);
LL_WARNS() << "szDeviceID" << deviceID << LL_ENDL; LL_WARNS() << "szDeviceID" << ll_convert<std::string>(std::wstring(deviceID)) << LL_ENDL;
// '+9' to avoid ENUM\\PCI\\ prefix // '+9' to avoid ENUM\\PCI\\ prefix
// Returns string like Enum\\PCI\\VEN_10DE&DEV_1F06&SUBSYS... // Returns string like Enum\\PCI\\VEN_10DE&DEV_1F06&SUBSYS...
// and since GetVideoMemoryViaWMI searches by PNPDeviceID it is sufficient // and since GetVideoMemoryViaWMI searches by PNPDeviceID it is sufficient
@ -1087,7 +1087,7 @@ LLSD LLDXHardware::getDisplayInfo()
// print the value // print the value
// windows doesn't guarantee to be null terminated // windows doesn't guarantee to be null terminated
release_version[RV_SIZE - 1] = NULL; release_version[RV_SIZE - 1] = NULL;
ret["DriverVersion"] = utf16str_to_utf8str(release_version); ret["DriverVersion"] = ll_convert<std::string>(std::wstring(release_version));
} }
RegCloseKey(hKey); RegCloseKey(hKey);

View File

@ -786,7 +786,7 @@ LLWindowWin32::LLWindowWin32(LLWindowCallbacks* callbacks,
// } // }
// SL-12971 dual GPU display // SL-12971 dual GPU display
DISPLAY_DEVICEA display_device; DISPLAY_DEVICE display_device;
int display_index = -1; int display_index = -1;
DWORD display_flags = 0; // EDD_GET_DEVICE_INTERFACE_NAME ? DWORD display_flags = 0; // EDD_GET_DEVICE_INTERFACE_NAME ?
const size_t display_bytes = sizeof(display_device); const size_t display_bytes = sizeof(display_device);
@ -797,23 +797,23 @@ LLWindowWin32::LLWindowWin32(LLWindowCallbacks* callbacks,
{ {
// CHAR DeviceName [ 32] Adapter name // CHAR DeviceName [ 32] Adapter name
// CHAR DeviceString[128] // CHAR DeviceString[128]
CHAR text[256]; WCHAR text[256];
size_t name_len = strlen(display_device.DeviceName ); size_t name_len = lstrlen(display_device.DeviceName );
size_t desc_len = strlen(display_device.DeviceString); size_t desc_len = lstrlen(display_device.DeviceString);
const CHAR *name = name_len ? display_device.DeviceName : "???"; const WCHAR *name = name_len ? display_device.DeviceName : TEXT("???");
const CHAR *desc = desc_len ? display_device.DeviceString : "???"; const WCHAR *desc = desc_len ? display_device.DeviceString : TEXT("???");
sprintf(text, "Display Device %d: %s, %s", display_index, name, desc); wsprintf(text, TEXT("Display Device %d: %s, %s"), display_index, name, desc);
LL_INFOS("Window") << text << LL_ENDL; LL_INFOS("Window") << ll_convert<std::string>(std::wstring(text)) << LL_ENDL;
} }
::ZeroMemory(&display_device,display_bytes); ::ZeroMemory(&display_device,display_bytes);
display_device.cb = display_bytes; display_device.cb = display_bytes;
display_index++; display_index++;
} while( EnumDisplayDevicesA(NULL, display_index, &display_device, display_flags )); } while( EnumDisplayDevices(NULL, display_index, &display_device, display_flags ));
LL_INFOS("Window") << "Total Display Devices: " << display_index << LL_ENDL; LL_INFOS("Window") << "Total Display Devices: " << display_index << LL_ENDL;
@ -1934,7 +1934,7 @@ void LLWindowWin32::setTitle(const std::string title)
// to support non-ascii usernames (and region names?) // to support non-ascii usernames (and region names?)
mWindowThread->post([=]() mWindowThread->post([=]()
{ {
SetWindowTextA(mWindowHandle, title.c_str()); SetWindowText(mWindowHandle, ll_convert<std::wstring>(title).c_str());
}); });
} }
@ -3244,7 +3244,7 @@ bool LLWindowWin32::pasteTextFromClipboard(LLWString &dst)
WCHAR *utf16str = (WCHAR*) GlobalLock(h_data); WCHAR *utf16str = (WCHAR*) GlobalLock(h_data);
if (utf16str) if (utf16str)
{ {
dst = utf16str_to_wstring(utf16str); dst = ll_convert<LLWString>(std::wstring(utf16str));
LLWStringUtil::removeWindowsCR(dst); LLWStringUtil::removeWindowsCR(dst);
GlobalUnlock(h_data); GlobalUnlock(h_data);
success = true; success = true;
@ -3269,8 +3269,8 @@ bool LLWindowWin32::copyTextToClipboard(const LLWString& wstr)
// Provide a copy of the data in Unicode format. // Provide a copy of the data in Unicode format.
LLWString sanitized_string(wstr); LLWString sanitized_string(wstr);
LLWStringUtil::addCRLF(sanitized_string); LLWStringUtil::addCRLF(sanitized_string);
llutf16string out_utf16 = wstring_to_utf16str(sanitized_string); std::wstring out_utf16 = ll_convert<std::wstring>(sanitized_string);
const size_t size_utf16 = (out_utf16.length() + 1) * sizeof(WCHAR); const size_t size_utf16 = (out_utf16.length() + 1) * sizeof(wchar_t);
// Memory is allocated and then ownership of it is transfered to the system. // Memory is allocated and then ownership of it is transfered to the system.
HGLOBAL hglobal_copy_utf16 = GlobalAlloc(GMEM_MOVEABLE, size_utf16); HGLOBAL hglobal_copy_utf16 = GlobalAlloc(GMEM_MOVEABLE, size_utf16);
@ -3632,7 +3632,7 @@ void LLSplashScreenWin32::showImpl()
ShowWindow(mWindow, SW_SHOW); ShowWindow(mWindow, SW_SHOW);
// Should set taskbar text without creating a header for the window (caption) // Should set taskbar text without creating a header for the window (caption)
SetWindowTextA(mWindow, "Second Life"); SetWindowText(mWindow, TEXT("Second Life"));
} }
@ -3769,8 +3769,7 @@ void LLWindowWin32::spawnWebBrowser(const std::string& escaped_url, bool async)
// reliablly on Vista. // reliablly on Vista.
// this is madness.. no, this is.. // this is madness.. no, this is..
LLWString url_wstring = utf8str_to_wstring( escaped_url ); std::wstring url_utf16 = ll_convert<std::wstring>(escaped_url);
llutf16string url_utf16 = wstring_to_utf16str( url_wstring );
// let the OS decide what to use to open the URL // let the OS decide what to use to open the URL
SHELLEXECUTEINFO sei = { sizeof( sei ) }; SHELLEXECUTEINFO sei = { sizeof( sei ) };
@ -4050,7 +4049,7 @@ void LLWindowWin32::fillCompositionLogfont(LOGFONT *logfont)
U32 LLWindowWin32::fillReconvertString(const LLWString &text, U32 LLWindowWin32::fillReconvertString(const LLWString &text,
S32 focus, S32 focus_length, RECONVERTSTRING *reconvert_string) S32 focus, S32 focus_length, RECONVERTSTRING *reconvert_string)
{ {
const llutf16string text_utf16 = wstring_to_utf16str(text); const std::wstring text_utf16 = ll_convert<std::wstring>(text);
const DWORD required_size = sizeof(RECONVERTSTRING) + (static_cast<DWORD>(text_utf16.length()) + 1) * sizeof(WCHAR); const DWORD required_size = sizeof(RECONVERTSTRING) + (static_cast<DWORD>(text_utf16.length()) + 1) * sizeof(WCHAR);
if (reconvert_string && reconvert_string->dwSize >= required_size) if (reconvert_string && reconvert_string->dwSize >= required_size)
{ {
@ -4150,7 +4149,7 @@ void LLWindowWin32::handleCompositionMessage(const U32 indexes)
size = LLWinImm::getCompositionString(himc, GCS_RESULTSTR, data, size); size = LLWinImm::getCompositionString(himc, GCS_RESULTSTR, data, size);
if (size > 0) if (size > 0)
{ {
result_string = utf16str_to_wstring(llutf16string(data, size / sizeof(WCHAR))); result_string = ll_convert_wide_to_wstring(std::wstring(data, size / sizeof(WCHAR)));
} }
delete[] data; delete[] data;
needs_update = true; needs_update = true;
@ -4167,7 +4166,7 @@ void LLWindowWin32::handleCompositionMessage(const U32 indexes)
if (size > 0) if (size > 0)
{ {
preedit_string_utf16_length = size / sizeof(WCHAR); preedit_string_utf16_length = size / sizeof(WCHAR);
preedit_string = utf16str_to_wstring(llutf16string(data, size / sizeof(WCHAR))); preedit_string = ll_convert_wide_to_wstring(std::wstring(data, size / sizeof(WCHAR)));
} }
delete[] data; delete[] data;
needs_update = true; needs_update = true;

View File

@ -253,8 +253,8 @@ void ll_nvapi_init(NvDRSSessionHandle hSession)
NvAPI_UnicodeString profile_name; NvAPI_UnicodeString profile_name;
std::string app_name = LLTrans::getString("APP_NAME"); std::string app_name = LLTrans::getString("APP_NAME");
llutf16string w_app_name = utf8str_to_utf16str(app_name); std::wstring w_app_name = ll_convert<std::wstring>(app_name);
wsprintf(profile_name, L"%s", w_app_name.c_str()); wsprintf(reinterpret_cast<wchar_t*>(profile_name), L"%s", w_app_name.c_str());
NvDRSProfileHandle hProfile = 0; NvDRSProfileHandle hProfile = 0;
// (3) Check if we already have an application profile for the viewer // (3) Check if we already have an application profile for the viewer
status = NvAPI_DRS_FindProfileByName(hSession, profile_name, &hProfile); status = NvAPI_DRS_FindProfileByName(hSession, profile_name, &hProfile);
@ -271,7 +271,7 @@ void ll_nvapi_init(NvDRSSessionHandle hSession)
NVDRS_PROFILE profileInfo; NVDRS_PROFILE profileInfo;
profileInfo.version = NVDRS_PROFILE_VER; profileInfo.version = NVDRS_PROFILE_VER;
profileInfo.isPredefined = 0; profileInfo.isPredefined = 0;
wsprintf(profileInfo.profileName, L"%s", w_app_name.c_str()); wsprintf(reinterpret_cast<wchar_t*>(profileInfo.profileName), L"%s", w_app_name.c_str());
status = NvAPI_DRS_CreateProfile(hSession, &profileInfo, &hProfile); status = NvAPI_DRS_CreateProfile(hSession, &profileInfo, &hProfile);
if (status != NVAPI_OK) if (status != NVAPI_OK)
@ -286,9 +286,9 @@ void ll_nvapi_init(NvDRSSessionHandle hSession)
NVDRS_APPLICATION profile_application; NVDRS_APPLICATION profile_application;
profile_application.version = NVDRS_APPLICATION_VER; profile_application.version = NVDRS_APPLICATION_VER;
llutf16string w_exe_name = utf8str_to_utf16str(exe_name); std::wstring w_exe_name = ll_convert<std::wstring>(exe_name);
NvAPI_UnicodeString profile_app_name; NvAPI_UnicodeString profile_app_name;
wsprintf(profile_app_name, L"%s", w_exe_name.c_str()); wsprintf(reinterpret_cast<wchar_t*>(profile_app_name), L"%s", w_exe_name.c_str());
status = NvAPI_DRS_GetApplicationInfo(hSession, hProfile, profile_app_name, &profile_application); status = NvAPI_DRS_GetApplicationInfo(hSession, hProfile, profile_app_name, &profile_application);
if (status != NVAPI_OK && status != NVAPI_EXECUTABLE_NOT_FOUND) if (status != NVAPI_OK && status != NVAPI_EXECUTABLE_NOT_FOUND)
@ -304,10 +304,10 @@ void ll_nvapi_init(NvDRSSessionHandle hSession)
NVDRS_APPLICATION application; NVDRS_APPLICATION application;
application.version = NVDRS_APPLICATION_VER; application.version = NVDRS_APPLICATION_VER;
application.isPredefined = 0; application.isPredefined = 0;
wsprintf(application.appName, L"%s", w_exe_name.c_str()); wsprintf(reinterpret_cast<wchar_t*>(application.appName), L"%s", w_exe_name.c_str());
wsprintf(application.userFriendlyName, L"%s", w_exe_name.c_str()); wsprintf(reinterpret_cast<wchar_t*>(application.userFriendlyName), L"%s", w_exe_name.c_str());
wsprintf(application.launcher, L"%s", w_exe_name.c_str()); wsprintf(reinterpret_cast<wchar_t*>(application.launcher), L"%s", w_exe_name.c_str());
wsprintf(application.fileInFolder, L"%s", ""); wsprintf(reinterpret_cast<wchar_t*>(application.fileInFolder), L"%s", "");
status = NvAPI_DRS_CreateApplication(hSession, hProfile, &application); status = NvAPI_DRS_CreateApplication(hSession, hProfile, &application);
if (status != NVAPI_OK) if (status != NVAPI_OK)
@ -580,7 +580,7 @@ void LLAppViewerWin32::disableWinErrorReporting()
{ {
std::string executable_name = gDirUtilp->getExecutableFilename(); std::string executable_name = gDirUtilp->getExecutableFilename();
if( S_OK == WerAddExcludedApplication( utf8str_to_utf16str(executable_name).c_str(), FALSE ) ) if( S_OK == WerAddExcludedApplication(ll_convert<std::wstring>(executable_name).c_str(), FALSE ) )
{ {
LL_INFOS() << "WerAddExcludedApplication() succeeded for " << executable_name << LL_ENDL; LL_INFOS() << "WerAddExcludedApplication() succeeded for " << executable_name << LL_ENDL;
} }

View File

@ -285,7 +285,7 @@ bool LLFilePicker::getOpenFile(ELoadFilter filter, bool blocking)
success = GetOpenFileName(&mOFN); success = GetOpenFileName(&mOFN);
if (success) if (success)
{ {
std::string filename = utf16str_to_utf8str(llutf16string(mFilesW)); std::string filename = ll_convert<std::string>(std::wstring(mFilesW));
mFiles.push_back(filename); mFiles.push_back(filename);
} }
@ -351,7 +351,7 @@ bool LLFilePicker::getMultipleOpenFiles(ELoadFilter filter, bool blocking)
// lengths. // lengths.
if( wcslen(mOFN.lpstrFile) > mOFN.nFileOffset ) /*Flawfinder: ignore*/ if( wcslen(mOFN.lpstrFile) > mOFN.nFileOffset ) /*Flawfinder: ignore*/
{ {
std::string filename = utf16str_to_utf8str(llutf16string(mFilesW)); std::string filename = ll_convert<std::string>(std::wstring(mFilesW));
mFiles.push_back(filename); mFiles.push_back(filename);
} }
else else
@ -365,7 +365,7 @@ bool LLFilePicker::getMultipleOpenFiles(ELoadFilter filter, bool blocking)
break; break;
if (*tptrw == 0) if (*tptrw == 0)
tptrw++; // shouldn't happen? tptrw++; // shouldn't happen?
std::string filename = utf16str_to_utf8str(llutf16string(tptrw)); std::string filename = ll_convert<std::string>(std::wstring(tptrw));
if (dirname.empty()) if (dirname.empty())
dirname = filename + "\\"; dirname = filename + "\\";
else else
@ -411,7 +411,7 @@ bool LLFilePicker::getSaveFile(ESaveFilter filter, const std::string& filename,
mOFN.lpstrFile = mFilesW; mOFN.lpstrFile = mFilesW;
if (!filename.empty()) if (!filename.empty())
{ {
llutf16string tstring = utf8str_to_utf16str(filename); std::wstring tstring = ll_convert<std::wstring>(filename);
wcsncpy(mFilesW, tstring.c_str(), FILENAME_BUFFER_SIZE); } /*Flawfinder: ignore*/ wcsncpy(mFilesW, tstring.c_str(), FILENAME_BUFFER_SIZE); } /*Flawfinder: ignore*/
else else
{ {
@ -593,7 +593,7 @@ bool LLFilePicker::getSaveFile(ESaveFilter filter, const std::string& filename,
success = GetSaveFileName(&mOFN); success = GetSaveFileName(&mOFN);
if (success) if (success)
{ {
std::string filename = utf16str_to_utf8str(llutf16string(mFilesW)); std::string filename = ll_convert<std::string>(std::wstring(mFilesW));
mFiles.push_back(filename); mFiles.push_back(filename);
} }
} }

View File

@ -78,7 +78,7 @@ BOOL CALLBACK di8_list_devices_callback(LPCDIDEVICEINSTANCE device_instance_ptr,
// Capable of detecting devices like Oculus Rift // Capable of detecting devices like Oculus Rift
if (device_instance_ptr && pvRef) if (device_instance_ptr && pvRef)
{ {
std::string product_name = utf16str_to_utf8str(llutf16string(device_instance_ptr->tszProductName)); std::string product_name = ll_convert<std::string>(std::wstring(device_instance_ptr->tszProductName));
S32 size = sizeof(GUID); S32 size = sizeof(GUID);
LLSD::Binary data; //just an std::vector LLSD::Binary data; //just an std::vector
data.resize(size); data.resize(size);

View File

@ -191,7 +191,7 @@ bool LLLocalBitmap::updateSelf(EUpdateType optional_firstupdate)
#ifndef LL_WINDOWS #ifndef LL_WINDOWS
const std::time_t temp_time = boost::filesystem::last_write_time(boost::filesystem::path(mFilename)); const std::time_t temp_time = boost::filesystem::last_write_time(boost::filesystem::path(mFilename));
#else #else
const std::time_t temp_time = boost::filesystem::last_write_time(boost::filesystem::path(utf8str_to_utf16str(mFilename))); const std::time_t temp_time = boost::filesystem::last_write_time(boost::filesystem::path(ll_convert<std::wstring>(mFilename)));
#endif #endif
LLSD new_last_modified = asctime(localtime(&temp_time)); LLSD new_last_modified = asctime(localtime(&temp_time));

View File

@ -134,7 +134,7 @@ bool LLLocalGLTFMaterial::updateSelf()
#ifndef LL_WINDOWS #ifndef LL_WINDOWS
const std::time_t temp_time = boost::filesystem::last_write_time(boost::filesystem::path(mFilename)); const std::time_t temp_time = boost::filesystem::last_write_time(boost::filesystem::path(mFilename));
#else #else
const std::time_t temp_time = boost::filesystem::last_write_time(boost::filesystem::path(utf8str_to_utf16str(mFilename))); const std::time_t temp_time = boost::filesystem::last_write_time(boost::filesystem::path(ll_convert<std::wstring>(mFilename)));
#endif #endif
LLSD new_last_modified = asctime(localtime(&temp_time)); LLSD new_last_modified = asctime(localtime(&temp_time));

View File

@ -293,7 +293,7 @@ bool LLWMIMethods::getGenericSerialNumber(const BSTR &select, const LPCWSTR &var
if (validate_as_uuid) if (validate_as_uuid)
{ {
std::wstring ws(serialNumber, serial_size); std::wstring ws(serialNumber, serial_size);
std::string str = ll_convert_wide_to_string(ws); std::string str = ll_convert<std::string>(ws);
if (!LLUUID::validate(str)) if (!LLUUID::validate(str))
{ {
@ -315,7 +315,7 @@ bool LLWMIMethods::getGenericSerialNumber(const BSTR &select, const LPCWSTR &var
continue; continue;
} }
} }
LL_INFOS("AppInit") << " Serial Number : " << vtProp.bstrVal << LL_ENDL; LL_INFOS("AppInit") << " Serial Number : " << ll_convert_wide_to_string(std::wstring(vtProp.bstrVal, SysStringLen(vtProp.bstrVal))) << LL_ENDL;
unsigned int j = 0; unsigned int j = 0;

View File

@ -144,7 +144,7 @@ BOOL CALLBACK di8_devices_callback(LPCDIDEVICEINSTANCE device_instance_ptr, LPVO
// Capable of detecting devices like Oculus Rift // Capable of detecting devices like Oculus Rift
if (device_instance_ptr) if (device_instance_ptr)
{ {
std::string product_name = utf16str_to_utf8str(llutf16string(device_instance_ptr->tszProductName)); std::string product_name = ll_convert<std::string>(std::wstring(device_instance_ptr->tszProductName));
LLSD guid = LLViewerJoystick::getInstance()->getDeviceUUID(); LLSD guid = LLViewerJoystick::getInstance()->getDeviceUUID();
@ -211,7 +211,7 @@ BOOL CALLBACK di8_devices_callback(LPCDIDEVICEINSTANCE device_instance_ptr, LPVO
// This is GUID2 so teoretically it can be memcpy copied into LLUUID // This is GUID2 so teoretically it can be memcpy copied into LLUUID
void guid_from_string(GUID &guid, const std::string &input) void guid_from_string(GUID &guid, const std::string &input)
{ {
CLSIDFromString(utf8str_to_utf16str(input).c_str(), &guid); CLSIDFromString(ll_convert<std::wstring>(input).c_str(), &guid);
} }
std::string string_from_guid(const GUID &guid) std::string string_from_guid(const GUID &guid)
@ -221,7 +221,7 @@ std::string string_from_guid(const GUID &guid)
// use guidString... // use guidString...
std::string res = utf16str_to_utf8str(llutf16string(guidString)); std::string res = ll_convert<std::string>(std::wstring(guidString));
// ensure memory is freed // ensure memory is freed
::CoTaskMemFree(guidString); ::CoTaskMemFree(guidString);

View File

@ -4773,7 +4773,7 @@ void LLViewerWindow::saveImageLocal(LLImageFormatted *image, const snapshot_save
// Check if there is enough free space to save snapshot // Check if there is enough free space to save snapshot
#ifdef LL_WINDOWS #ifdef LL_WINDOWS
boost::filesystem::path b_path(utf8str_to_utf16str(lastSnapshotDir)); boost::filesystem::path b_path(ll_convert<std::wstring>(lastSnapshotDir));
#else #else
boost::filesystem::path b_path(lastSnapshotDir); boost::filesystem::path b_path(lastSnapshotDir);
#endif #endif