]> mj.ucw.cz Git - libucw.git/log
libucw.git
20 years ago- buckettool updated to extract, cat, and create all kinds of buckets
Robert Spalek [Mon, 28 Jun 2004 09:50:14 +0000 (09:50 +0000)]
- buckettool updated to extract, cat, and create all kinds of buckets
- added parameter -r for raw (non-parsed) output

20 years agomacros and inline functions for generating V33 buckets
Robert Spalek [Mon, 28 Jun 2004 09:49:29 +0000 (09:49 +0000)]
macros and inline functions for generating V33 buckets

20 years ago- added buck2obj_flush() that flushed the memory pool (some caller only
Robert Spalek [Mon, 28 Jun 2004 09:45:49 +0000 (09:45 +0000)]
- added buck2obj_flush() that flushed the memory pool (some caller only
  remember struct buck2obj_buf * and since it is not exported, they could not
  flush it by themselves)
- obj_read_bucket() returns the length of the header if requested
- adapted to growing buffers (gbuf.h)
- updated interface of bconfig()
- lizard_decompress_safe() automatically realloc's the buffer, hence the
  wrapper is not needed

20 years agoBCONFIG_CAN_OVERWRITE is a read/write parameter, i.e. the used can
Robert Spalek [Mon, 28 Jun 2004 09:38:20 +0000 (09:38 +0000)]
BCONFIG_CAN_OVERWRITE is a read/write parameter, i.e. the used can
temporarily lower the rights.  I need it somewhere.

20 years agoupdated interface of lizard-safe.c
Robert Spalek [Mon, 28 Jun 2004 09:35:00 +0000 (09:35 +0000)]
updated interface of lizard-safe.c

20 years ago- encapsulation: hide struct lizard_buffer in the source code
Robert Spalek [Mon, 28 Jun 2004 09:34:27 +0000 (09:34 +0000)]
- encapsulation: hide struct lizard_buffer in the source code
  ===> interface changed, now it returns the pointer in one extra parameter
- lizard_alloc() allocates no memory, hence no size parameter needed
- lizard_realloc() made static and it is automatically called by the
  decompression routine

20 years agoadded a simple source-code for resizable buffers, I am going to need it at
Robert Spalek [Mon, 28 Jun 2004 09:30:52 +0000 (09:30 +0000)]
added a simple source-code for resizable buffers, I am going to need it at
3 places, so let us separate it

20 years agobigfix, now it works even for the 2nd time :-)
Robert Spalek [Mon, 28 Jun 2004 09:30:13 +0000 (09:30 +0000)]
bigfix, now it works even for the 2nd time :-)

20 years agoMore checks.
Martin Mares [Sun, 27 Jun 2004 16:58:46 +0000 (16:58 +0000)]
More checks.

20 years agoAdjusted the checker.
Martin Mares [Sun, 27 Jun 2004 16:04:16 +0000 (16:04 +0000)]
Adjusted the checker.

20 years agoAdded a script for testing compilability of different feature sets.
Martin Mares [Sun, 27 Jun 2004 15:37:43 +0000 (15:37 +0000)]
Added a script for testing compilability of different feature sets.

20 years agoobj_read_bucket() now gets the bucket length as a parameter, because
Martin Mares [Sun, 27 Jun 2004 14:10:47 +0000 (14:10 +0000)]
obj_read_bucket() now gets the bucket length as a parameter, because
in many cases, the fastbuf continues after the end of the bucket.

If a V30 bucket ends with a NUL byte, eat that byte as well.

Also introduced obj_attr_to_bucket{,_num}() -- these functions take
a single attribute and encode it using the specified bucket type
for inclusion at the beginning of the bucket header. These functions
probably belong to obj2buck instead, but currently there is no such
file, so I'm leaving the moving to you.

20 years agoAdded bskip() which skips the given number of bytes by reading.
Martin Mares [Sun, 27 Jun 2004 13:44:15 +0000 (13:44 +0000)]
Added bskip() which skips the given number of bytes by reading.
In the future, we can optimize it by seeking when possible.

