Added g_static_mutex_init to allow initialization of a GStaticMutex, that
[platform/upstream/glib.git] / ChangeLog.pre-2-0
index 28adbe9..ad1a004 100644 (file)
@@ -1,3 +1,516 @@
+2001-02-01  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
+
+       * gthread.c, gthread.h: Added g_static_mutex_init to allow
+       initialization of a GStaticMutex, that can not be initialized with
+       G_STATIC_MUTEX_INIT, for example in allocated structures.
+
+Wed Jan 31 13:46:58 2001  Owen Taylor  <otaylor@redhat.com>
+
+       * acinclude.m4 glib-gettext.m4: Fix problem with --disable-nls.
+
+2001-01-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
+
+       * gthread.c, gthread.h: Added g_static_mutex_free to allow using
+       GStaticMutexes with limited lifetime without leaking.
+       
+       * configure.in: GStaticMutex doesn't have to provide extra space
+       for debugging information for G_ERRORCHECK_MUTEXES, as then the
+       non-default implementation (runtime_mutex) is used anyway.
+
+       * gthread.h (g_cond_wait): Added debug information for
+       g_mutex_free calls, if G_ERRORCHECK_MUTEXES is defined.
+
+2001-01-29  Tor Lillqvist  <tml@iki.fi>
+
+       * glibconfig.h.win32.in: Use the same GMutex structure as the
+       configure-generated glibconfig.h does.
+
+       * gstrfuncs.c (g_strsignal): Declare strsignal() on Cygwin, too,
+       says jbdoll@kepri.re.kr.
+
+2001-01-29  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
+
+       * gthread.c: Broadcast the condition, if there are waiting
+       readers, as all might read at the same time. Only signal the
+       writer thread, if there are no more readers.
+
+2001-01-25  Tor Lillqvist  <tml@iki.fi>
+
+       * makefile.mingw.in
+       * */makefile.mingw.in: Protect the rule to rebuild makefile.mingw
+       if makefile.mingw.in has changed with a check if said .in file
+       exists. (This rule is mainly a convenience for yours truly.)
+
+       * giowin32.c: Socket support rewritten. It was utterly broken, and
+       untested in fact. We still do use a thread for each socket being
+       watched, but instead of blocking in recv() (which of course was
+       plain stupid for sockets being listen()ed on in a server-type
+       application), we block in select(). The read method for sockets
+       calls recv(). It is now possible for the application to call
+       accept(), recv() or send() in the callback, just like on
+       Unix. Tested with code kindly provided by Andrew Lanoix.
+
+       Rename g_io_channel_win32_new_stream_socket() to
+       g_io_channel_win32_new_socket() as it isn't restricted to stream
+       sockets.
+       
+       * gmain.c (g_poll): Related changes in the Win32 version of
+       g_poll(). When polling for messages, always do a PeekMessage()
+       first. We used to miss messages if several were posted between
+       calls to g_poll().
+
+       * giochannel.h: Improve Win32-related comments.
+
+       * gutf8.c: (Win32) Include <stdio.h> for sprintf.
+
+       * tests/gio-test.c: (Win32) Add tests for polling for Windows
+       messages.
+
+       * tests/makefile.mingw.in: Remove superfluous compilation command
+       line.
+
+2001-01-23  Alex Larsson  <alexl@redhat.com>
+
+       * gmain.c (g_source_callback_unref): Free the callback
+       (g_source_set_callback): Initialize the callback refcount
+
+2001-01-20  Tor Lillqvist  <tml@iki.fi>
+
+       * gutils.c (g_get_codeset): (Win32) Even if g_get_codeset() is
+       currently commented out from gutils.h, fix it to return the same
+       CP%d value as g_get_charset().
+
+2001-01-19  Kjartan Maraas  <kmaraas@gnome.org>
+
+       * gconvert.c: Fix typo.
+       * gfileutils.c: Same here.
+       * configure.in: Added no to ALL_LINGUAS
+       
+2001-01-17  Tor Lillqvist  <tml@iki.fi>
+
+       * gwin32.c (g_win32_getlocale, g_win32_error_message): Add doc
+       comments.
+       (g_win32_get_package_installation_directory): Add one parameter,
+       the name of a DLL in the package. Add possibility to use that to
+       deduce the installation directory if not entered into the
+       Registry. Make the return value dynamically allocated.
+       (g_win32_get_package_installation_subdirectory): New convenience
+       function.
+
+       * gutils.c (GLIB_LOCALE_DIR)
+       * gwin32.h: Adapt accordingly.
+
+       * testglib.c (main): Adapt tests accordingly.
+
+Tue Jan 16 23:20:38 2001  Owen Taylor  <otaylor@redhat.com>
+
+       * gutils.c glibintl.h: Optimize for size rather than speed by
+       making _() always call _glib_gettext() instead of conditionally
+       calling gettext() or _glib_gettext_init. glib only uses translated
+       strings in slow error handling code anyways.
+
+       * glibintl.h: g'ify types.
+
+       * Makefile.am: include glibintl.h in _SOURCES
+
+2001-01-17  Tor Lillqvist  <tml@iki.fi>
+
+       * config.h.win32.in: Define ENABLE_NLS and GETTEXT_PACKAGE.
+
+       * makefile.mingw.in
+       * makefile.msc.in: Use the GNU intl library.
+
+       * gwin32.c (g_win32_get_package_installation_directory): New
+       function. To be used by various GLib-using packages to get their
+       installation directory, which should be stored in the Registry by
+       some installer.
+
+       * gwin32.h: Declare it.
+
+       * testglib.c (main): Test it.
+
+       * gutils.c: On Win32, define GLIB_LOCALE_DIR using
+       g_win32_get_package_installation_directory().
+
+       * glib.def: Update.
+
+Mon Jan 15 21:39:06 2001  Owen Taylor  <otaylor@redhat.com>
+
+       * glib-2.0.pc.in (Libs) glib-config-2.0.in: Add @INTLLIBS@.
+
+Mon Jan 15 21:12:49 2001  Owen Taylor  <otaylor@redhat.com>
+
+        * configure.in acconfig.h glibintl.h gutils.c
+       po/{Makefile.in.in,POTFILES.in,po2tbl.in}: Add gettext
+       support.
+
+       * glib-gettext.m4 acinclude.m4: Clean up the GTK+ gettext macros
+       some more and put them in this file, though they also need
+       to be included in acinclude.m4 due to the brokeness of
+       aclocal.
+
+       * gspawn.c gspawn-win32.c gutf8.c gconvert.c gfileutils.c
+       gshell.c: Remove dummy _() #defines, include glibintl.m4.
+
+2001-01-09  Tor Lillqvist  <tml@iki.fi>
+
+       * giowin32.c: Rework the changes needed to pass mainloop-test. Now
+       we don't need to call TerminateThread() after all, which is a
+       relief, as the docs have a BIG RED WARNING SIGN about using that
+       API. Instead, when closing a fd channel that has a reader thread
+       running, just mark it as non-running and additionally mark the fd
+       as ripe for closing. When the reader thread hopefully eventually
+       gets something (and EOF or some actual data), it will note that it
+       shouldn't be running, break out of the loop, and close the fd.
+
+       The socket channel closing code should probably be changed
+       similarily, but that will have to wait until I have a test case.
+       
+       (g_pipe_readable_msg, g_io_channel_win32_new_pipe,
+       g_io_channel_win32_new_pipe_with_wakeups,
+       g_io_channel_win32_pipe_request_wakeups,
+       g_io_channel_win32_pipe_readable): Remove these, have been
+       obsolete for some time.
+       
+       * gutils.c (g_basename, g_dirname): Don't warn about deprecation
+       on Win32. Code written for GLib 1.2 doesn't have much choice but
+       to use GLib >= 1.3 on Win32.
+
+       * glib.def: Update.
+
+2001-01-09  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
+
+       * gmem.c: Made g_profile_mutex a GMutex* instead of
+       G_LOCK_DEFINE_STATIC to avoid deadlock for thread implementations
+       without native static mutexes. Contruct g_profile_mutex in
+       g_mem_init().
+
+2001-01-06  Tor Lillqvist  <tml@iki.fi>
+
+       * gconvert.c (g_locale_to_utf8, g_locale_from_utf8): Get len using
+       strlen() if arg is negative in the Win32 code, too.
+
+       * giowin32.c: Changes necessary to be able to run
+       mainloop-test. We can't close the fd that our (internal) reader
+       thread is sitting doing a blocking read() from. We must terminate
+       the thread first. Keep track of thread handle, and close it when
+       thread is dying. Start reader thread with the lower-level
+       CreateThread() instead of _beginthreadex() from the C runtime, in
+       order to be able to use TerminateThread(). Hopefuly this isn't
+       harmful.
+
+       * glib.def: Update.
+
+       * tests/makefile.{mingw,msc}.in (TESTS): Add mainloop-test and
+       unicode-encoding.
+
+       * tests/mainloop-test.c: Portability: <unistd.h>, need <fcntl.h>
+       on Win32.
+
+       * tests/unicode-encoding.c (process): Add missing "line" argument
+       to fail(). On Win32, convert UTF-16LE, as libiconv'c ivonf always
+       converts to UTF-16BE if we ask for unspecific UTF-16.
+       (main) Handle also '\r'.
+
+Fri Jan  5 11:25:42 2001  Owen Taylor  <otaylor@redhat.com>
+
+       * configure.in (PACKAGE): move $enable_debug down below
+       checks for GCC to avoid setting CFLAGS prematurely,
+       change checks to avoid adding -g twice.
+
+       * gutf8.c (g_ucs4_to_utf8): Support len < 0 to mean
+       0 termination.
+
+       * gutf8.c (g_utf8_to_ucs4): Terminate result with 0.
+
+       * tests/mainloop-test.c (main): Fix uses of 
+       g_main_loop_destroy().
+
+       * tests/unicode-encoding.c tests/Makefile.am tests/utf8.txt:
+       Tests for unicode-conversion code.
+
+       * gconvert.c (g_convert, g_convert_with_fallback): work around
+       a couple of GNU libc bugs.
+
+       * gconvert.[ch] (g_{locale,filename}_{to,from}_utf8): Standardize
+       arguments to match g_convert(). Document.
+
+       * gunicode.[ch]: 
+         - Implement conversion functions to and from UTF-16
+         - Standardize unicode conversion functions on prototype like
+           g_convert.
+         - Add a lot of error checking to unicode conversion functions.
+
+       * gunicode.[ch] (g_utf8_to_ucs4_fast): Add fast, non-checking
+       variant of g_utf8_to_ucs4.
+
+       * gutf8.c (g_utf8_validate): 
+        - add g_return_if_fail (str != NULL).
+        - add checks for overlong strings, non-valid Unicode characters (>= 110000)
+          and single surrogates.
+
+2001-01-05  Tor Lillqvist  <tml@iki.fi>
+
+       * testglib.c (main): Add test for g_path_skip_root().
+
+       * gfileutils.c (g_file_open_tmp): (Win32:) Look also for (illegal)
+       forward slashes in the template.
+
+       * gutils.c (g_path_skip_root): On Win32, skip the \\server\share
+       part of UNC paths. On all platforms, skip several initial
+       slashes. Add a few comments.
+       (g_get_any_init): On Win32, in case HOME is Unix-style with
+       (forward) slashes (some other applications apparently set it up
+       this way, convert to backslashed form.
+
+       * configure.in (glib_os): Remove stray 'v'. Add case for mingw,
+       although using configure for mingw surely doesn't work yet.
+
+       * glib.def: Update.
+
+2001-01-02  Havoc Pennington  <hp@redhat.com>
+
+       * configure.in: remove glib-config-2.0
+
+       * Makefile.am: remove glib-config-2.0
+
+2001-01-03  Havoc Pennington  <hp@pobox.com>
+
+       * tests/Makefile.am (INCLUDES): -I$(top_srcdir)/gmodule, 
+       fix from Michael Meeks
+
+       * Makefile.am (INCLUDES): DISABLE was spelled wrong
+
+Wed Jan  3 14:10:49 2001  Owen Taylor  <otaylor@redhat.com>
+
+       * gmain.[ch]: Switch GMainLoop to be ref/unref, use to
+       make dropping reference to running loop safe.
+
+Wed Dec 13 20:41:49 2000  Owen Taylor  <otaylor@redhat.com>
+
+       * gmain.c (g_source_unref_internal): Unref callback->cb_data
+       if it was still set when the source is freed. (Usually, this
+       will be done by g_source_destroy.)
+
+2001-01-02  Dan Winship  <danw@helixcode.com>
+
+       * garray.h (g_array_append_val, g_array_prepend_val,
+       g_array_insert_val): Use parentheses around an argument to make
+       these cause an error if you pass a non-lvalue for the value,
+       rather than silently doing the wrong thing.
+
+2000-12-29  Tor Lillqvist  <tml@iki.fi>
+
+       * glibconfig.h.win32.in: Add GLIB_SIZEOF_VOID_P and GLIB_SIZEOF_LONG.
+
+       * glib.def: Update.
+
+       * {.,*}/makefile.{mingw,msc}.in: Add -DG_ENABLE_DEBUG.
+       
+Fri Dec 29 14:53:18 2000  Tim Janik  <timj@gtk.org>
+
+       * configure.in: we can't grow _cv_ variables by using a backticked
+       expr that refers back to the variable (glib_cv_sizeof_system_thread for
+       G_THREAD_USE_PID_SURROGATE), that'd keep the variable growing every time
+       it's evaluated. quantum states, anyone?)
+
+Thu Dec 28 10:21:46 2000  Tim Janik  <timj@gtk.org>
+
+       * gmem.[hc]: got rid of outdated dmalloc support. provide g_try_malloc()
+       and g_try_realloc() which _may_ fail and return NULL.
+       nuked g_mem_check(), provided GMemVTable for memory function
+       virtualization, alterable at program startup with g_mem_set_vtable().
+       provided glib_mem_profiler_table and g_mem_profile() to support limited
+       profiling information out of the box (uses mprotect() for free()ed areas
+       on linux).
+       provide globally visible G_MEM_ALIGN.
+       buncha cleanups.
+
+       * docs/macros.txt: file to get a clue about the various configuration
+       macros.
+
+       * docs/debugging.txt: explain debugging traps.
+
+       * configure.in: got rid of --enable-mem-check and --enable-mem-profile,
+       define GLIB_SIZEOF_VOID_P and GLIB_SIZEOF_LONG. check malloc prototypes
+       and define SANE_MALLOC_PROTOS is we can use them.
+       <boy, is this file a mess>
+
+       * gutils.c, gscanner.c: fix up compatibility warnings, use g_message().
+
+2000-12-27  Tor Lillqvist  <tml@iki.fi>
+
+       * README.win32: Update.
+
+2000-12-25  Tor Lillqvist  <tml@iki.fi>
+
+       * gmessages.c: (Win32) Use a MessageBox for fatal
+       messages. Collect eror message into a buffer, and display that.
+
+       * glib.def: Update.
+
+       * glibconfig.h.win32.in: Update. Remove unused wchar and wctype
+       macros, add G_MODULE_SUFFIX.
+
+2000-12-24  Ali Abdin  <aliabdin@aucegypt.edu>
+
+       * Makefile.am, gcompat.h, glib.h: New gcompat.h header file
+         as recommended by Havoc.
+
+       * gdate.c, gdate.h, testgdate.c,
+         docs/reference/glib/glib-sections.txt,
+         docs/reference/glib/tmpl/date.sgml, tests/date-test.c: Rename some
+         of the gdate functions to use the '_get' in their name. Patch
+         reviewed by Havoc.
+               
+2000-12-22  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
+
+       * configure.in: Determine the suffix of the shared librarries for
+       this system. This is done analogous to
+       ltconfig.sh. G_MODULE_SUFFIX in glibconfig.h is set to either
+       "sl", "dll", or (most often) "so".
+
+       * tests/Makefile.am, tests/module-test.c,
+       tests/libmoduletestplugin_a.c, tests/libmoduletestplugin_b.c:
+       Added new testcase for gmodule. This is mostly copied from
+       gmodule/testgmodule.c, but unlike that is is quiet. (Why BTW are
+       some tests that verbose, not to say loquacious...)
+
+2000-12-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
+
+       * grand.c: Updated G_RAND_DOUBLE_TRANSFORM to be more
+       accurate. Redid g_rand_double() such that it returns 52 bits after
+       the point instead of 32 as before. That OTOH requires calling
+       g_rand_int() twice. Overhauled g_rand_int_range(), which is easier
+       now thanks to the new precision of g_rand_double(). Thanks to
+       Sverre Johansen <sj@ifi.uio.no> for the hint.
+
+       * grand.h: Added g_rand_boolean() and g_random_boolean()
+       macros. While they could be omitted due to extreme simplicity,
+       they make intention clearer in code and are therefore good to have.
+
+       * grand.c, grand.h: Renamed all 'min' and 'max' parameters to'
+       begin' and 'end' resp. to avoid making people think, that 'max' is
+       included in the interval. 'end' now isn't, whereas 'begin'
+       is. That's similar to the use in the STL.
+
+       * gslist.c, glist.c: Ok, I'm a moron. When I originally
+       implemented ENABLE_GC_FRIENDLY, I forgot to include config.h into
+       the affected files. Now that Alex did that for those two,
+       inevitable typos surfaced, which are now fixed.
+       
+       * garray.c, ghash.c, gqueue.c, gtree.c: Include config.h as well,
+       as ENABLE_GC_FRIENDLY should be known.
+
+2000-12-19  Alexander Larsson  <alexl@redhat.com>
+
+       * configure.in:
+       Added --disable-mem-pools option.
+
+       * glist.c:
+       * gslist.c:
+       * gnode.c:
+       * gmem.c:
+       Disable free list and memory chunks if DISABLE_MEM_POOLS is defined.
+
+2000-12-17  Tor Lillqvist  <tml@iki.fi>
+
+       * gutf8.c (g_utf8_get_charset_internal): (Win32) Use GetACP to get
+       the current ANSI codepage.
+
+       * gunicode.h: Add comment that the static string g_get_charset
+       sets the parameter to point to should be copied in case the
+       charset might be changed later in the program.
+
+2000-12-14  Tor Lillqvist  <tml@iki.fi>
+
+       * makefile.{mingw,msc}.in: No need to -DGSPAWN_HELPER when
+       compiling gspawn-win32-helper any longer.
+
+       * giowin32.c (g_io_win32_dispatch): Warn if no callback. Call
+       callback correctly.
+       (g_io_win32_create_watch): Fix typo.
+       (g_io_win32_fd_create_watch): Ditto.
+       (g_io_channel_unix_new): If it is a file descriptor (i.e., a Unix
+       fd lookalike provided by the C library), call
+       g_io_channel_win32_new_fd(). If it is a socket (from WinSock),
+       call g_io_cahnnel_win32_new_stream_socket(). Hopefully sockets and
+       fds don't overlap. TODO: Implement also datagram sockets.
+       (g_io_channel_win32_poll): Call g_main_context_get_poll_func().
+
+       * gcompletion.h: Include <unistd.h> only on Unix. Is this
+       inclusion really needed here? OTOH, do include <stddef.h>, for
+       size_t.
+
+       * gmessages.c: (Win32) Don't define a function called "write" that
+       might clash with the prototype from <io.h>, use a #define.
+
+       * glib.def: Update.
+
+       * gmain.c (g_source_add_poll): Don't return a value from void
+       function.
+       (g_main_context_get_poll_func): Compile also for non-Win32, as
+       presumably was intended. The result var is a GPollFunc, not a
+       GPollFunc*. Return the result!
+
+2000-12-13  Havoc Pennington  <hp@redhat.com>
+
+       * gconvert.c (open_converter): make static
+
+       * gutf8.c (g_utf8_validate): Simplify logic a bit, maybe 
+       speeding it up - now we just return FALSE if we had to bail out
+       for any reason before getting to the end of the string, as defined 
+       by a nul byte if len was -1, defined by the len otherwise. This 
+       also fixes a bug where nul bytes were not treated as invalid 
+       when the length was specified.
+
+2000-12-12  Havoc Pennington  <hp@pobox.com>
+
+       * gmain.c (g_main_context_destroy): don't try to use thread stuff
+       unless G_THREADS_ENABLED
+       (g_main_context_query): ditto
+       (g_main_context_check): ditto
+       (g_main_loop_quit): ditto
+
+Tue Dec 12 18:58:22 2000  Tim Janik  <timj@gtk.org>
+
+       * ghash.c (g_hash_table_remove): return whether a value
+       got removed.
+
+Tue Dec 12 15:18:10 2000  Owen Taylor  <otaylor@redhat.com>
+
+       * gmain.[ch]: Revert unauthorized changes.
+
+2000-12-12  Elliot Lee  <sopwith@redhat.com>
+
+       * gmain.c, gmain.h (g_main_context_new, g_main_context_destroy):
+       GMainContext useful in implementing some additional styles of
+       main loop usage.  To do this, however, Joe Hacker needs to be able
+       to create/destroy GMainContext's at will. This is just an export
+       of existing functionality, rather than any new functionality.
+
+       They are listed in the "Low level functions for implementing custom
+       main loops" section of the header file, to avoid confusing people.
+
+Sun Dec 10 10:47:11 2000  Owen Taylor  <otaylor@redhat.com>
+
+       * gmain.c (g_source_destroy_internal): Remove pollfds
+       from the context here, not when actually freeing the
+       source.
+
+       * gmain.c (g_source_unref_internal): Free source list
+       and source, call source->source_funcs->destroy().
+
+       * giochannel.c: Unreference io_channel properly.
+
+Thu Dec  7 15:22:30 2000  Owen Taylor  <otaylor@redhat.com>
+
+       * tests/mainloop-test.c (recurser_start): Add a bunch
+       of unrefs.
+
+       * gmain.c (g_source_attach): Reference the source
+       when adding (pointed out by Elliot)
+
 2000-12-08  Raja R Harinath  <harinath@cs.umn.edu>
 
        * acglib.m4 (GLIB_AC_DIVERT_BEFORE_HELP):