2001-02-21 Tor Lillqvist <tml@iki.fi>
Cygwin support contributed by Stefan Ondrejicka
<ondrej@idata.sk>. Hopefully I got it all in while simultaneously
adding support for auto*/libtool for mingw.
* Makefile.am: Changes for auto* support on Cygwin and Win32. Do
still distribute the hand-written makefiles and *.win32.in files,
though. Use GIO, GSPAWN and PLATFORMDEP macros set by configure.
Use -no-undefined. Pass -export-symbols glib.def to libtool.
* configure.in: Define G_PLATFORM_WIN32 on both pure Win32 (mingw)
and Cygwin. Add AC_CYGWIN, AC_EXEEXT and AC_LIBTOOL_WIN32_DLL
calls for Cygwin and mingw support. Check for %I64u guint64
format (in MS C library). Set G_MODULE_IMPL on mingw and
Cygwin. Use ac_object and ac_exeext. Set GIO, GSPAWN, PLATFORMDEP
and G_LIBS_EXTRA. Compile timeloop only on Unix. Define OS_WIN32
automake conditional on Win32.
* glib.h: Include gwin32.h also on Cygwin.
* gfileutils.c (get_contents_posix): Use O_BINARY (defined as 0 on
Unix) for Cygwin's sake.
* gtimer.c (GETTIME): Reduce #ifdefs, use a macro GETTIME().
* gconvert.c
* gthread.c
* gutf8.c
* gutils.c: For code needed both on Cygwin and native Win32,
test for G_PLATFORM_WIN32.
* gmarkup.h: Use G_BEGIN_DECLS and G_END_DECLS.
* gtypes.h: Refine GLIB_VAR definition. Also check for DLL_EXPORT
in case compiling a static library on Win32 or Cygwin.
* gwin32.c: No <direct.h> on Cygwin. No need for ftruncate() or
dirent emulation on Cygwin.
(get_package_directory_from_module) Convert return value from
GetModuleFileName() to POSIX path on Cygwin.
* tests/Makefile.am (progs_LDADD): Link with libglib, libgthread
and libgmodule as appropriate. Use -no-undefined.
* gbacktrace.c: Move #ifdefs around a bit on Win32.
* gshell.c (unquote_string_inplace): Make static.
* testglib.c: Make some vars static. Add Cygwin path tests.
2001-03-01 Tor Lillqvist <tml@iki.fi>
* gutils.c(g_find_program_in_path): Implement on Win32. Append the
executable file name suffixes from PATHEXT in turn while
looking for the program.
(g_find_program_in_path): If the program we are looking for is a
relative path in a subdirectory, don't do any path search.
2001-03-01 Tor Lillqvist <tml@iki.fi>
* gutils.c (g_path_is_absolute): (Win32) Remove test for initial
double backslash (UNC path), this will of course be matched by the
test for an initial G_DIR_SEPARATOR right up front. Silly me.
(g_find_program_in_path): Implement on Win32.
(g_get_any_init): (Win32) Also look for the USERPROFILE env var
indicating the home directory equivalent.
* testglib.c (main): Test g_find_program_in_path() on Win32 by
looking for more.com and regedit.exe.
* glib.def: Add g_find_program_in_path.
2001-02-21 Tor Lillqvist <tml@iki.fi>
* gutils.c (g_path_is_absolute): Match also UNC paths on Win32.
* gthread.h: Include gtypes.h to be sure to get GLIB_VAR
definition, remove definition from here.
* gunicode.h: Remove duplicate GLIB_VAR definition from here, too.
* gutils.c: (Win32) Use USERPROFILE as home dir if present. On
Win2k, HOMEDRIVE and HOMEPATH aren't reliable.
* Makefile.am (INCLUDES): Add -DGLIB_COMPILATION.
* makefile.mingw.in: Remove install target, Windows isn't Unix.
* testgdate.c
* testgdateparser.c
* testglib.c: Undefine GLIB_COMPILATION.
* glib.def: Updates.
* .cvsignore
* */.cvsignore: Ignore also .obj, .dll, .lib and .exe files.
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-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: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>
* 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-05 Tor Lillqvist <tml@iki.fi>
* testglib.c (main): Add test for g_path_skip_root().
* gutils.c (g_path_skip_root): Fix bugs in code I just added ;-)
2001-01-05 Tor Lillqvist <tml@iki.fi>
* 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.
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().
Thu Dec 28 11:36:44 2000 Tim Janik <timj@gtk.org>
* gbsearcharray.c (upper_power2): disable G_BSEARCH_ALIGN_POWER2
fucntionality if DISABLE_MEM_POOLS is defined.
* gtype.c: honour DISABLE_MEM_POOLS.
* gsignal.c (g_signal_init): flag signal key bsearch array with
G_BSEARCH_ALIGN_POWER2 to avoid excessive growth time. honour
DISABLE_MEM_POOLS.
* gparam.h: added G_PARAM_READWRITE alias for (G_PARAM_READABLE |
G_PARAM_WRITABLE).
2000-11-15 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: Check for the sched.h header and include it on
gthread/gthread-posix.c if available.
* gthread-posix.c: Include <sched.h> if available.
* configure.in: Add -D_POSIX4_DRAFT_SOURCE to
GTHREAD_COMPILE_IMPL_DEFINES. Also add -D_POSIX4A_DRAFT10_SOURCE
to G_THREAD_CFLAGS. Really deploy GTHREAD_COMPILE_IMPL_DEFINES,
when searching for thread libs. Look for sched_* functions in
-lrte as well. All of that is necessary on DG/UX.
* configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADERS in
various places to make it work more reliable, to make it accept
macros instead of functions etc.
* configure.in: Replace some NULL's for checks with 0 to make it
work without stdio.h everywhere.
* configure.in, gutils.c: changed the test for getpwuid_r to first
test for a posix version and then for a non-posix version. No code
change in gutils.c. Again this change deals better with getpwuid_r
being a macro and not a function. Most of the above with kind help
from Tethys <tet@isengard.europe.dg.com>. This fixes Bug #13403.
2000-10-30 Tor Lillqvist <tml@iki.fi>
* configure.in: Check for mkstemp.
* gutils.c (g_mkstemp): New function. If HAVE_MKSTEMP, just call
it, otherwise use code lifted from glibc.
* gutils.h: Declare it.
* glib.def: Here, too.
2000-10-30 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* gcache.h, gcache.c, ghash.h, ghash.c, grel.c, grel.h, gtypes.h:
Introduced new function type GEqualFunc to return TRUE for equal
params. This is now used instead of GCompareFunc (which should
work akin to strcmp) here. This kind of fixes Bug #14412. Note
that technically GCompareFunc and GEqualFunc are still the same
types, as gint == gboolean.
* ghash.h, gutils.c: g_int_equal and g_direct_equal now return
gboolean to be really become GEqualFunc.
* gscanner.c, testglib.c, tests/hash-test.c: Some tiny changes to
follow the above change.
2000-10-09 Havoc Pennington <hp@redhat.com>
* Makefile.am, tests/Makefile.am: Add new files.
* tests/spawn-test.c, tests/shell-test.c: new tests for
the shell/spawn stuff
* gutils.c (g_find_program_in_path): convert a relative
program name into an absolute pathname to an existing
executable
* gspawn.h, gspawn.c: New fork/exec API
* gshell.h, gshell.c: Shell-related utilities, at the moment
simply routines to parse argv and quote/unquote strings
* guniprop.c (g_unichar_isspace): Return TRUE for the
ASCII space characters isspace() returns TRUE for.
* gfileutils.c (g_file_get_contents): Convenience function
to slurp entire file into a string and return it. Partially
written by Joel Becker.
(g_file_test): file test function
2000-09-28 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* gutils.c (g_get_current_dir): max_len can't be initialized
statically as it might call a function. So do it at first call.
2000-09-19 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* acconfig.h, configure.in, gutils.c: Test for the existence of
getcwd, and use it only when found.
* glib.h: Only use the gcc-variable-macro-argument-extension for
gcc >= 2.4. Both patches from Jonas Oberg <jonas@gnu.org>.
Mon Aug 21 03:57:46 2000 Tim Janik <timj@gtk.org>
* glib.h (G_BREAKPOINT): for non-i386 and non-alpha, or non gcc,
implement BREAKPOINT() as raise (5 /* SIGTRAP */);
* glib.h: provide user-definable switch G_IMPLEMENT_INLINES,
to turn on compilation of inline function implementations provided
in header files with extern linkage.
wrap inline function implementations into ifdef __G_UTILS_C__, so we
really only compile them for gutils.c and not also into arbitrary user
code that wants to make use of G_IMPLEMENT_INLINES.
adjusted comment apropriately.
* gutils.c: to turn on compilation of inline functions, provide
#define G_IMPLEMENT_INLINES 1 and #define __G_UTILS_C__.
Wed Jul 26 12:59:31 2000 Tim Janik <timj@gtk.org>
* *.[hc]: applied patch from Andreas Persenius <ndap@swipnet.se> that
updates the license headers to the GNU Lesser General Public License,
as well as updating the copyright year to 2000.
2000-07-20 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* gutils.c, glib.h: Mark the functions g_basename and g_dirname
deprecated. They will issue an warning once, when compiled with
G_ENABLE_DEBUG, but continue to work as before. Instead the
functions g_path_get_basename and g_path_get_dirname should be
used, which BOTH return newly allocated memory, that has to freed
by g_free. The new g_path_get_basename now strips trailing slashes
from the path. This fixes#5097. For discussion see
http://mail.gnome.org/pipermail/gtk-devel-list/2000-April/003139.html
* gwin32.c, testglib.c, tests/dirname-test.c: Use the new
functions instead of the old ones.
* gmodule/libgplugin_a.c, gmodule/testgmodule.c: Use
g_path_get_basename instead of the deprecated g_basename.
2000-05-30 Tor Lillqvist <tml@iki.fi>
* gutils.c (g_locale_get_codeset): Implement on Win32.
* glib.def: Add g_get_codeset.
* tests/Makefile.am (EXTRA_DIST): makefile.cygwin* has been
renamed to makefile.mingw*.
Tue May 30 16:01:32 2000 Owen Taylor <otaylor@redhat.com>
* glib.h gutils.c: Move the g_locale_get_codeset() up in the
header file to correspond to to comments about memory
management. Rename to g_get_codeset() to avoid
polluting the g_locale_* namespace, which probably
would have g_locale_get_codeset (GLocale *locale).
Add a doc comment.
Mon May 29 14:10:35 2000 Owen Taylor <otaylor@redhat.com>
* gutils.c (g_locale_get_codeset): Add function to get the
codeset name for the current locale.
* configure.in acconfig.h: Add check for nl_langinfo(CODESET);
2000-04-19 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* gutils.c (g_getenv): Changed the win32 part of this function to
be thread safe and to make the returned environment string
persistent to match the UN*X behavior. This is again a response to
Bug #8983.
* glib.h (G_LOCK_NAME): Removed parentheses around the lock name,
as that seems to cause problems for some compilers and really
isn't necessary.
2000-03-22 Tor Lillqvist <tml@iki.fi>
* gutils.c: Move Win32-only includes after inclusion of glib.h, so
that G_OS_WIN32 is defined.
* glibconfig.h.win32.in: Add GSystemThread.
2000-03-22 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* gutils.c (g_get_current_dir): Ok, Marcus Brinkmann
<Marcus.Brinkmann@ruhr-uni-bochum.de> convinced me, that 128 KB
path length might not be enough for the HURD. So I changed the
loop to at least avoid an integer overflow, which could happen at
beyond 2GB size ;-)
2000-03-21 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib.h, configure.in, gutils.h: always define G_GNUC_EXTENSION,
even when not needed by GLib. That's actually also the way, the
GLib reference manual describes that macro. Therefore I had to
remove the lonesome #include <glibconfig.h> in gutils.c, which
doesn't seem to be needed there however. This change should make
Ben Gertzfield <che@debian.org> happy.
* gutils.c: Furthermore two warnings in gutils.c were voided,
which crept in due to my last change.
2000-03-21 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* gutils.c (g_get_current_dir): Allocate only up to 128KB for a
pathname. While this is an arbitrary value just like 2048, it
seems to be enough (after all, even 4GB is an arbitrary value).
2000-03-20 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* gutils.c (g_get_current_dir): Make g_get_current_dir work on
systems with unlimited pathname length like the HURD (It worked
there before, but only for pathes shorter than 2048). Closes
Bug#4525 as reported by Marcus Brinkmann
<Marcus.Brinkmann@ruhr-uni-bochum.de>.
Wed Mar 1 10:39:39 2000 Tim Janik <timj@gtk.org>
* gslist.c (g_slist_reverse): minor optimization.
* testglib.c (g_node_test): added a couple of tests for
g_node_copy().
* glib.h:
* gnode.c (g_node_copy): new function to copy subtrees,
supplied by dbsears@ix.netcom.com.
changed iterator to walk the children list backwards, so
we get down from O(n^2) to O(n).
* gnode.c (g_node_first_sibling): applied patch from
dbsears@ix.netcom.com to optimize access if node->parent
is present.
* gutils.c (g_get_any_init): backed out HAVE_PW_GECOS check around
assignment of g_real_name, sicne HAVE_PW_GECOS is never defined and
thus breaks the original code.
* merged changes from 1.2.7.
Sat Feb 19 19:43:29 2000 Tim Janik <timj@gtk.org>
* testgmodule.c (main): added test to check that not yet bound symbols
in shared libraries of the main module are retrievable, from David Gero.
Fri Jan 28 11:37:41 2000 Owen Taylor <otaylor@redhat.com>
Bug #4156 - Changes vaguely modelled after Scott Gifford's patch
* gtimer.c (g_timer_elapsed): Never report negative times -
clip times to 0.
* gmain.c (g_timeout_prepare): Guard against unexpected
clock shifts by never setting a timeout of more than
data->interval msecs.
1999-11-01 Tor Lillqvist <tml@iki.fi>
* glib.h
* glib.def: Rename Win32-only functions from gwin_* to g_win32_*
to match the GLib naming conventions.
* gutils.c
* gwin32.c
* testglib.c
* makefile.{cygwin,msc}: Move the Win32-only functions to the new
file gwin32.c
1999-10-31 Tor Lillqvist <tml@iki.fi>
* gcache.c (g_cache_remove): Don't crash if removing a nonexistent
value.
* gutils.c (gwin_getlocale): New Win32-specific function, returns
a Unixish current locale string (en, zh_TW etc).
* glib.h: Declare it.
* glib.def: Export it.
* testglib.c: Test it.
* gmessages.c (Win32: ensure_stdout_valid): Some improvements,
make sure we don't call AllocConsole several times, which I think
has happened.
Sat Jul 24 20:11:35 1999 Tim Janik <timj@gtk.org>
* merged GLib 1.3.0 with glib-1.2.3 from Fri Jul 16 22:18:36.
* incorporated proposed cleanups from gtk-devel-list.
* bumped version number to GLib-1.3.1
* glib.h:
* gqueue.c:
* gstring.c:
* glist.c:
removed string tokenisation (we got g_strsplit() and g_strjoin()
already) and readline functions.
s/g_list_delete/g_list_delete_link.
implemented g_slist_delete_link.
removed notion of g_ATEXIT() macro in glib.h, this is an *internal*
macro, g_atexit() is provided for public consumption.
added GTrashStack inline utility functions.
reimplement double eneded queues.
removed GStack implementation, people can use a queue or a (singly)
linked list for this task.
deprecated g_strescape(), we need the SunOS variants here.
* gdate.c: added DEBUG_MSG() macro to wrap old messages.
* *.*: CVS merges.
* upgrade to libtool 1.3.3.
1999-07-01 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in, acconfig.h, gutils.c: Added a g_memmove
replacement for platforms without memmove, where bcopy can't
handle overlapping copies and the corresponding checks, which is
taken form the PERL Configure routine.
* glib.h: Updated the commentary about g_memmove to be right and
more GLib-like.
* configure.in: Removed test for rand_r, as it isn't used anymore.
1999-06-17 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in, acglib.m4, acconfig.h, glib.h, gthread.c:
Completed the thread support in GLib. Thread creation,
prioritizing threads, yielding, joining threads as well as
reader/writer locks and recursive mutexes are now in place. Please
test heavily on your platform. It is so far tested on
Linux/i386/pthreads, Solaris/Sparc/pthreads and
Solaris/Sparc/solaristhreads.
* gtimer.c, glib.h: Implement g_usleep (gulong microseconds) for
thread safe sleeping. (sleep() is not MT-safe at all!)
* gutils.c: Avoid compiler warning.
* tests/Makefile.am, tests/thread-test.c: New program to test some
aspects of the thread implementation.
* gthread.c, Makefile.am: Renamed from gmutex.c to reflect the
change of content.
* configure.in: Purged all appearances of nspr.
* gthread/gthread-posix.c, gthread-solaris.c: Added the native
implementations for the GLib's extended thread support.
* gthread/gthread-nspr.c: Removed for good. NSPR is nothing we
would want to build upon.
* gthread/gthread.c: Renamed to gthread-impl.c to avoid
confusion with ../gthread.c (Formerly known as the file called
gmutex.c)
* gthread/testgthread.c: Removed. The new and much extended
tests are in ../tests/thread-test.c.
* gthread/Makefile.am: Changed to reflect the changes above.
Sat May 8 01:52:29 CDT 1999 Shawn T. Amundson <amundson@gtk.org>
* configure.in
gerror.c
gmain.c
gstrfuncs.c
gutils.c
ltconfig
ltmain.sh
gmodule/Makefile.am
gmodule/gmodule.c
gmodule/gmoduleconf.h.in
gmodule/gmodule-beos.c
gthread/Makefile.am: Port to BeOS by myself and Richard Offer.
* README.win32: More editing.
* build-dll: Use gcc, not ld to link.
* glib.h: On native Win32 use _unlink().
* gscanner.c: Use corrent NATIVE_WIN32 feature test macro,
not _MSC_VER.
* gstring.c: Include <io.h> on Win32 for _read prototype.
* gutils.c: Remove old IO channel code (was in #if 0).
* makefile.cygwin: Don't need to link with kernel32 and msvcrt
explicitly, they are included anyway.
i.e. gcc -mno-cygwin on cygwin (a.k.a. mingw32, using egcs-1.1.2).
* README.win32: Updated.
* build-dll makefile.cygwin tests/makefile.cygwin: New files.
* glib.h glib.def glibconfig.h.win32 makefile.msc: Slight updates.
* gmain.c: No need to include <fcntl.h> and <io.h> on Win32.
* gmain.c gutils.c testglib.c tests/string-test.c: Test for
NATIVE_WIN32, not _MSC_VER.
* gmutex.c: Must declare g_thread_functions_for_glib_use as
exported (using the GUTILS_C_VAR macro).
* gutils.c gmodule/libgplugin_[ab].c: LibMain not needed.
* gmodule/gmoduleconf.h.win32: Need underscore with gcc.
* gthread/gthread.c: With gcc on Win32, must use memcpy to assign
value of g_thread_functions_for_glib_use (?).
* makefile.msc tests/makefile.msc: Cosmetics.
1999-04-22 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* gutils.c (g_get_any_init): use sysconf (_SC_GETPW_R_SIZE_MAX) as
the new initinal bufsize for getpwuid_r on systems, that support
this. Hint from Holger Duerer <H.Duerer@zait.uni-bremen.de>.
1999-03-01 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* gutils.c (g_get_any_init): Fixed yet another bloody
implementation of getpwuid_r. This time for AIX. Thanks to Olaf
Dietsche <olaf.dietsche+list.gtk@netcologne.de>. I would like a
configure test better than that, but have no idea, how to do that
easily.