20 years agoMinor optimizations.
Martin Mares [Sun, 27 Jun 2004 12:27:24 +0000 (12:27 +0000)]
Minor optimizations.

20 years agogetbuck.c no longer starts with flushing the memory pool, since it belongs
Robert Spalek [Fri, 25 Jun 2004 19:00:20 +0000 (19:00 +0000)]
getbuck.c no longer starts with flushing the memory pool, since it belongs
to the caller.  hence I have added mp_flush() back everywhere again

20 years ago- buck2obj_alloc() initially allocates no buffers
Robert Spalek [Fri, 25 Jun 2004 18:45:56 +0000 (18:45 +0000)]
- buck2obj_alloc() initially allocates no buffers
- buck2obj_realloc() only stretches the main buffer (and not the lizard)
  + it is not exported anymore
- if lizard_decompress_safe() returns EFBIG, its buffer is shrinked

hence buck2obj.c allocates no memory if not needed.  the internal buffer is
allocated when the first non-compact bucket is encountered and lizard's
buffer is allocated when the first compressed bucket is encountered.

20 years agoTried to improve the LZO format description.
Martin Mares [Fri, 25 Jun 2004 18:45:43 +0000 (18:45 +0000)]
Tried to improve the LZO format description.

20 years ago- lizard_alloc() does not allocate anything if max_len == 0
Robert Spalek [Fri, 25 Jun 2004 18:41:45 +0000 (18:41 +0000)]
- lizard_alloc() does not allocate anything if max_len == 0
- lizard_realloc() only allows stretching the memory and not shrinking

20 years agoA little grammar fix.
Martin Mares [Fri, 25 Jun 2004 17:44:29 +0000 (17:44 +0000)]
A little grammar fix.

20 years agobuck2obj_convert() renamed to obj_read_bucket()
Robert Spalek [Fri, 25 Jun 2004 17:30:11 +0000 (17:30 +0000)]
buck2obj_convert() renamed to obj_read_bucket()

20 years agoit is possible to specify whether the caller only wants the header or also
Robert Spalek [Fri, 25 Jun 2004 16:58:55 +0000 (16:58 +0000)]
it is possible to specify whether the caller only wants the header or also
the body

20 years agodefine BUCK2OBJ_INITIAL_MAX_LEN
Robert Spalek [Fri, 25 Jun 2004 16:42:00 +0000 (16:42 +0000)]
define BUCK2OBJ_INITIAL_MAX_LEN

20 years agouse lizard_realloc() instead of {free,alloc}
Robert Spalek [Fri, 25 Jun 2004 16:41:42 +0000 (16:41 +0000)]
use lizard_realloc() instead of {free,alloc}

20 years agoadded lizard_realloc() to avoid restoring and reestablishing SIGSEGv handler
Robert Spalek [Fri, 25 Jun 2004 16:37:50 +0000 (16:37 +0000)]
added lizard_realloc() to avoid restoring and reestablishing SIGSEGv handler

20 years agoadded buck2obj_realloc(), it is automatically called when needed
Robert Spalek [Fri, 25 Jun 2004 16:28:16 +0000 (16:28 +0000)]
added buck2obj_realloc(), it is automatically called when needed

20 years agoMJ's objections:
Robert Spalek [Fri, 25 Jun 2004 15:35:57 +0000 (15:35 +0000)]
MJ's objections:
- test can_overwrite outside the loop in decode_attributes()
- mp_alloc() -> mp_alloc_fast_noalign()
- MAX() is a macro, be careful
- do not call bflush(body), but comment it in the header file

20 years agotypo
Robert Spalek [Fri, 25 Jun 2004 14:53:49 +0000 (14:53 +0000)]
typo

20 years agoimplemented bconfig in the internal fastbuf
Robert Spalek [Fri, 25 Jun 2004 14:52:37 +0000 (14:52 +0000)]
implemented bconfig in the internal fastbuf

