]>
mj.ucw.cz Git - libucw.git/log
Martin Mares [Fri, 20 Aug 2004 11:43:10 +0000 (11:43 +0000)]
Added unit tests for UTF8 macros.
Martin Mares [Fri, 20 Aug 2004 11:42:43 +0000 (11:42 +0000)]
Optimized and simplified UTF8 macros. In fact, turned most of them
to inline functions.
This resulted in a couple of const/non-const problems, hence the casts
in GET_UTF8{,_32}.
Robert Spalek [Fri, 20 Aug 2004 09:41:00 +0000 (09:41 +0000)]
renamed attr_set_type() to put_attr_set_type()
Robert Spalek [Fri, 20 Aug 2004 09:39:00 +0000 (09:39 +0000)]
- added b?get_attr()
- added {get,put}_attr_set_type()
Robert Spalek [Fri, 20 Aug 2004 09:36:53 +0000 (09:36 +0000)]
- added get_attr() and bget_attr() with get_attr_set_type()
- use get_utf8_32()
Robert Spalek [Fri, 20 Aug 2004 09:35:55 +0000 (09:35 +0000)]
- use put_utf8_32()
- attr_set_type() renamed to put_attr_set_type()
Robert Spalek [Fri, 20 Aug 2004 09:34:02 +0000 (09:34 +0000)]
- added {get,put}_utf8_32() for all full 6-byte codes
- fixed UTF8_SKIP_BWD(); it is never used
- upgraded utf8_space() and utf8_encoding_len()
Robert Spalek [Thu, 19 Aug 2004 18:32:24 +0000 (18:32 +0000)]
- do not try to compress when liz_min_compr == 0
- renamed function
- lizard_*read() tests EOF and invalid bucket_type
Robert Spalek [Thu, 19 Aug 2004 18:30:52 +0000 (18:30 +0000)]
typo
Robert Spalek [Thu, 19 Aug 2004 18:30:43 +0000 (18:30 +0000)]
renamed function
Martin Mares [Thu, 19 Aug 2004 13:47:23 +0000 (13:47 +0000)]
A better implementation of vbprintf() which avoids copying if there is enough
room in the fastbuf's buffer.
Martin Mares [Thu, 19 Aug 2004 13:37:08 +0000 (13:37 +0000)]
Comparisons of type `if (f->bptr + length > f->bstop)' could overflow
if `length' was much larger than the buffer size and the buffer was situated
at the end of the address space. Solved by introducing bavail{r,w}() and
using it systematically.
Robert Spalek [Wed, 18 Aug 2004 10:28:40 +0000 (10:28 +0000)]
bugfix in obuck_slurp_refill
Robert Spalek [Tue, 17 Aug 2004 20:17:37 +0000 (20:17 +0000)]
cards format has changed, do upgrade the version of the index
Robert Spalek [Tue, 17 Aug 2004 20:12:05 +0000 (20:12 +0000)]
added a module that supports transparent compression of data streamed into
an output fastbuf. on the other side, reading from the stream is also
transparent
* will be used for cards
* untested
Martin Mares [Sun, 15 Aug 2004 14:14:55 +0000 (14:14 +0000)]
Accept V33_LIZARD buckets without body -- such buckets can legally
arise when shep-cleanup trims an inactive bucket.
Also added debugging messages which helped to verify that zero-copy
is really invoked where it should.
Martin Mares [Sun, 15 Aug 2004 12:09:57 +0000 (12:09 +0000)]
Added sync_dir().
Martin Mares [Sun, 15 Aug 2004 12:09:45 +0000 (12:09 +0000)]
Added bfilesync().
Martin Mares [Sun, 15 Aug 2004 10:16:03 +0000 (10:16 +0000)]
Made `buckettool -x' show the header if in verbose mode.
Also use bbcopy_slow() for copying bucket contents.
Martin Mares [Sat, 14 Aug 2004 15:15:53 +0000 (15:15 +0000)]
Added obj_find_anum() which is obj_find_aval() combined with atol() and
a default value (this is a very common idiom at many places).
Added size_attr() which calculates size of a given attribute in the
current bucket format.
Martin Mares [Sat, 14 Aug 2004 15:14:36 +0000 (15:14 +0000)]
UTF8_SPACE turned to an inline function.
Added utf8_encoding_length() which measures expected length of an UTF-8
sequence according to its first byte.
Martin Mares [Thu, 5 Aug 2004 22:33:19 +0000 (22:33 +0000)]
obj_add_attr_ref() with an on-stack buffer is not advisable, better
allocate the buffer in the object pool.
Martin Mares [Thu, 5 Aug 2004 22:32:30 +0000 (22:32 +0000)]
When reading, the data end at b->bstop, not b->bufend.
Martin Mares [Thu, 5 Aug 2004 22:28:58 +0000 (22:28 +0000)]
Bucket fastbuf's have to be seekable, since shep-reap seeks on them
(although the seek will be inside the buffer [and thence optimized out
by bseek()] under all reasonable circumstances [it was triggered by
a bug in buck2obj]).
Robert Spalek [Thu, 5 Aug 2004 14:13:56 +0000 (14:13 +0000)]
do not read the whole bucket into memory if only header is needed
Martin Mares [Thu, 5 Aug 2004 12:13:41 +0000 (12:13 +0000)]
New attributes are now added at the end of the list.
Robert Spalek [Tue, 20 Jul 2004 15:16:26 +0000 (15:16 +0000)]
tiny bugfix :))
Robert Spalek [Tue, 20 Jul 2004 10:15:31 +0000 (10:15 +0000)]
tiny optimization: do not make 2 function calls in adler32()
Martin Mares [Fri, 16 Jul 2004 21:56:11 +0000 (21:56 +0000)]
Fixed two bugs in parsing of buckets (one of them introduced by me a couple
of hours ago, the other aged).
Martin Mares [Fri, 16 Jul 2004 20:22:53 +0000 (20:22 +0000)]
Buckets of unknown format should be skipped properly, otherwise
bucket fetching can become confused.
Martin Mares [Fri, 16 Jul 2004 19:08:23 +0000 (19:08 +0000)]
`buckettool -c' (cat) now separates buckets by an empty line.
Martin Mares [Fri, 16 Jul 2004 18:32:35 +0000 (18:32 +0000)]
Parsing of PLAIN type buckets also ends after buck_len bytes.
obj_read_multi() is gone.
Martin Mares [Fri, 16 Jul 2004 18:18:02 +0000 (18:18 +0000)]
Reading of V30 buckets was broken (for example it didn't work when a bucket
had only header and no body). When fixing it, I've modified it to terminate
after buck_len bytes, so the terminating NUL character is no longer needed.
Robert Spalek [Fri, 16 Jul 2004 11:46:06 +0000 (11:46 +0000)]
prune the original source code yet more
Robert Spalek [Fri, 16 Jul 2004 10:50:14 +0000 (10:50 +0000)]
tiny bugfix
Robert Spalek [Fri, 16 Jul 2004 10:47:37 +0000 (10:47 +0000)]
taken much faster implementation of Adler32 and put into a separate source-code
Robert Spalek [Fri, 16 Jul 2004 10:39:04 +0000 (10:39 +0000)]
add Adler32 checksum to compressed V33 buckets
Robert Spalek [Fri, 16 Jul 2004 10:25:49 +0000 (10:25 +0000)]
added adler32 functions
Robert Spalek [Fri, 16 Jul 2004 10:12:33 +0000 (10:12 +0000)]
automatically add 0x80000000 to bucket-type specified on the command-line
Robert Spalek [Fri, 16 Jul 2004 09:07:50 +0000 (09:07 +0000)]
improved an error message to catch an error
Martin Mares [Thu, 15 Jul 2004 21:52:29 +0000 (21:52 +0000)]
Added {b,}put_attr_separator().
Martin Mares [Mon, 12 Jul 2004 14:13:23 +0000 (14:13 +0000)]
Introduced late matchers and custom statistics [see Bug #860]. Converted
FILETYPE to this mechanism, it's no longer an exception.
Martin Mares [Sat, 10 Jul 2004 21:05:27 +0000 (21:05 +0000)]
pools.h -> mempool.h
Martin Mares [Sat, 10 Jul 2004 21:04:23 +0000 (21:04 +0000)]
I always wanted to rename the rather inconsistent memory pool modules.
After the big library earthquake I caused with my unicode.h changes,
this is the small fish, so let's go.
Martin Mares [Sat, 10 Jul 2004 20:56:56 +0000 (20:56 +0000)]
Arranged the module list.
Martin Mares [Sat, 10 Jul 2004 20:46:55 +0000 (20:46 +0000)]
Moved object reading and writing functions where they belong.
Martin Mares [Sat, 10 Jul 2004 20:43:22 +0000 (20:43 +0000)]
Many programs now don't need to link with libcharset.
Martin Mares [Sat, 10 Jul 2004 20:39:31 +0000 (20:39 +0000)]
Renamed fb-printf to ff-printf to keep fastbuf front-ends and back-ends apart.
Martin Mares [Sat, 10 Jul 2004 20:38:38 +0000 (20:38 +0000)]
Adapted to new unicode includes.
Martin Mares [Sat, 10 Jul 2004 20:37:05 +0000 (20:37 +0000)]
Adjust includes.
Martin Mares [Sat, 10 Jul 2004 20:36:55 +0000 (20:36 +0000)]
Unicode character type functions moved to charset/unicat.h
charset/unicode.h removed, because it's now empty.
Martin Mares [Sat, 10 Jul 2004 20:36:06 +0000 (20:36 +0000)]
Gone (some functions moved to the main lib, some were unused).
Martin Mares [Sat, 10 Jul 2004 20:35:31 +0000 (20:35 +0000)]
Moved the basic Unicode and UTF-8 functions to the main library.
Martin Mares [Sat, 10 Jul 2004 20:34:27 +0000 (20:34 +0000)]
Moved UTF-8 streams to lib/ff-utf8.[ch] (`ff' prefix will denote fastbuf
front-ends, `fb' will be the back-ends).
Robert Spalek [Sat, 10 Jul 2004 16:26:54 +0000 (16:26 +0000)]
patch obj_write{,_nocheck}() to use bput_attr_str() to support both V30 and V33 buckets
Martin Mares [Tue, 6 Jul 2004 19:35:46 +0000 (19:35 +0000)]
fbbuf_init_read() now has can_overwrite as an extra parameter.
Martin Mares [Tue, 6 Jul 2004 11:18:48 +0000 (11:18 +0000)]
Use bfilesize().
Martin Mares [Tue, 6 Jul 2004 11:18:27 +0000 (11:18 +0000)]
Introduced bfilesize().
Martin Mares [Tue, 6 Jul 2004 11:03:48 +0000 (11:03 +0000)]
Removed references to buck2obj.h and obj2buck.h.
Martin Mares [Tue, 6 Jul 2004 11:03:25 +0000 (11:03 +0000)]
Added #ifdef guards.
Martin Mares [Tue, 6 Jul 2004 11:02:45 +0000 (11:02 +0000)]
Merged obj2buck.h and buck2obj.h to object.h, the number of includes
started to grow insane.
Martin Mares [Tue, 6 Jul 2004 10:52:51 +0000 (10:52 +0000)]
No need to test for NULL when reallocating.
Martin Mares [Tue, 6 Jul 2004 10:52:31 +0000 (10:52 +0000)]
Added a note on xrealloc(NULL, x).
Martin Mares [Tue, 6 Jul 2004 10:45:27 +0000 (10:45 +0000)]
Use bbuf.h.
Martin Mares [Tue, 6 Jul 2004 10:45:09 +0000 (10:45 +0000)]
Include <stdlib.h> to get free().
Martin Mares [Tue, 6 Jul 2004 10:44:43 +0000 (10:44 +0000)]
Use lib/bbuf.h here.
Martin Mares [Tue, 6 Jul 2004 10:44:20 +0000 (10:44 +0000)]
Applications of gbuf.h to byte arrays are very common, so I've introduced
a special include for them.
Martin Mares [Tue, 6 Jul 2004 10:36:47 +0000 (10:36 +0000)]
can_overwrite_buffer fixes for bucket.c: added f->buffer resetting and
also don't forget to set can_overwrite_buffer on slurp fastbufs (this
involves a little dirty trick, see the comment).
Martin Mares [Tue, 6 Jul 2004 10:24:21 +0000 (10:24 +0000)]
fb-limfd was setting can_overwrite_buffer=2, but it forgot to do the buffer
resetting magic needed by bdirect_read_commit_modified().
Martin Mares [Tue, 6 Jul 2004 10:19:44 +0000 (10:19 +0000)]
Complain loudly if anybody asks us to generate buckets of an unknown
type (this can happen e.g. in the buckettool).
Martin Mares [Tue, 6 Jul 2004 10:18:03 +0000 (10:18 +0000)]
Small improvements to buckettool:
o Options are sorted alphabetically.
o dump_oattr() replaced by dump_oattrs() which dumps all the
attributes.
o ASSERT that the bucket type is known.
Robert Spalek [Sun, 4 Jul 2004 11:30:53 +0000 (11:30 +0000)]
- use buck2obj_parse() instead of obj_read_bucket() to separate the header
and the body
- use the new interface for writing the attributes to the buckets
Robert Spalek [Sun, 4 Jul 2004 11:29:54 +0000 (11:29 +0000)]
writing attributes to buckets totally rewritten according to MJ's remarks
Robert Spalek [Sun, 4 Jul 2004 11:29:17 +0000 (11:29 +0000)]
- obj_parse_dump() generalized to store apart the header and the body, and
renamed to buck2obj_parse()
- added new obj_parse_dump() with the same interface as before; it is a
wrapper of buck2obj_parse()
Robert Spalek [Mon, 28 Jun 2004 15:46:45 +0000 (15:46 +0000)]
a typo and FIXME
Robert Spalek [Mon, 28 Jun 2004 15:40:03 +0000 (15:40 +0000)]
now, I have no contribution into the fastbuf code :))
Martin Mares [Mon, 28 Jun 2004 15:07:56 +0000 (15:07 +0000)]
Adapted buck2obj to the new rewritable buffers. I don't like too much
what I did with the `copied' variable, but I didn't know better.
Also, I've added the missing bdirect commits.
Martin Mares [Mon, 28 Jun 2004 15:06:40 +0000 (15:06 +0000)]
A better implementation of overwritable buffers.
Robert Spalek [Mon, 28 Jun 2004 13:59:03 +0000 (13:59 +0000)]
one mis-commit fixed
Robert Spalek [Mon, 28 Jun 2004 13:06:53 +0000 (13:06 +0000)]
obj_read_bucket() checks whether buck_type has a correct value
Robert Spalek [Mon, 28 Jun 2004 12:59:14 +0000 (12:59 +0000)]
dump_parsed_bucket() simplified
Robert Spalek [Mon, 28 Jun 2004 12:53:34 +0000 (12:53 +0000)]
- obj_read_bucket() takes a new parameter: struct mempool *pool
- buck2obj_alloc() takes no parameters at all now
Robert Spalek [Mon, 28 Jun 2004 12:13:29 +0000 (12:13 +0000)]
interface of lizard_decompress_safe() has been simplified
Robert Spalek [Mon, 28 Jun 2004 12:04:22 +0000 (12:04 +0000)]
avoid one pointer
Robert Spalek [Mon, 28 Jun 2004 12:00:38 +0000 (12:00 +0000)]
obj_read_bucket()
- never tampers the fastbuf when parsing the header
- the body might by tampered under very special (and well commented) conditions
Robert Spalek [Mon, 28 Jun 2004 11:44:00 +0000 (11:44 +0000)]
deleted obj_attr_to_bucket*(). sorry, I like them, however I have already
converted all sources to my version of these functions. if we reintroduce
them, let us put them to obj2buck.[ch]
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
Robert Spalek [Mon, 28 Jun 2004 09:49:29 +0000 (09:49 +0000)]
macros and inline functions for generating V33 buckets
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
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.
Robert Spalek [Mon, 28 Jun 2004 09:35:00 +0000 (09:35 +0000)]
updated interface of lizard-safe.c
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
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
Robert Spalek [Mon, 28 Jun 2004 09:30:13 +0000 (09:30 +0000)]
bigfix, now it works even for the 2nd time :-)
Martin Mares [Sun, 27 Jun 2004 16:58:46 +0000 (16:58 +0000)]
More checks.
Martin Mares [Sun, 27 Jun 2004 16:04:16 +0000 (16:04 +0000)]
Adjusted the checker.
Martin Mares [Sun, 27 Jun 2004 15:37:43 +0000 (15:37 +0000)]
Added a script for testing compilability of different feature sets.
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.
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.
Martin Mares [Sun, 27 Jun 2004 12:27:24 +0000 (12:27 +0000)]
Minor optimizations.