]> mj.ucw.cz Git - libucw.git/log
libucw.git
18 years agoavoid compiler warnings with debugging turned off
Robert Spalek [Mon, 27 Feb 2006 04:50:05 +0000 (14:50 +1000)]
avoid compiler warnings with debugging turned off

18 years agoCONFIG_INCREMENTAL doesn't belong to the free version
Robert Spalek [Mon, 27 Feb 2006 04:41:20 +0000 (14:41 +1000)]
CONFIG_INCREMENTAL doesn't belong to the free version

18 years agoTemporarily disabled signal trapping, backtraces over signal handlers
Martin Mares [Wed, 22 Feb 2006 20:35:09 +0000 (20:35 +0000)]
Temporarily disabled signal trapping, backtraces over signal handlers
don't seem to work well in the version of gdb present in Woody.

18 years agoHmm, there was one reference to mp->pid, but the ASSERT didn't make
Martin Mares [Wed, 22 Feb 2006 20:26:34 +0000 (20:26 +0000)]
Hmm, there was one reference to mp->pid, but the ASSERT didn't make
much sense anyway, so I am removing it.

18 years agoDon't reset the pid field on process_del(), it's not tested anywhere anyway.
Martin Mares [Wed, 22 Feb 2006 20:21:40 +0000 (20:21 +0000)]
Don't reset the pid field on process_del(), it's not tested anywhere anyway.

18 years agoCentrum roles have changed.
Martin Mares [Sun, 12 Feb 2006 20:03:42 +0000 (20:03 +0000)]
Centrum roles have changed.

18 years agoThe Polish customization no longer has a default role.
Martin Mares [Sun, 29 Jan 2006 23:33:22 +0000 (23:33 +0000)]
The Polish customization no longer has a default role.

18 years agoMade gcc-3.4 the default compiler for customization checking.
Martin Mares [Sun, 29 Jan 2006 23:06:20 +0000 (23:06 +0000)]
Made gcc-3.4 the default compiler for customization checking.

18 years agoAdded getproctitle().
Martin Mares [Sun, 29 Jan 2006 20:31:50 +0000 (20:31 +0000)]
Added getproctitle().

18 years agoReplaced the long-lived "close(0) if logging to file" hack by closing
Martin Mares [Sat, 28 Jan 2006 21:08:13 +0000 (21:08 +0000)]
Replaced the long-lived "close(0) if logging to file" hack by closing
stdin in the daemon-helper.

18 years agoAdded bit_array_assign(), replaced BIT_ARRAY_ALLOC by functions.
Martin Mares [Fri, 27 Jan 2006 18:21:30 +0000 (18:21 +0000)]
Added bit_array_assign(), replaced BIT_ARRAY_ALLOC by functions.

18 years agomain_init() really re-initializes everything. Previously, it could
Martin Mares [Fri, 20 Jan 2006 19:49:02 +0000 (19:49 +0000)]
main_init() really re-initializes everything. Previously, it could
result in malformed poll tables being built.

Also improved the debugging messages a lot.

18 years agoIt seems that signal safety of time-related functions is even more subtle
Martin Mares [Fri, 20 Jan 2006 19:47:21 +0000 (19:47 +0000)]
It seems that signal safety of time-related functions is even more subtle
than I thought -- strftime() and localtime_r() can deadlock each other,
probably due to access to time zone information. Replaced strftime() by
a mere sprintf.

18 years agoAdded a possibility of logging with microsecond timestamps.
Martin Mares [Fri, 20 Jan 2006 18:34:28 +0000 (18:34 +0000)]
Added a possibility of logging with microsecond timestamps.

18 years agoCleaned up includes.
Martin Mares [Mon, 16 Jan 2006 20:03:01 +0000 (20:03 +0000)]
Cleaned up includes.

18 years agoxfree() macro has been turned into a regular function. This is much cleaner,
Martin Mares [Mon, 16 Jan 2006 20:02:42 +0000 (20:02 +0000)]
xfree() macro has been turned into a regular function. This is much cleaner,
allows for easy memory allocation tracking and also avoids including
<stdlib.h> at random places.

18 years agoCheck partmap-is-mmap configuration as well.
Martin Mares [Mon, 16 Jan 2006 19:42:11 +0000 (19:42 +0000)]
Check partmap-is-mmap configuration as well.