20 years agocannot ask for struct obuck_header due to remote indexing
Robert Spalek [Fri, 25 Jun 2004 13:50:56 +0000 (13:50 +0000)]
cannot ask for struct obuck_header due to remote indexing

20 years agoOK, buck2obj looks nice now, so let us add it
Robert Spalek [Fri, 25 Jun 2004 13:14:17 +0000 (13:14 +0000)]
OK, buck2obj looks nice now, so let us add it

20 years agoimplemented all 3 overwrite-policies
Robert Spalek [Fri, 25 Jun 2004 13:06:00 +0000 (13:06 +0000)]
implemented all 3 overwrite-policies

20 years agogeneralized BCONFIG_CAN_OVERWRITE to three different write policies
Robert Spalek [Fri, 25 Jun 2004 12:47:17 +0000 (12:47 +0000)]
generalized BCONFIG_CAN_OVERWRITE to three different write policies

20 years agoadded the configuration item BCONFIG_CAN_OVERWRITE, which specifies whether the
Robert Spalek [Fri, 25 Jun 2004 11:53:39 +0000 (11:53 +0000)]
added the configuration item BCONFIG_CAN_OVERWRITE, which specifies whether the
caller is allowed to perform the following 0-copy write operation:

1. call bdirect_read_prepare()
2. modify the data directly in the buffer returned (e.g. put \0's there)
3. call bflush() before any seek operation to let the fastbuf know

20 years agomodifications done at home, not yet incorporated MJ's objections:
Robert Spalek [Fri, 25 Jun 2004 11:28:40 +0000 (11:28 +0000)]
modifications done at home, not yet incorporated MJ's objections:
- added buck2obj_{alloc,free}()
- extract_odes() renamed to buck2obj_convert() and simplified its interface.
  it flushes the memory pool and calls obj_new() as used e.g. in scanner.c
- attribute lengths are stored incremented s.t. 0-lengths are allowed
- the length of the compressed part is stored as U32 instead of UTF8 to allow
  0-copy compression
- temporary usage of object.c's oa_allocate removed and we call
  obj_add_attr_ref() instead of obj_add_attr()
- renamed constants BUCKET_TYPE_*
- defined internal macro RET_ERR()

20 years ago- deleted unused BUCKET_TYPE_V30C
Robert Spalek [Fri, 25 Jun 2004 11:07:08 +0000 (11:07 +0000)]
- deleted unused BUCKET_TYPE_V30C
- added BUCKET_TYPE_V33 and BUCKET_TYPE_V33_LIZARD

20 years ago- changed the format of struct oattr to allow 0-copy: byte val[] -> byte *val
Robert Spalek [Fri, 25 Jun 2004 11:00:59 +0000 (11:00 +0000)]
- changed the format of struct oattr to allow 0-copy: byte val[] -> byte *val
- added obj_add_attr_ref() as a replacement for obj_add_attr()

20 years agoreordered the if's in lizard_compress(): nicer, clearer, and faster
Robert Spalek [Fri, 25 Jun 2004 10:41:45 +0000 (10:41 +0000)]
reordered the if's in lizard_compress(): nicer, clearer, and faster

20 years agoMainline is now v3.3.
Martin Mares [Fri, 25 Jun 2004 08:37:31 +0000 (08:37 +0000)]
Mainline is now v3.3.

20 years agoMarked the current version as 3.2.1, which is going to be the stable
Martin Mares [Fri, 25 Jun 2004 08:34:55 +0000 (08:34 +0000)]
Marked the current version as 3.2.1, which is going to be the stable
version for summer.

20 years agoa bugfix and polishing
Robert Spalek [Thu, 24 Jun 2004 15:53:26 +0000 (15:53 +0000)]
a bugfix and polishing

20 years agogeneralized for extracting also uncompressed buckets in the new 0-copy
Robert Spalek [Thu, 24 Jun 2004 15:33:59 +0000 (15:33 +0000)]
generalized for extracting also uncompressed buckets in the new 0-copy
format (assumes BUCKET_TYPE_V30F = 0x80000003 is added into lib/bucket.h)

20 years agoadded a decoder from buckets to objects
Robert Spalek [Thu, 24 Jun 2004 15:21:38 +0000 (15:21 +0000)]
added a decoder from buckets to objects

just a proposed version for now (it even is not in the Makefile)

20 years agohmm, after a sys-call is not called, we do not have to fiddle with errno
Robert Spalek [Thu, 24 Jun 2004 12:44:27 +0000 (12:44 +0000)]
hmm, after a sys-call is not called, we do not have to fiddle with errno

20 years agoadded unhandle_signal() into sighandler.c
Robert Spalek [Thu, 24 Jun 2004 12:37:16 +0000 (12:37 +0000)]
added unhandle_signal() into sighandler.c

20 years agochanged the default action to test
Robert Spalek [Thu, 24 Jun 2004 12:30:51 +0000 (12:30 +0000)]
changed the default action to test

20 years agoadapted to the new version of sighandler.c
Robert Spalek [Thu, 24 Jun 2004 12:30:38 +0000 (12:30 +0000)]
adapted to the new version of sighandler.c

20 years agosighandler.c:
Robert Spalek [Thu, 24 Jun 2004 12:29:44 +0000 (12:29 +0000)]
sighandler.c:
- used sigaction() instead of signal()
- no need to re-register the signal handler now :-)
- renamed my_sighandler_t to sh_sighandler_t and changed the interface

