19 Commits

Author SHA1 Message Date
Philip Withnall
3ea4ba31a1 tools: Fix handling of empty argv in various minor GLib tools
This won’t really affect anything, but we might as well fix them to not
crash if called with an empty `argv` by someone (ab)using `execve()`.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2022-02-11 14:45:42 +00:00
Emmanuel Fleury
d16d780bf4 Fix signedness warning in glib/win_iconv.c
glib/win_iconv.c: In function 'iso2022jp_mbtowc':
glib/win_iconv.c:1818:18: warning: comparison of integer expressions of different signedness: 'DWORD' {aka 'long unsigned int'} and 'int'
     if (cv->mode != ISO2022_MODE(cs, shift))
                  ^~
glib/win_iconv.c: In function 'iso2022jp_wctomb':
glib/win_iconv.c:1889:18: warning: comparison of integer expressions of different signedness: 'DWORD' {aka 'long unsigned int'} and 'int'
     if (cv->mode == ISO2022_MODE(cs, shift))
                  ^~
2021-10-14 18:48:02 +02:00
Philip Withnall
5707c91a56 win_iconv: Fix some file handler leaks on exit
I realise this is a contradiction in terms, but it keeps code analysis
tools happy. As spotted by cppcheck, which could not attend GUADEC, but
sends everyone its best wishes anyway.
2016-08-13 10:31:26 +02:00
Ignacio Casal Quinteiro
9e805ffd43 winiconv: update to upstream version
To update this code you need to fetch the last version of the code
from: https://github.com/win-iconv/win-iconv

Then you need to ensure 3 things:
 - the line ends are in unix format
 - some of the methods do not expose a const on the prototype
   refer to the commit b8c13a01b6bd5601eb3519dd3b20daed4bbc2e72
   on how to fix it
 - fix one uninitialized variable if not yet fixed upstream
   refer to 7e0cb48dee9a8ecd87d403b7941ad3209eee658c

https://bugzilla.gnome.org/show_bug.cgi?id=761126
2016-01-26 12:55:55 +01:00
Руслан Ижбулатов
7e0cb48dee Silence a controversial warning in win_iconv
https://bugzilla.gnome.org/show_bug.cgi?id=711547
2014-08-02 12:38:39 +00:00
Dan Winship
b8c13a01b6 win32: misc warning fixes
https://bugzilla.gnome.org/show_bug.cgi?id=688109
2012-11-15 14:19:06 -05:00
Tor Lillqvist
dc8dc56ddd dos2unix glib/win_iconv.c 2010-09-11 12:08:32 +03:00
Tor Lillqvist
6ddef375c8 Recuce DLL hijack risk on Windows
Don't call LoadLibrary() on shell32.dll or kernel32.dll. kernel32.dll
is always loaded. Shell32.dll is also already loaded as glib links to
functions in it. So just call GetModuleHandle() on them.

For mlang.dll in win_iconv.c and winhttp.dll in gwinhttpvfs.c, always
try loading them from a complete path, from the Windows system
directory.

Use the "tool help" API to enumerate modules in gmodule-win32.c. It is
present in all Windows versions since Windows 2000, which is all we
support anyway. Thus no need to look that API up dynamically. Just
link to it normally. We can bin the fallback code that attempts to use
the psapi API.
2010-09-02 22:36:47 +03:00
Ryan Lortie
2e53e50244 glib/: fully remove galias hacks 2010-07-07 19:34:35 -04:00
Tor Lillqvist
c7501c8223 Bug 554790 - g_convert() misbehaves with winiconv versions
2008-10-08  Tor Lillqvist  <tml@novell.com>

	Bug 554790 - g_convert() misbehaves with winiconv versions

	* glib/win_iconv.c (kernel_mbtowc): If converting from ASCII,
	explicitly check for and reject 8bit chars. MultiByteToWideChar()
	doesn't, at least not on XP.


svn path=/trunk/; revision=7578
2008-10-08 20:35:39 +00:00
Tor Lillqvist
fd54a90954 Bug 525972 - UCS-4 not in the new win_iconv implementation
2008-04-03  Tor Lillqvist  <tml@novell.com>

	Bug 525972 - UCS-4 not in the new win_iconv implementation

	* glib/win_iconv.c: Add UCS-4. Also add spelling of UCS-2 without
	the hyphen.


svn path=/trunk/; revision=6816
2008-04-03 14:59:39 +00:00
Tor Lillqvist
a6bdf9a1af Bug 524314 - g_convert() on Win32 implicitly converts full width
2008-04-02  Tor Lillqvist  <tml@novell.com>

	Bug 524314 - g_convert() on Win32 implicitly converts full width
	alphanumerics into half width
	
	* glib/win_iconv.c: Update from Yukihiro Nakadaira. Use
	WC_NO_BEST_FIT_CHARS flag for WideCharToMultiByte() unless the
	//translit flag was suffixed to the codeset name.

	* glib/gconvert.c: Include win_iconv.c earlier so that its
	definition of WINVER before it includes <windows.h> is used.