18 years agoOn 64-bit architectures, partmap is just an mmap.
Martin Mares [Mon, 16 Jan 2006 19:41:56 +0000 (19:41 +0000)]
On 64-bit architectures, partmap is just an mmap.
On all architectures, it calls madvise() to optimize for sequential access.

18 years agoInstead of adding HEAP_INCREASE_POS as Tom requested, I've modified
Martin Mares [Mon, 16 Jan 2006 14:00:03 +0000 (14:00 +0000)]
Instead of adding HEAP_INCREASE_POS as Tom requested, I've modified
HEAP_INCREASE. I think this is a better solution, because increasing
the value of the root element is too special and knowing that doesn't
enable us to do any special optimizations anyway.

18 years agoFixed stk_strndup(): it works on non-terminated input strings now
Martin Mares [Mon, 16 Jan 2006 13:32:54 +0000 (13:32 +0000)]
Fixed stk_strndup(): it works on non-terminated input strings now
and without an off-by-one bug :)

18 years agolog() is now signal-safe.
Martin Mares [Wed, 14 Dec 2005 10:45:42 +0000 (10:45 +0000)]
log() is now signal-safe.

18 years agoAdded a (so far trivial) library of functions for shell scripts.
Martin Mares [Wed, 7 Dec 2005 22:27:54 +0000 (22:27 +0000)]
Added a (so far trivial) library of functions for shell scripts.

18 years agouse typedef instead of define for sh_stat_t
Vladimir Jelen [Wed, 7 Dec 2005 15:39:10 +0000 (15:39 +0000)]
use typedef instead of define for sh_stat_t

18 years agoadded sh_stat_t
Vladimir Jelen [Wed, 7 Dec 2005 15:27:06 +0000 (15:27 +0000)]
added sh_stat_t

18 years agoadded sh_stat
Vladimir Jelen [Wed, 7 Dec 2005 15:10:36 +0000 (15:10 +0000)]
added sh_stat

18 years ago_GNU_SOURCE can be already defined by compiler switches, avoid warnings.
Martin Mares [Tue, 6 Dec 2005 10:47:06 +0000 (10:47 +0000)]
_GNU_SOURCE can be already defined by compiler switches, avoid warnings.

18 years agoAdded stk_strndup().
Martin Mares [Sun, 4 Dec 2005 19:52:28 +0000 (19:52 +0000)]
Added stk_strndup().

18 years agoAvoid namespace clashes (patch by Tom Valla).
Martin Mares [Sat, 26 Nov 2005 20:24:18 +0000 (20:24 +0000)]
Avoid namespace clashes (patch by Tom Valla).

18 years agocreate BIT_ARRAY_ALLOC()
Robert Spalek [Fri, 25 Nov 2005 15:02:47 +0000 (15:02 +0000)]
create BIT_ARRAY_ALLOC()

18 years agoadd a configuration switch for the incremental scanner
Robert Spalek [Wed, 23 Nov 2005 10:17:58 +0000 (10:17 +0000)]
add a configuration switch for the incremental scanner

18 years agoAdded clist_insert_list_after().
Martin Mares [Sat, 19 Nov 2005 14:22:44 +0000 (14:22 +0000)]
Added clist_insert_list_after().

18 years agoMore work on the multiplexer:
Martin Mares [Wed, 16 Nov 2005 13:54:55 +0000 (13:54 +0000)]
More work on the multiplexer:

o  Changed configuration of search servers and groups, added stand-alone
   declarations of groups, merging groups and the default route.
o  Search servers now have identifiers to avoid cluttering logs and
   parameters by hostnames and ports.
o  MUXSS can refer to a search server, group or merging group.
o  Bug fix in pinging.
o  mux -s now uses the screen width to list databases, not groups.
o  Added mux --testconfig, which also dumps all known route objects.

18 years agoAdded cfg_printf(), which will be useful for formatting of error messages
Martin Mares [Wed, 16 Nov 2005 13:09:32 +0000 (13:09 +0000)]
Added cfg_printf(), which will be useful for formatting of error messages
used in configuration parsers.

18 years agoMux pings now monitor which versions of which databases are offered
Martin Mares [Tue, 15 Nov 2005 18:42:41 +0000 (18:42 +0000)]
Mux pings now monitor which versions of which databases are offered
by which search servers. Live search servers are also pinged ocassionally
to check that the versions still match.