20 years ago- lizard_alloc() turns on the wrapper for SIGSEGV and lizard_free() restores
Robert Spalek [Thu, 24 Jun 2004 11:57:48 +0000 (11:57 +0000)]
- lizard_alloc() turns on the wrapper for SIGSEGV and lizard_free() restores
  its original value
- lizard_decompress_safe() registers quickly the SIGSEGV handler using the
  wrapper.  it saves 2 sys-calls.

- allocate 3 more bytes for unaligned memory access

20 years agoadded a wrapper for signal handlers in sighandler.c
Robert Spalek [Thu, 24 Jun 2004 11:52:21 +0000 (11:52 +0000)]
added a wrapper for signal handlers in sighandler.c

20 years agohmm, if we use fast unaligned access when decompressing, we should allocate 3
Robert Spalek [Wed, 23 Jun 2004 17:09:37 +0000 (17:09 +0000)]
hmm, if we use fast unaligned access when decompressing, we should allocate 3
more bytes after the memory

20 years agoMJ's idea:
Robert Spalek [Wed, 23 Jun 2004 16:48:25 +0000 (16:48 +0000)]
MJ's idea:
- only lock the memory by mprotect() once
- decompress into the middle of the buffer s.t. the barrier is at the distance
  as it used before
(needs adding one pointer to the structure)

20 years agoMJ's suggestion:
Robert Spalek [Wed, 23 Jun 2004 14:46:09 +0000 (14:46 +0000)]
MJ's suggestion:
use MAP_ANONYMOUS in mmap() instead of opening /dev/zero

20 years agoincorporated MJ's suggestions:
Robert Spalek [Wed, 23 Jun 2004 14:41:42 +0000 (14:41 +0000)]
incorporated MJ's suggestions:
- flush_copy_command() exploits fast unaligned memory access and memcpy()
lizard_compress():
- the test in_start==copy_start replaced by flag bof, in_start deleted
- if (copy_len > 0) replaced by if (copy_len)
- pos_bit |= 1<<4
- deleted testing cropping at BOF, it is obsolete now
lizard_decompress():
- at label perform_copy_command, we set expect_copy_command=2
- exploit fast unaligned memory access

20 years agoAllow empty host name for unknown URL schemes.
Martin Mares [Tue, 22 Jun 2004 14:02:33 +0000 (14:02 +0000)]
Allow empty host name for unknown URL schemes.

