2003-08-16 Tor Lillqvist <tml@iki.fi>
Fix#117925 (Dov Grobgeld):
* glib/gutils.c (g_find_program_in_path, g_basename,
g_path_get_basename, g_path_is_absolute, g_path_skip_root,
g_path_get_dirname, g_get_any_init): On Win32, look also for
slashes ('/') as pathname separators.
* glib/gfileutils.c (g_file_open_tmp): Ditto. If the template
contains a pathname separator, include the actual one in the error
message, instead of always the canonical one.
(g_build_filename): Separate implementation on Win32 that looks
for either slash or backslash. Document Unix/Windows differences.
* tests/testglib.c
* tests/strfunc-test.c: Test above functionality on Win32.
2003-08-15 Tor Lillqvist <tml@iki.fi>
* glib/gmain.c (g_poll): [Win32] Don't exceed handle array
bounds. Warn if there would be too many handles to wait
for. (WaitForMultipleObjects() has a relatively low limit of 64
handles. The Win32 IO channel code should be fixed not to need to
wait for one handle per file or socket being watched. Later.)
2003-08-13 Tor Lillqvist <tml@iki.fi>
* glib/Makefile.am
* gmodule/Makefile.am
* gobject/Makefile.am
* gthread/Makefile.am: Use srcdir also in references to the .def
files. (#118885, Jeff Bonggren)
2003-08-12 Tor Lillqvist <tml@iki.fi>
* glib/gconvert.c (g_locale_from_utf8): Drop the Win32-specific
implementation. It used WideCharToMultiByte(), which is broken as
it stores unconvertable characters as fallback characters
(question marks) in the destination string without being able to
tell how much of the conversion succeeded. Using g_convert() like
on Unix is better and simpler. (#117872)
(g_locale_to_utf8): No need for the Win32-specific implementation
here, either.
(have_broken_filenames): Define as TRUE on Win32.
(g_filename_to_utf8, g_filename_from_utf8): Drop Win32 ifdefs. As
have_broken_filenames() now is defined TRUE on Win32, works as
before.
2003-08-10 Tor Lillqvist <tml@iki.fi>
* glib/gutils.c (g_getenv): Don't use a cache of variable name to
value mappings on Win32, as that breaks g_setenv() and
g_unsetenv(). Only call ExpandEnvironmentStrings() if necessary,
and in that case return a quarkified string. It is still
questionable how necessary expanding embedded environment variable
references is. Possibly the whole Win32-specific g_getenv()
implementation could be removed. (#119520)
2003-08-07 Matthias Clasen <maclas@gmx.de>
* tests/env-test.c: Add tests for '=' in names and values.
* glib/gutils.c (g_setenv, g_unsetenv): Check that the variable name doesn't contain '='. Add a
declaration for environ. (#119338)
Thu Aug 7 14:15:44 2003 Owen Taylor <otaylor@redhat.com>
* glib/gmain.c (g_idle_source_new): Make the default priority
for idle sources G_PRIORITY_DEFAULT_IDLE as anybody would
expect and document that. (#114461, reported by Andy Wingo)
2003-08-05 Noah Levitt <nlevitt@columbia.edu>
* glib/guniprop.c: Get rid of "len" parameter to output_special_case
and output_marks, and make them work more like g_unichar_to_utf8,
fixing a bug in the process. (#118957)
2003-07-31 Tor Lillqvist <tml@iki.fi>
* glib/gspawn-win32.c: When possible, manage without the helper
process. (Part of the enhancements outlined in #98737.) Speeds up
GIMP 1.3's first-time-run plug-in query phase a lot.
Plug a file descriptor (and thus Win32 handle) leak: close the
read end of the child error report pipe after use.
* glib/gfileutils.[hc]: Rename g_read_link() to g_file_read_link() to better match the remaining file
utilities in the g_file_ namespace and to better separate it from readlink(). This is hopefully no problem
as the function is just 2 days old.
2003-07-26 Matthias Clasen <maclas@gmx.de>
* glib/garray.h:
* glib/garray.c (g_{,byte,pointer}_remove_range): New functions to remove a range of elements
from an array. (#94879, Nalin Dahyabhai)
2003-07-20 Hans Breuer <hans@breuer.org>
* glib/trio/makefile.msc : (new file) for msvc build
* glib/glib.def : removed some duplicated entries
* glib/gscanner.c : add same workaround for MSVC(5.0)
which does not allow to cast an uint64 to float.
Same as in gvaluetransform.c
Also move #include <io.h> behind inclusion of "glib.h"
which defines the needed G_OS_WIN32
* glib/makefile.msc.in : added gprintf.obj, trio\trio.lib
as well as shell32.lib
* tests/spawn-test.c : include <io.h> on win32
Wed Jul 9 16:27:26 2003 Manish Singh <yosh@gimp.org>
* glib/gmain.c (g_main_context_unref_and_unlock): check if
context->poll_chunk is set before trying to destroy it. For example,
This can happen if no sources are added to a context before it is
freed.
2003-07-12 Matthias Clasen <maclas@gmx.de>
* glib/gprintf.c: Doc additions.
2003-07-12 Matthias Clasen <maclas@gmx.de>
* glib/tmpl/string_utils.sgml: Add a paragraph about string precision, add links to it.
Remove markup which is now handled better by gtk-doc.
2003-07-09 Matthias Clasen <maclas@gmx.de>
Support for one-time initialization functions. (#69668, Sebastian Wilhelmi)
* configure.in: Check whether double checked locking is safe, define g_once() in
glibconfig.h accordingly.
* glib/gthread.h: Add GOnce, GOnceStatus, G_ONCE_INIT and g_once_impl.
* glib/gthread.c (g_once_impl): Fallback implementation using a mutex if double checked
locking is unsafe.
* tests/thread-test.c: Add tests for g_once().
2003-06-25 Tor Lillqvist <tml@iki.fi>
* glib/giowin32.c (g_io_channel_unix_new): Pass real &optval and
&optlen to getsockopt() instead of NULL. Don't remember why I
thought that NULL could be used (as we don't actually use the
returned value for anything), the Platform SDK documentation
doesn't imply so.
2003-06-11 Tor Lillqvist <tml@iki.fi>
* glib-zip.in (DEVZIP): libtool 1.5 installs DLLs in the bin
subdirectory, so get them from there.
* glib/gwin32.c (g_win32_getlocale): Use "sr@Latn" and "sr" in the
same way as the po files for Serbian in Latin and Cyrillic script.
2003-06-08 Tor Lillqvist <tml@iki.fi>
* glib/giowin32.c: Fix indentation and spacing. Use
INADDR_LOOPBACK instead of inet_addr("127.0.0.1") and
gethostbyaddr().
* glib/giowin32.c: Resolved thread deadlocks in socket
ichannel code to support Add-Cancel-Add watch functionality
on windows. Also cleaned up socket error handling to not
segfault and do the right thing.
Thu Jun 5 23:40:31 2003 Owen Taylor <otaylor@redhat.com>
* glib/gmain.c: When dispatching a source that is
!CAN_RECURSE, temporarily remove any file descriptors
that that source has registered from the main loop, to keep
recursive main loops from busy-waiting if input
becomes available on one of those file descriptors.
(#112222, Christian Krause)
* glib/gmain.c (g_source_set_priority): Properly
remove the source from the context's source list
and reinsert it sorted, rather than simply setting
source->next/prev to NULL! (#114274)
2003-06-06 Matthias Clasen <maclas@gmx.de>
* glib/gstring.c (g_string_append_printf_internal): Use
g_vasprintf() and g_string_append_len(), thus enabling embedded
nuls in the result of g_string_printf(). (#92492, Owen Taylor)
* tests/string-test.c: Add a test for embedded nuls in the
result of g_string_printf().
2003-06-06 Matthias Clasen <maclas@gmx.de>
* glib/gprintf.[ch]: Synchronize argument names with headers and docs.
(g_vasprintf): An implementation of vasprintf(), code was lifted
from g_strdup_vprintf(). (#112365)
* glib/gstrfuncs.c (g_strdup_vprintf): Just use g_vasprintf().
2003-06-05 Tor Lillqvist <tml@iki.fi>
* glib/giochannel.h
* glib/gmain.h: Remove bogus (Win32-only) declaration of
g_main_poll_win32_msg_add(). No such function exists.
* glib/gmain.c (g_poll) [Win32]: Use g_win32_error_message() for
better warning messages.
Mon Jun 2 14:18:21 2003 Owen Taylor <otaylor@redhat.com>
Patch from Jeffrey Stedfast <fejj@ximian.com> (#104825)
* glib/gspawn.c (read_data): Don't read() into '&buf', while this
is technically okay - it is clearer as just 'buf'.
(write_all): New helper function that handles write() interrupts.
(write_err_and_exit): Use write_all() instead of write().
(fork_exec_with_pipes): Same here.
Sun Jun 1 09:42:36 2003 Owen Taylor <otaylor@redhat.com>
* glib/giochannel.c (g_io_error_get_from_g_error): Put
the g_return_val_if_fail() in the right place.
Fri May 31 1:17:45 2003 Ray Strode <halfline@hawaii.rr.com>
* glib/giochannel.c (g_io_channel_error_from_errno):
Fix typo: should be G_IO_ERROR_UNKNOWN not
G_ERROR_ERROR_UNKNOWN