18 years agofix from rel-3-7
Vladimir Jelen [Tue, 15 Nov 2005 08:39:22 +0000 (08:39 +0000)]
fix from rel-3-7

18 years agoChanged main_loop shutdown logic once again. The former mechanism with
Martin Mares [Mon, 14 Nov 2005 20:06:49 +0000 (20:06 +0000)]
Changed main_loop shutdown logic once again. The former mechanism with
a single global main_shutdown variable was too inflexible. I have given
all hooks a possibility to either invoke an immediate shutdown or a "soft"
shutdown which is activated if all hooks agree on it (the idea is that
different parts of a single program can have their local opinion on whether
there is more to do or not).

18 years agoMade main_loop() exit if there is nothing to do.
Martin Mares [Sun, 13 Nov 2005 16:13:30 +0000 (16:13 +0000)]
Made main_loop() exit if there is nothing to do.
Also added a guard against multiple inclusion.

18 years agomain_get_timer() made public.
Martin Mares [Tue, 8 Nov 2005 21:10:50 +0000 (21:10 +0000)]
main_get_timer() made public.

18 years ago#include "sherlock/tagged-text.h" really doesn't belong here.
Martin Mares [Tue, 8 Nov 2005 21:04:58 +0000 (21:04 +0000)]
#include "sherlock/tagged-text.h" really doesn't belong here.

18 years agoIf there are no more filehandles and a timer or event or process hook
Martin Mares [Mon, 7 Nov 2005 22:22:03 +0000 (22:22 +0000)]
If there are no more filehandles and a timer or event or process hook
orders shutdown, comply immediately without calling poll().

18 years agopartmap.h deserves its own header
Robert Spalek [Sun, 16 Oct 2005 15:53:38 +0000 (15:53 +0000)]
partmap.h deserves its own header

18 years agopartmap_map() inlined and added an even faster version of it
Robert Spalek [Sat, 15 Oct 2005 18:06:38 +0000 (18:06 +0000)]
partmap_map() inlined and added an even faster version of it

18 years agoshut up, gcc
Robert Spalek [Sat, 8 Oct 2005 11:52:19 +0000 (11:52 +0000)]
shut up, gcc

18 years agoAdded user unaccenting rules for stroked letters. Not tested yet.
Martin Mares [Wed, 5 Oct 2005 10:10:25 +0000 (10:10 +0000)]
Added user unaccenting rules for stroked letters. Not tested yet.

18 years agofix
Vladimir Jelen [Mon, 3 Oct 2005 15:16:34 +0000 (15:16 +0000)]
fix

18 years agoAdded a single-linked double-ended list module. Mostly syntactic sugar.
Martin Mares [Sun, 2 Oct 2005 13:10:42 +0000 (13:10 +0000)]
Added a single-linked double-ended list module. Mostly syntactic sugar.

The SLIST_WALK_DELSAFE macro has well-defined semantics of the auxilliary
variable: it's a pointer to the previous list item or to the list head,
making it possible to delete the current item efficiently by calling
slist_remove_after().

Unfortunately, I failed to write SLIST_FOR_EACH_DELSAFE, C syntax doesn't
seem to be flexible enough for that.

18 years agoMoved ROL() to lib.h.
Martin Mares [Sun, 2 Oct 2005 11:22:35 +0000 (11:22 +0000)]
Moved ROL() to lib.h.

18 years agoConvert some nextprimes to next_table_primes.
Martin Mares [Sun, 2 Oct 2005 10:58:31 +0000 (10:58 +0000)]
Convert some nextprimes to next_table_primes.