`foo:///bar' should be considered OK now.

20 years agooops, one missing volatile :-)
Robert Spalek [Tue, 15 Jun 2004 09:36:38 +0000 (09:36 +0000)]
oops, one missing volatile :-)

20 years agocrash tests changed:
Robert Spalek [Tue, 15 Jun 2004 09:21:39 +0000 (09:21 +0000)]
crash tests changed:
- since the memory protection is removed after decompress_safe(), it makes
  no sense to check the read/write protection on the corresponding page
  ===> removed
- now, if the returned value is < 0, print errno
- try allocating a too small buffer
  OR setting too low expected length

20 years agoadded lizard-safe
Robert Spalek [Tue, 15 Jun 2004 09:17:52 +0000 (09:17 +0000)]
added lizard-safe

20 years ago- lizard.c split into lizard.c and lizard-safe.c
Robert Spalek [Tue, 15 Jun 2004 09:17:36 +0000 (09:17 +0000)]
- lizard.c split into lizard.c and lizard-safe.c
- added LGPL header

20 years ago- low-level safe version of lizard_decompress() put into an extra source file
Robert Spalek [Tue, 15 Jun 2004 09:16:13 +0000 (09:16 +0000)]
- low-level safe version of lizard_decompress() put into an extra source file

- use M_PRIVATE instead of M_SHARED
- use PROT_NONE instead of PROT_READ and only set/clear it for one page
  before/after the operation instead of doing it for all the array
- errno is set instead of returning different negative values
- use longjmp in the signal handler instead of die() and return -1
- use macro ALIGN()

20 years agoprint a fancy message when SIGSEGV is caught at the decompression
Robert Spalek [Mon, 14 Jun 2004 17:26:35 +0000 (17:26 +0000)]
print a fancy message when SIGSEGV is caught at the decompression

20 years agotested the wrapper guarding the safe decompression
Robert Spalek [Mon, 14 Jun 2004 17:21:50 +0000 (17:21 +0000)]
tested the wrapper guarding the safe decompression

20 years agoadded a wrapper for safe decompression (the page behind the decompression
Robert Spalek [Mon, 14 Jun 2004 17:13:14 +0000 (17:13 +0000)]
added a wrapper for safe decompression (the page behind the decompression
buffer is set READ-ONLY)

20 years agolizzard -> lizard
Robert Spalek [Mon, 14 Jun 2004 11:07:45 +0000 (11:07 +0000)]
lizzard -> lizard

(the files have been renamed directly in CVS a few minutes earlier)

20 years agoimproved the test tool, now it is easy to verify the compression
Robert Spalek [Mon, 14 Jun 2004 10:44:00 +0000 (10:44 +0000)]
improved the test tool, now it is easy to verify the compression

20 years agoadded lizzard
Robert Spalek [Mon, 14 Jun 2004 10:25:20 +0000 (10:25 +0000)]
added lizzard

20 years agoupdated the maximum prolong-factor
Robert Spalek [Mon, 14 Jun 2004 10:24:56 +0000 (10:24 +0000)]
updated the maximum prolong-factor

20 years agosped up approximately 6 times:
Robert Spalek [Mon, 14 Jun 2004 10:12:19 +0000 (10:12 +0000)]
sped up approximately 6 times:
- the whole idea of 2 hash-tables (for 3- and 4- matches) was bad
- also, collision link-lists with errors were too bad
===> greatly simplified: only one hash-table/hash-function/link-list/... for
3-matches, double-linked link-list that can be maintained in constant time
while preserving correctness, links to strings made implicit (hence the data
structures is half-size and it fits better into the CPU-cache), no arithmetics
when computing the hash-function, tuned constants determining the compression
level, commented out code for 2-matches, ...

20 years agodebugged, now it is fully functional:
Robert Spalek [Mon, 14 Jun 2004 09:58:37 +0000 (09:58 +0000)]
debugged, now it is fully functional:
- a lot of typos (especially priorities of operators in C and variable name
  mismatches)
- bit-format errors (forgotten additive constants or negations)
- do not use hash_rec[0]
- wrong entries in the collision link-lists must NOT appear in the beginning
  ==> saved time when verifying and solved some strange cases

- changed constants determining the maximum prolong-factor
- added a simple test-tool

20 years agoimplemented fast compression and decompression routines
Robert Spalek [Fri, 11 Jun 2004 15:28:29 +0000 (15:28 +0000)]
implemented fast compression and decompression routines

I have spent a lot of time on them and they just compile.  I have never
tested them.  The test program will follow soon.

20 years agoImproved cvslog script.
Martin Mares [Mon, 31 May 2004 22:34:43 +0000 (22:34 +0000)]
Improved cvslog script.

20 years agoWhen processing the `-S' option, work on a copy, so that the command
Martin Mares [Mon, 10 May 2004 20:28:50 +0000 (20:28 +0000)]
When processing the `-S' option, work on a copy, so that the command
line displayed by `ps' is undisturbed.