svn path=/trunk/; revision=6808
2008-04-02 02:43:45 +00:00
Tor Lillqvist
908d3ef0d4 Bug 523298 - win_iconv can't convert from UTF-8 to GB18030 (or vice versa)
2008-03-19  Tor Lillqvist  <tml@novell.com>

	Bug 523298 - win_iconv can't convert from UTF-8 to GB18030 (or vice versa)

	* glib/win_iconv.c: Fixes for code page 54936 (GB18030)
	(mbtowc_flags): New function. Check if a code page is one of those
	for which the dwFlags parameter to MultiByteToWideChar() must be
	zero. Return 0 or MB_ERR_INVALID_CHARS.
	(mbcs_mblen): New function for multi-byte (more than two bytes for
	some characters) code pages. Only handles 54936 for now.
	(make_csconv): Use it for 54936.
	(kernel_mbtowc): Use mbtowc_flags().


svn path=/trunk/; revision=6741
2008-03-20 02:40:23 +00:00
Tor Lillqvist
fb72653abc Bug 520914 - win_iconv doesn't support UCS-2
2008-03-12  Tor Lillqvist  <tml@novell.com>

	Bug 520914 - win_iconv doesn't support UCS-2
	
	* glib/win_iconv.c: Make UCS-2 just an alias for
	UTF-16. Technically this is wrong of course, but shouldn't matter
	an awful lot in practice.


svn path=/trunk/; revision=6686
2008-03-12 00:04:52 +00:00
Tor Lillqvist
7d48fb3c81 Add some GNU libiconv compatibility: Recognize "" and "char" as aliases
2008-02-29  Tor Lillqvist  <tml@novell.com>

	* glib/win_iconv.c (name_to_codepage): Add some GNU libiconv
	compatibility: Recognize "" and "char" as aliases for the current
	locale's charset. (We use the system ANSI codepage as returned by
	GetACP().) Recognize "wchar_t" as an alias for UTF-16LE.


svn path=/trunk/; revision=6604
2008-02-28 22:59:39 +00:00
Tor Lillqvist
a8a42c8b15 Add "shift-jis" as an alternative spelling of "shift_jis".
2007-12-05  Tor Lillqvist  <tml@novell.com>

	* glib/win_iconv.c: Add "shift-jis" as an alternative spelling of
	"shift_jis".


svn path=/trunk/; revision=6047
2007-12-05 07:14:19 +00:00
Tor Lillqvist
37f2dc3555 Some improvements, being upstreamed. (must_use_null_useddefaultchar): New
2007-11-27  Tor Lillqvist  <tml@novell.com>

	* glib/win_iconv.c: Some improvements, being upstreamed.
	(must_use_null_useddefaultchar): New function, checks for those
	codepages for which one must pass a NULL lpUsedDefaultChar pointer
	to WideCharToMultiByte().
	(kernel_wctomb): Use it.
	(kernel_wctomb): Return with E2BIG immediately if bufsize is zero.


svn path=/trunk/; revision=5945
2007-11-26 22:49:43 +00:00
Tor Lillqvist
bdbb9b8323 ISO8859-1 is CP28591, not CP1252.
2007-11-26  Tor Lillqvist  <tml@novell.com>

	* glib/win_iconv.c: ISO8859-1 is CP28591, not CP1252.


svn path=/trunk/; revision=5939
2007-11-26 00:50:24 +00:00
Tor Lillqvist
04aec5b28d Implement #491549: On Windows, always use the native API for character set
2007-11-26  Tor Lillqvist  <tml@novell.com>

	Implement #491549: On Windows, always use the native API for
	character set conversions instead of GNU libiconv. Almost all
	codesets supported by GNU libiconv exist as Windows codepages.
	One missing feature is the "C99" and "JAVA" pseudo codesets, but I
	doubt that is worth worrying about.
	
	* glib/win_iconv.c: New file. iconv() implementation for
	Windows. Placed in the public domain by Yukihiro Nakadaira
	<yukihiro.nakadaira@gmail.com>. From
	http://yukihiro.nakadaira.googlepages.com/win_iconv.zip, his
	2007-11-17 version.

	* glib/gconvert.c: Include win_iconv.c on Windows.

	* configure.in: Bypass iconv checks on Windows. 


svn path=/trunk/; revision=5937
2007-11-25 23:27:45 +00:00