18 years agoAdded a table of prime numbers. (I want to use prime numbers for hash table
Martin Mares [Sun, 2 Oct 2005 10:56:25 +0000 (10:56 +0000)]
Added a table of prime numbers. (I want to use prime numbers for hash table
sizes, but since the hash tables will be short-lived, I don't want to spend
much time by calculating primes.)

18 years agoAdded a library module for generic binary search.
Martin Mares [Sun, 2 Oct 2005 10:52:23 +0000 (10:52 +0000)]
Added a library module for generic binary search.

18 years agoMainline is v3.8.
Martin Mares [Fri, 30 Sep 2005 20:06:46 +0000 (20:06 +0000)]
Mainline is v3.8.

18 years agoUpdated calls of fls().
Martin Mares [Thu, 22 Sep 2005 20:45:26 +0000 (20:45 +0000)]
Updated calls of fls().

18 years agofls() is gone.
Martin Mares [Thu, 22 Sep 2005 20:45:06 +0000 (20:45 +0000)]
fls() is gone.

18 years agoImplemented ffs() and unified it with fls() to bitops.h.
Martin Mares [Thu, 22 Sep 2005 20:44:51 +0000 (20:44 +0000)]
Implemented ffs() and unified it with fls() to bitops.h.

18 years agoMerged bucket file scaling patches from rel-3-7-pre1:
Martin Mares [Tue, 20 Sep 2005 20:29:29 +0000 (20:29 +0000)]
Merged bucket file scaling patches from rel-3-7-pre1:

Report failure if the bucket file grows too large.
Report oversized bucket files as fatal errors during bucket fsck.

Made OBUCK_SHIFT a configurable parameter. Also changed OBUCK_INCOMPLETE_MAGIC,
the original value was an evident typo (fortunately this value should never
appear in valid bucket files, so we are free to change it).

Increased bucket shift in PL customization.

18 years agoMinor cleanup of KMP:
Martin Mares [Tue, 20 Sep 2005 20:11:08 +0000 (20:11 +0000)]
Minor cleanup of KMP:

o  Replaced translation macro by input reading macro.
o  Moved reading of tagged streams to sherlock/tagged-text.h (it contains
   reading functions for completely non-related stream types anyway)
o  CONTROL_CHAR renamed to KMP_CONTROL_CHAR.
o  Tried to improve comments.

I hope it's a smaller mess now.

18 years agoincrease buffer 3x
Robert Spalek [Tue, 20 Sep 2005 13:06:25 +0000 (13:06 +0000)]
increase buffer 3x

18 years agobugfix
Robert Spalek [Tue, 20 Sep 2005 12:55:32 +0000 (12:55 +0000)]
bugfix

18 years agokmp search automaton moved from lang/ to lib/
Robert Spalek [Tue, 20 Sep 2005 12:50:17 +0000 (12:50 +0000)]
kmp search automaton moved from lang/ to lib/

18 years agoIntroduced mp_memdup().
Martin Mares [Thu, 15 Sep 2005 17:30:46 +0000 (17:30 +0000)]
Introduced mp_memdup().

18 years agoSeveral tweaks to the growing buffers:
Martin Mares [Thu, 15 Sep 2005 17:03:27 +0000 (17:03 +0000)]
Several tweaks to the growing buffers:

o  The _grow() function now returns pointer to the new buffer.
o  Many functions uninlined.
o  Fast path of _grow() is inline, but the slow path is not.

18 years agoOops, one really cannot skip bflush() there, because it's needed as
Martin Mares [Wed, 14 Sep 2005 14:04:19 +0000 (14:04 +0000)]
Oops, one really cannot skip bflush() there, because it's needed as
a barrier between reads and writes.

18 years agoIf nothing has been written, brewind() needn't flush.
Martin Mares [Wed, 14 Sep 2005 11:48:32 +0000 (11:48 +0000)]
If nothing has been written, brewind() needn't flush.

18 years agoUse $(COPT2) instead of -O6.
Martin Mares [Wed, 14 Sep 2005 11:07:17 +0000 (11:07 +0000)]
Use $(COPT2) instead of -O6.

18 years agoFixed another 64-bit bug.
Martin Mares [Wed, 14 Sep 2005 11:07:07 +0000 (11:07 +0000)]
Fixed another 64-bit bug.

18 years agoChecked and corrected all uses of va_args.
Martin Mares [Wed, 14 Sep 2005 09:46:46 +0000 (09:46 +0000)]
Checked and corrected all uses of va_args.

18 years agoout[-pos] need not equal *(out-pos) if pointers are 64-bit and pos is 32-bit.
Martin Mares [Wed, 14 Sep 2005 09:20:02 +0000 (09:20 +0000)]
out[-pos] need not equal *(out-pos) if pointers are 64-bit and pos is 32-bit.

18 years agoAnother thing about the C standard I didn't know: passing a va_list to
Martin Mares [Wed, 14 Sep 2005 09:19:17 +0000 (09:19 +0000)]
Another thing about the C standard I didn't know: passing a va_list to
a library function (e.g., snprintf()) can destroy it. Need to call va_copy() here.

18 years agoUlimit.xs now compiles in Perl 5.8.x, while still working in 5.6.x, which
Martin Mares [Tue, 13 Sep 2005 16:29:44 +0000 (16:29 +0000)]
Ulimit.xs now compiles in Perl 5.8.x, while still working in 5.6.x, which
I hope is all what we need.

18 years agoadd a posibility to hash raw memory blocks
Robert Spalek [Sun, 11 Sep 2005 15:23:45 +0000 (15:23 +0000)]
add a posibility to hash raw memory blocks

18 years agoWork around inliner bugs in gcc-3.4.
Martin Mares [Tue, 6 Sep 2005 20:28:46 +0000 (20:28 +0000)]
Work around inliner bugs in gcc-3.4.

18 years agoPrefetches in search/refs.c make much better sense now, so we can enable
Martin Mares [Sat, 3 Sep 2005 23:15:55 +0000 (23:15 +0000)]
Prefetches in search/refs.c make much better sense now, so we can enable
them even on P4, gaining about 20ms per query.

18 years agoARCH and CPU_ARCH have been split. Now, you can build a 32-bit version
Martin Mares [Wed, 31 Aug 2005 16:28:15 +0000 (16:28 +0000)]
ARCH and CPU_ARCH have been split. Now, you can build a 32-bit version
of Sherlock on an amd64 system by calling

./configure debug CC="gcc-3.4 -m32" LD="gcc-3.4 -m32" ARCH=i386

or a 64-bit version by not overriding anything. On 32-bit systems,
everything should act the same as before.

18 years agova_lists need not be assignable. Use va_copy() instead.
Martin Mares [Tue, 30 Aug 2005 21:36:46 +0000 (21:36 +0000)]
va_lists need not be assignable. Use va_copy() instead.

18 years agoMake autoconf recognize the amd64 architecture.
Martin Mares [Tue, 30 Aug 2005 21:35:29 +0000 (21:35 +0000)]
Make autoconf recognize the amd64 architecture.

18 years agoEven better GBUF_TRACE -- the caller supplies his own logging function.
Martin Mares [Mon, 29 Aug 2005 16:43:51 +0000 (16:43 +0000)]
Even better GBUF_TRACE -- the caller supplies his own logging function.
Also documented the new switch.

18 years agoAdded optional debug messages on buffer growing.
Martin Mares [Mon, 29 Aug 2005 16:21:19 +0000 (16:21 +0000)]
Added optional debug messages on buffer growing.

18 years agoAdded STRINGIFY_EXPANDED.
Martin Mares [Mon, 29 Aug 2005 16:20:49 +0000 (16:20 +0000)]
Added STRINGIFY_EXPANDED.

18 years agoThe Sherlock::Config module now supports typed configuration items.
Martin Mares [Sun, 14 Aug 2005 14:57:31 +0000 (14:57 +0000)]
The Sherlock::Config module now supports typed configuration items.
Also, we enable option bundling now, so "-SX.Y=Z" works.

18 years agoAllow typed configuration items. (This is the only way to get constructs
Martin Mares [Sun, 14 Aug 2005 14:39:47 +0000 (14:39 +0000)]
Allow typed configuration items. (This is the only way to get constructs
like `96d' parsed properly.)

18 years agoFixed parsing of bin/config output (by TomHol in rel-3-6-1).
Martin Mares [Sun, 14 Aug 2005 14:12:44 +0000 (14:12 +0000)]
Fixed parsing of bin/config output (by TomHol in rel-3-6-1).

18 years agoAdded a function which allows to read the timeval obtained during
Martin Mares [Fri, 22 Jul 2005 20:27:27 +0000 (20:27 +0000)]
Added a function which allows to read the timeval obtained during
the last init_timer() / get_timer() call.

18 years agoWhen we encounter an URL with multiple @'s, the first one should be treated
Martin Mares [Sat, 9 Jul 2005 09:32:45 +0000 (09:32 +0000)]
When we encounter an URL with multiple @'s, the first one should be treated
as the username separator and the subsequent ones automatically escaped.

Therefore, `http://a@b@c.cz/' is normalized as `http://a@b%40c.cz/'.
It's probably an invalid URL (have to check all the possible loopholes
in the spec yet :) ), but it occurs in the wild anyway, so let's try
to treat them with grace.

19 years agoFixed a nasty bug in hash table allocation. HASH_AUTO_POOL must use
Martin Mares [Mon, 4 Jul 2005 07:37:47 +0000 (07:37 +0000)]
Fixed a nasty bug in hash table allocation. HASH_AUTO_POOL must use
a pool local to the hash table, otherwise it collides with HASH_DYNAMIC.

19 years agofix url_enenscape_friendly() thanks to mj
Robert Spalek [Fri, 1 Jul 2005 10:28:08 +0000 (10:28 +0000)]
fix url_enenscape_friendly() thanks to mj

19 years agoAdded stk_hexdump(). Very handy for debugging.
Martin Mares [Thu, 30 Jun 2005 23:17:22 +0000 (23:17 +0000)]
Added stk_hexdump(). Very handy for debugging.

19 years agoadded url_enescape_friendly() for cards.c: it prepares a printable version
Robert Spalek [Thu, 30 Jun 2005 17:28:33 +0000 (17:28 +0000)]
added url_enescape_friendly() for cards.c: it prepares a printable version
of the URL (with interpretted spaces and delimiters, hence it cannot be
parsed back), but it does not convert characters above 0x7f so that the
target string is a valid utf-8 string

19 years agosecond part of fixing URL printing: escape back all characters above 0x7f
Robert Spalek [Thu, 30 Jun 2005 15:33:23 +0000 (15:33 +0000)]
second part of fixing URL printing: escape back all characters above 0x7f

note that it may happen that some incorrect words get highlighted after we
cut the escaped URL into words by lexmapper, but this is much better than
producing incorrect UTF-8 stream

19 years agoAdded Vlada to the mail address decoder.
Martin Mares [Tue, 21 Jun 2005 20:24:54 +0000 (20:24 +0000)]
Added Vlada to the mail address decoder.

19 years agonon-fatal warning on an unknown commited (croniak)
Robert Spalek [Mon, 20 Jun 2005 17:32:45 +0000 (17:32 +0000)]
non-fatal warning on an unknown commited (croniak)

19 years agoAdded more format string checks.
Martin Mares [Fri, 17 Jun 2005 21:01:28 +0000 (21:01 +0000)]
Added more format string checks.

19 years agoAdded HASH_ZERO_FILL switch. Tired of explicit initializers.
Martin Mares [Fri, 17 Jun 2005 14:56:08 +0000 (14:56 +0000)]
Added HASH_ZERO_FILL switch. Tired of explicit initializers.

19 years agoAdded hash functions for 64-bit integers.
Martin Mares [Thu, 16 Jun 2005 21:03:13 +0000 (21:03 +0000)]
Added hash functions for 64-bit integers.
hash_pointer() now uses either 32-bit or 64-bit hash depending on pointer size.
hashtable.h with an atomic key does the same.

19 years agoathlon64 is not known before gcc-3.4.
Martin Mares [Tue, 14 Jun 2005 16:07:35 +0000 (16:07 +0000)]
athlon64 is not known before gcc-3.4.

19 years agoFixed several format string bugs in calls of die().
Martin Mares [Fri, 10 Jun 2005 11:16:41 +0000 (11:16 +0000)]
Fixed several format string bugs in calls of die().

19 years agoFormat string arguments for die() should be checked as we do for log().
Martin Mares [Fri, 10 Jun 2005 11:15:27 +0000 (11:15 +0000)]
Format string arguments for die() should be checked as we do for log().

19 years agoMainline is going to be v3.7.
Martin Mares [Sat, 4 Jun 2005 11:59:17 +0000 (11:59 +0000)]
Mainline is going to be v3.7.

19 years agoShifting of mapping window is unlikely().
Martin Mares [Tue, 31 May 2005 11:27:12 +0000 (11:27 +0000)]
Shifting of mapping window is unlikely().

19 years agolog_switch() returns whether the logs have been really switched.
Martin Mares [Sun, 29 May 2005 10:33:49 +0000 (10:33 +0000)]
log_switch() returns whether the logs have been really switched.

19 years agoAnother work-around for spurious warnings.
Martin Mares [Sun, 29 May 2005 09:20:45 +0000 (09:20 +0000)]
Another work-around for spurious warnings.