20 years agoRemoved redundant <stdarg.h>.
Martin Mares [Mon, 10 May 2004 20:28:08 +0000 (20:28 +0000)]
Removed redundant <stdarg.h>.

20 years agoSplit logging functions to two files to avoid linking the full switching
Martin Mares [Mon, 10 May 2004 18:24:30 +0000 (18:24 +0000)]
Split logging functions to two files to avoid linking the full switching
machinery to all programs which use trivial logging to stdout.

20 years agoThe logger now exports the name of the current log file and calls a special
Martin Mares [Mon, 10 May 2004 16:16:15 +0000 (16:16 +0000)]
The logger now exports the name of the current log file and calls a special
hook on die(). Also corrected log_switch_{en,dis}able().

20 years agostralloc -> strdup.
Martin Mares [Mon, 10 May 2004 14:12:16 +0000 (14:12 +0000)]
stralloc -> strdup.

20 years agoAdded xstrdup() and new logging functions.
Martin Mares [Mon, 10 May 2004 14:11:34 +0000 (14:11 +0000)]
Added xstrdup() and new logging functions.

20 years agoAdded functions for manual control of log switching. (Will be used by the
Martin Mares [Mon, 10 May 2004 14:11:12 +0000 (14:11 +0000)]
Added functions for manual control of log switching. (Will be used by the
shepherd master.)

20 years agocfg_stralloc() -> cfg_strdup() and use mp_strdup() to implement it.
Martin Mares [Mon, 10 May 2004 14:10:39 +0000 (14:10 +0000)]
cfg_stralloc() -> cfg_strdup() and use mp_strdup() to implement it.

20 years agoRenamed stralloc() to xstrdup() to be consistent with libc terminology
Martin Mares [Mon, 10 May 2004 14:10:12 +0000 (14:10 +0000)]
Renamed stralloc() to xstrdup() to be consistent with libc terminology
and also with mp_strdup().

20 years agoOops, this worked only by a chance.
Martin Mares [Mon, 10 May 2004 13:13:05 +0000 (13:13 +0000)]
Oops, this worked only by a chance.

20 years agoAdded the new pool-str module.
Martin Mares [Mon, 3 May 2004 10:50:31 +0000 (10:50 +0000)]
Added the new pool-str module.

20 years agoAdded mp_strcat() and mp_multicat().
Martin Mares [Mon, 3 May 2004 10:45:18 +0000 (10:45 +0000)]
Added mp_strcat() and mp_multicat().

20 years agoFixed the comment.
Martin Mares [Tue, 20 Apr 2004 16:02:33 +0000 (16:02 +0000)]
Fixed the comment.

20 years ago- 0x08 (BACKSPACE) is a blank character and it is accepted as an ASCII-character
Robert Spalek [Mon, 19 Apr 2004 16:41:45 +0000 (16:41 +0000)]
- 0x08 (BACKSPACE) is a blank character and it is accepted as an ASCII-character
- 0x7f is also accepted as an ASCII-character
- both gather/content.c and gather/charset.c now use the same function
  Cblank() to test it

20 years agoChanged locking rules. Scans and appends can peacefully co-exist now.
Martin Mares [Sun, 18 Apr 2004 13:39:32 +0000 (13:39 +0000)]
Changed locking rules. Scans and appends can peacefully co-exist now.
Should solve the problems with shep-reap waiting for bucket file transmission
to finish.

20 years agoWhen logging to a file, redirect fd1 to the log file as well.
Martin Mares [Fri, 16 Apr 2004 15:32:56 +0000 (15:32 +0000)]
When logging to a file, redirect fd1 to the log file as well.

20 years agoMulti-part objects (with header and body separated by an empty line and terminated
Martin Mares [Sat, 10 Apr 2004 20:36:01 +0000 (20:36 +0000)]
Multi-part objects (with header and body separated by an empty line and terminated
either by EOF or by a NUL byte) are very common, so let's introduce a special
function for reading them.

20 years agoGot tired by repeating the same `gather pieces from incomplete reads' subroutine.
Martin Mares [Sat, 10 Apr 2004 20:35:24 +0000 (20:35 +0000)]
Got tired by repeating the same `gather pieces from incomplete reads' subroutine.

20 years agoAdded a simple test.
Martin Mares [Sat, 10 Apr 2004 15:13:16 +0000 (15:13 +0000)]
Added a simple test.

20 years agoAdd new modules.
Martin Mares [Sat, 10 Apr 2004 14:45:56 +0000 (14:45 +0000)]
Add new modules.

20 years agoUse format_exit_status(). One more ASSERT.
Martin Mares [Sat, 10 Apr 2004 14:45:47 +0000 (14:45 +0000)]
Use format_exit_status(). One more ASSERT.

20 years agoIncluding <stdarg.h> in lib/lib.h enables us to finally export vlog_msg()
Martin Mares [Sat, 10 Apr 2004 14:45:19 +0000 (14:45 +0000)]
Including <stdarg.h> in lib/lib.h enables us to finally export vlog_msg()
which I was missing for several times.

20 years agoAdded exitstatus and runcmd functions. Finally decided to include <stdarg.h>
Martin Mares [Sat, 10 Apr 2004 14:44:40 +0000 (14:44 +0000)]
Added exitstatus and runcmd functions. Finally decided to include <stdarg.h>
in lib.h.

20 years agoAdded a couple of functions for running of external commands with error
Martin Mares [Sat, 10 Apr 2004 14:43:55 +0000 (14:43 +0000)]
Added a couple of functions for running of external commands with error
checking. A nice replacement for system().

20 years agoAdded a new module for formatting of process exit status messages.
Martin Mares [Sat, 10 Apr 2004 14:43:30 +0000 (14:43 +0000)]
Added a new module for formatting of process exit status messages.

20 years agoAdded one more check.
Martin Mares [Sat, 10 Apr 2004 13:05:05 +0000 (13:05 +0000)]
Added one more check.

20 years agoMore enhancement to the main loop library: Export all lists for easy inspection
Martin Mares [Thu, 8 Apr 2004 22:18:19 +0000 (22:18 +0000)]
More enhancement to the main loop library: Export all lists for easy inspection
(reading only) by the callers. When a process exits, construct a nice tombstone
string for it.

20 years agoRead and write functions accept void pointers instead of byte*.
Martin Mares [Thu, 8 Apr 2004 21:16:16 +0000 (21:16 +0000)]
Read and write functions accept void pointers instead of byte*.

20 years agoAdded a universal main loop with timers, file descriptor polling and process
Martin Mares [Wed, 7 Apr 2004 22:03:30 +0000 (22:03 +0000)]
Added a universal main loop with timers, file descriptor polling and process
watching. Inspired by the glib main loop, but this one has a much nicer
interface.

It will be used in the Shepherd master and if it turns out to be useful,
I'll convert the other programs to use it some day.

20 years agoInterface to our own regex library.
Martin Mares [Sat, 20 Mar 2004 23:25:31 +0000 (23:25 +0000)]
Interface to our own regex library.