Commit Graph

78 Commits

Author SHA1 Message Date
Christoph Reiter
01c02ac08b g_usleep: round up the next millisecond on Windows. See #1371
The timer tests expect that a small value for sleep does not result in
no sleep at all. Round up to the next millisecond to bring it more in line
with other platforms.

This fixes the glib/timer tests.

This makes the 'threadtests' time out since that uses small usleeps a lot and
until now didn't wait at all, but now always waits a msec. Reduce the amount
of tests done on Windows to get the runtime down to something reasonable again.

https://bugzilla.gnome.org/show_bug.cgi?id=795569
2018-05-27 09:23:25 +02:00
Sébastien Wilmet
f9faac7661 glib/: LGPLv2+ -> LGPLv2.1+
All glib/*.{c,h} files have been processed, as well as gtester-report.

12 of those files are not licensed under LGPL:

	gbsearcharray.h
	gconstructor.h
	glibintl.h
	gmirroringtable.h
	gscripttable.h
	gtranslit-data.h
	gunibreak.h
	gunichartables.h
	gunicomp.h
	gunidecomp.h
	valgrind.h
	win_iconv.c

Some of them are generated files, some are licensed under a BSD-style
license and win_iconv.c is in the public domain.

Sub-directories inside glib/:

	deprecated/: processed in a previous commit
	glib-mirroring-tab/: already LGPLv2.1+
	gnulib/: not modified, the code is copied from gnulib
	libcharset/: a copy
	pcre/: a copy
	tests/: processed in a previous commit

https://bugzilla.gnome.org/show_bug.cgi?id=776504
2017-05-24 11:58:19 +02:00
Philip Withnall
f9a6a9ba53 gtimer: Handle gmtime() failure in g_time_val_to_iso8601()
g_time_val_to_iso8601() has a limit to the future dates it can convert,
imposed by what gmtime() can fit in its year field. If gmtime() fails,
gracefully return NULL from g_time_val_to_iso8601() rather than trying
to dereference the NULL structure and crashing.

Signed-off-by: Philip Withnall <withnall@endlessm.com>

https://bugzilla.gnome.org/show_bug.cgi?id=782075
2017-05-05 11:41:37 +01:00
Philip Withnall
42a8e952ef gtimer: Whitespace fixes
Signed-off-by: Philip Withnall <withnall@endlessm.com>
2017-05-02 16:02:30 +01:00
William Jon McCann
20f4d1820b docs: use "Returns:" consistently
Instead of "Return value:".
2014-02-19 19:41:52 -05:00
Matthias Clasen
cb588d4532 Convert external links to markdown syntax 2014-02-05 21:23:28 -05:00
Daniel Mustieles
078dbda148 Updated FSF's address 2014-01-31 14:31:55 +01:00
Matthias Clasen
27e352985b Remove broken attempt at parsing date-only
g_time_val_from_iso8601 was attempting to parse strings
having only a date, but failed to actually set the timeval
despite returning TRUE. Since the docs state that the function
only parses strings containing a date and a time, just return
FALSE in this case.

Also remove an incomplete testcase for this behaviour that was
just checking the boolean return value, but not timeval.
2014-01-01 17:59:21 -05:00
Dan Winship
158dde0507 Replace #ifdef HAVE_UNISTD_H checks with #ifdef G_OS_UNIX
In Windows development environments that have it, <unistd.h> is mostly
just a wrapper around several other native headers (in particular,
<io.h>, which contains read(), close(), etc, and <process.h>, which
contains getpid()). But given that some Windows dev environments don't
have <unistd.h>, everything that uses those functions on Windows
already needed to include the correct Windows header as well, and so
there is never any point to including <unistd.h> on Windows.

Also, remove some <unistd.h> includes (and a few others) that were
unnecessary even on unix.

https://bugzilla.gnome.org/show_bug.cgi?id=710519
2013-11-20 09:25:39 -05:00
Robert Ancell
59a24ab5a3 Use "Returns:" instead of the invalid "@returns" for annotating return values.
https://bugzilla.gnome.org/show_bug.cgi?id=673229
2012-11-01 14:47:25 +13:00
Simon McVittie
a0c755710c Document exactly what g_time_val_to_iso8601() produces
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=537637
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
2011-11-17 23:11:01 -05:00
Matthias Clasen
3f0d275295 Move remaining docs inline
This introduces a fake source file just for holding
docs that have no good place elsewhere. Not great, but
better than templates.
2011-11-14 21:22:46 -05:00
Dan Winship
380ec80d07 g_time_val_from_iso8601: clarify the docs a bit 2011-10-11 19:28:59 -04:00
Ryan Lortie
6b566e1d0b gtimer: remove warnings about threads
GTimer no longer uses the thread system for time information and
g_thread_init() no longer does anything, so remove the doubly-untrue
warning about these topics.

https://bugzilla.gnome.org/show_bug.cgi?id=527214
2011-10-04 17:32:53 -04:00
Cosimo Cecchi
88b3f6b866 timeval: add introspection annotations to g_time_val_from_iso8601()
The GTimeVal argument is missing an (out) annotations.

https://bugzilla.gnome.org/show_bug.cgi?id=658692
2011-09-20 13:04:50 -04:00
Johan Dahlin
fdaaa22b58 Correct gtk-doc SECTION: syntax
g-ir-scanner does not allow a space between the : and the
section name.
2011-02-01 16:18:02 -02:00
Owen W. Taylor
a70ba9c8b1 Fix off-by-1000 for GTimer
Divide monotonic time by 1e6 not 1e9 to get seconds.
2010-11-21 22:01:52 -05:00
Chun-wei Fan
029f3070e7 gtimer.c: Revert accidental overwrite
Revert accidental overwrite as timing API was changed from 2.27.2 to 2.27.3
2010-11-09 20:32:39 +08:00
Chun-wei Fan
9806040455 Added and Moved checks for includes
Moved checks for G_OS_WIN32 after GLib header includes and added other checks
required for Windows/MSVC builds
2010-11-09 09:53:12 +08:00
Ryan Lortie
38e7aa9855 Clean up g_usleep()
Remove some code that was written in 2000 to support OSes that do not
have nanosleep().  nanosleep() has been specified (in POSIX-1.2001) for
almost a decade now, so assume we have it (except on Windows).

Remove the checks for nanosleep and nsleep from configure.ac.

We're removing this code because we honestly believe that nobody will be
affected.  If this change negatively impacts you, please file a bug.
2010-11-02 22:39:09 -04:00
Ryan Lortie
a48faa0aed GTimer: switch to monotonic time
and remove docs notes about threads having to be initialised.
2010-11-02 22:39:09 -04:00
Tor Lillqvist
548ddd5fe9 Fix build on Windows and possibly other non-Linux platforms
Include glibconfig.h in files that test G_OS_WIN32. Include headers
for GLib APIs used conditionally where needed.
2010-09-06 15:57:32 +03:00
Emmanuele Bassi
b1dbcc4023 gtimer: Fix a compilation warning 2010-09-04 18:03:33 +01:00
Matthias Clasen
04077ff5c5 More include cleanups 2010-09-03 23:03:14 -04:00
Jens Georg
db7ddcc195 Improve parsing of date-only iso8601 strings 2010-08-26 18:18:52 +03:00
Ryan Lortie
2e53e50244 glib/: fully remove galias hacks 2010-07-07 19:34:35 -04:00
Ryan Lortie
4431ac5dda Move allocator and memchunk docs from tmpl to .c 2010-01-30 22:58:43 -05:00
Ryan Lortie
f6482a1eaa GTimer: move docs from tmpl to .c 2010-01-30 22:12:22 -05:00
Matthew W. S. Bell
2321e5aed0 Initialise variable in g_time_val_from_iso8601()
The function does not initialise the struct tm,
giving it improper values of tm_isdst making the result
an hour out.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=603540
2009-12-02 01:48:30 +01:00
Dan Winship
8212aadac7 g_time_val_from_iso8601: handle timezoneless dates
per ISO 8601:2004 4.2.5.2

Based on a patch from Andy Shevchenko
http://bugzilla.gnome.org/show_bug.cgi?id=589491
2009-09-01 09:40:03 -04:00
Peter Kjellerstedt
efc2cdbfc9 Fix parsing of timezones
Make g_time_val_from_iso8601 handle timezones with minutes correctly;
also accept comma as a fraction separator.  (#578369)
2009-04-08 10:26:11 -04:00
Matthias Clasen
e4f6ecbda6 i * glib/gtimer.c (g_time_val_to_iso8601): Pass a time_t* to gmtime().
Pointed out by Matthias Drochner.


svn path=/trunk/; revision=7840
2009-01-31 19:19:21 +00:00
Tor Lillqvist
6af6a8dab0 time_t is 64 bits in all the newer Microsoft C libraries, not just 64-bit
2008-09-16  Tor Lillqvist  <tml@novell.com>

	* glib/gtimer.c (g_time_val_to_iso8601): time_t is 64 bits in all
	the newer Microsoft C libraries, not just 64-bit ones. So to avoid
	crash if compiled with newer MSVSes, use a separate time_t
	variable in all cases on Windows.


svn path=/trunk/; revision=7496
2008-09-15 22:52:12 +00:00
Tor Lillqvist
a3fa74853a Fix problems on 64-bit Windows. Avoid warnings, some of which indicated
2008-07-28  Tor Lillqvist  <tml@novell.com>

	Fix problems on 64-bit Windows. Avoid warnings, some of which
	indicated actual problems, some which were just annoyances. 

	Where casts to an integer type are needed for pointers, use
	gssize. Technically intptr_t would be the more proper type, but we
	still want to be compilable with MSVS6 and 7 which don't have
	intptr_t. MSVS8 and 9 do have intptr_t, but in <crtdefs.h>, not
	<stdint.h>.

	Use %p to print out handles. Use gssize casts when assigning
	GPollFD::fd fields.

	Use G_GSIZE_FORMAT when printing size_t values.
	
	* configure.in: Define automake conditional G_OS_WIN32_X64 which
	is true on Win64.

	* glib/giochannel.h: Use slightly different prototype for
	g_io_channel_win32_new_messages() on Win64 with gsize instead of
	guint.

	* glib/giowin32.c
	* glib/gmain.c
	* glib/gspawn-win32.c
	* tests/testglib.c: Generic changes as described above.

	* glib/gmain.h: Don't bother mentioning GIMP in comment.

	* glib/grel.c (tuple_hash_2): Use all bits of pointer.

	* glib/gspawn-win32.c
	* glib/gspawn-win32-helper.c: Use gssize types in the
	communication between parent and helper process, so that we can
	pass process handles, which are pointers, also on Win64.

	* glib/gtimer.c (g_time_val_to_iso8601): time_t is 64 bits on
	Win64 so we can't pass the address of a GTimeVal::tv_sec which is
	a long directly to gmtime(). On the other hand, changing
	GTimeVal::tv_sec to be a gint64 on Win64 is not really feasible
	either, as that would then require changes in much code that uses
	GTimeVals.

	* glib/gspawn-win32.c
	* glib/Makefile.am: Call the helper programs
	gspawn-win64-helper.exe and gspawn-win64-helper-console.exe on
	Win64, to avoid potential risk of running a 32-bit version of the
	helper.


svn path=/trunk/; revision=7260
2008-07-28 00:24:14 +00:00
Emmanuele Bassi
bb123b85cf Use the right format string to get leading zeros when converting to ISO
2008-07-21  Emmanuele Bassi  <ebassi@gnome.org>

	* glib/gtimer.c (g_time_val_to_iso8601): Use the right format
	string to get leading zeros when converting to ISO 8601. (Sven
	Herzberg)

svn path=/trunk/; revision=7232
2008-07-21 16:30:16 +00:00
Emmanuele Bassi
bcdc09e641 Do not set the timestamp value using time(), as it will be overwritten
2008-07-21  Emmanuele Bassi  <ebassi@gnome.org>

	* glib/gbookmarkfile.c:
	(bookmark_app_info_new): Do not set the timestamp value
	using time(), as it will be overwritten anyway. (#535223,
	Michael Meeks)

	(parse_application_element),
	(bookmark_app_info_dump): Support the "modified" attribute,
	which takes an ISO-formatted string instead of a Unix time
	stamp, to keep the number of g_strdup_printf() calls to a
	minimum.

	* glib/gtimer.c:
	(g_time_val_to_iso8601): Do not use strftime(): we know
	the format and contents of the ISO 8601 date format we
	use.

	* tests/bookmarks/valid-03.xbel: Add a test file for the
	modified attribute.

svn path=/trunk/; revision=7231
2008-07-21 13:05:24 +00:00
Matthias Clasen
d780a41c37 set tv_usec to 0 rather than 1 when a fraction of a second is not
* glib/gtimer.c (g_time_val_from_iso8601): set tv_usec to 0 rather
        than 1 when a fraction of a second is not specified
        (g_time_val_from_iso8601): calculate a fraction of a second
        correctly even in case it does not happen to consist of exactly
        six digits; do not allow random data after the ISO 8601 string,
        only whitespace
        (make g_time_val_to_iso8601): support fractions of a second
        Patch by Peter Kjellerstedt

        * tests/testglib.c: Update to match


svn path=/trunk/; revision=7057
2008-06-19 04:14:25 +00:00
Matthias Clasen
689a9e4b1a Revert the patch for bug 527214 and related changes. GTimer
is supposed to work without threads.


svn path=/trunk/; revision=6943
2008-05-27 16:00:51 +00:00
Matthias Clasen
4b06cf6ce9 Bug 527214 – g_timer_elapsed() returns random values.
* glib/gtimer.c (g_timer_new()):
        Print warning if g_thread_init() has not been called yet.
        Patch by Mathias Hasselmann


svn path=/trunk/; revision=6907
2008-05-18 19:15:32 +00:00
Matthias Clasen
c4bad41855 Check for gmtime_r. Use gmtime_r when available. (#511807, Sebastian
2008-01-28  Matthias Clasen  <mclasen@redhat.com>

        * configure.in: Check for gmtime_r.
        * glib/gtimer.c: Use gmtime_r when available.  (#511807,
        Sebastian Dröge)



svn path=/trunk/; revision=6393
2008-01-28 06:27:28 +00:00
Emmanuele Bassi
a979c0d5a2 Fix the date validation check. (#503029)
2007-12-19  Emmanuele Bassi  <ebassi@gnome.org>

	* glib/gtimer.c (g_time_val_from_iso8601): Fix the date validation
	check. (#503029)

	* tests/testglib.c (various_string_tests): Add an invalid date
	for testing the above fix.

svn path=/trunk/; revision=6160
2007-12-19 17:28:38 +00:00
Bastien Nocera
7bebca1f2e Don't try to parse dates that start with anything but a digit, a plus or a
2007-12-13  Bastien Nocera  <hadess@hadess.net>

	* glib/gtimer.c: (g_time_val_from_iso8601):
	Don't try to parse dates that start with anything but a
	digit, a plus or a minus sign, as those can't be valid
	ISO8601 dates (Closes: #503029)


svn path=/trunk/; revision=6111
2007-12-13 14:44:37 +00:00
Matthias Clasen
4bbde50716 Revert an accidental ABI break by moving gettime out of the
2007-01-16  Matthias Clasen  <mclasen@redhat.com>

        * glib/gthread.h:
        * glib/gthread.c:
        * glib/glib.symbols: Revert an accidental ABI break by
        moving gettime out of the GThreadFunctions struct and making
        it a separate variable.  (#397139, Joe Marcus Clarke)

        * gthread/*.c: Adapt.



svn path=/trunk/; revision=5279
2007-01-16 21:25:03 +00:00
Matthias Clasen
2c7dbe9c73 Fix errors in the recently moved time calculations. (#395203, Chris
2007-01-12  Matthias Clasen  <mclasen@redhat.com>

        * gthread/gthread-posix.c:
        * glib/gtimer.c:
        * glib/gthread.c: Fix errors in the recently moved
        time calculations.  (#395203, Chris Wilson)



svn path=/trunk/; revision=5244
2007-01-12 05:55:16 +00:00
Matthias Clasen
541462ab1e Don't link glib against libpthread. (#393812)
2007-01-07  Matthias Clasen  <mclasen@redhat.com>

	Don't link glib against libpthread.  (#393812)
	
	* configure.in: Link gthread against librt, not glib itself.

	* glib/gthread.h:
	* glib/gthread.c: Add a new thread function, gettime.

	* glib/gtimer.c: Use gettime instead of directly working with
	the various system interfaces.

	* gthread/gthread-impl.c:
	* gthread/gthread-posix.c:
	* gthread/gthread-win32.c: Implement gettime.
	

svn path=/trunk/; revision=5227
2007-01-08 05:13:15 +00:00
Matthias Clasen
088c08a2a5 Use nsleep to implement g_usleep on AIX. (#321974, Andrew Paprocki)
2006-10-01  Matthias Clasen  <mclasen@redhat.com>

	* glib/gtimer.c (g_usleep): Use nsleep to implement
	g_usleep on AIX.  (#321974, Andrew Paprocki)

	* configure.in: Check for nsleep
2006-10-01 05:53:49 +00:00
Matthias Clasen
51453eab5d Forgotten macros 2006-09-03 03:49:38 +00:00
Matthias Clasen
514351b127 Improve clock_gettime check 2006-09-01 06:08:23 +00:00
Matthias Clasen
72520d46bc Use Posix monotonic clocks instead of gettimeofday when available.
2006-08-27  Matthias Clasen  <mclasen@redhat.com>

	* glib/gtimer.c: Use Posix monotonic clocks instead of
	gettimeofday when available.  (#336114, William Jon McCann)
2006-08-28 03:01:33 +00:00
Matthias Clasen
1f536d2f12 Fix an off-by-2 error in the leap year calculation. (#344905, Dan Winship)
2006-06-20  Matthias Clasen  <mclasen@redhat.com>

	* glib/gtimer.c (mktime_utc): Fix an off-by-2 error
	in the leap year calculation.  (#344905, Dan Winship)

	* tests/testglib.c (main): Change the test data for
	the g_time_val_from_iso8601 tests to expose an off-by-2
	error in the leap year calculation.
2006-06-20 16:37:43 +00:00