Panu Matilainen [Wed, 21 May 2008 13:34:27 +0000 (16:34 +0300)]
Remove double doxygen documentation
Panu Matilainen [Wed, 21 May 2008 13:32:37 +0000 (16:32 +0300)]
Add rpmTagGetNames() public function for retrieving known tag names
- use rpmtd as container to avoid inventing yet more datastructures and
iterators
Panu Matilainen [Wed, 21 May 2008 13:05:29 +0000 (16:05 +0300)]
Include stdlib.h for free()
Panu Matilainen [Wed, 21 May 2008 13:02:10 +0000 (16:02 +0300)]
Slight tweak to rpmvercmp() docs as suggested by Pixel
Panu Matilainen [Wed, 21 May 2008 12:59:39 +0000 (15:59 +0300)]
Include rpmtypes.h first instead of rpmtag.h everywhere
Panu Matilainen [Wed, 21 May 2008 11:51:25 +0000 (14:51 +0300)]
Convert headerGetColor() to use per-datatype iterator
Panu Matilainen [Wed, 21 May 2008 11:49:12 +0000 (14:49 +0300)]
Add per-datatype iterators to rpmtd
- just uint32 and string iterators for now, those are the most common ones
- allows somewhat more convenient code constructs when type is known,
eg no need to separately check for non-null inside loops
Panu Matilainen [Wed, 21 May 2008 10:37:32 +0000 (13:37 +0300)]
Convert rpmfiBuildFDeps() into fooTag() style interface
- fileprovideTag() and filerequireTag() are just thin wrappers around
filedepTag()
- simplify things a good bit by not bothering to create a single allocation
blob for the return
Panu Matilainen [Wed, 21 May 2008 09:45:34 +0000 (12:45 +0300)]
Lose rpmfiBuildFClasses() completely
- only fileclassTag() needs it, move it inline there
- simplify a lot: as we now can deallocate regular string arrays too,
don't bother creating a single allocation blob for the classes
Panu Matilainen [Wed, 21 May 2008 09:41:31 +0000 (12:41 +0300)]
Misplaced assert
- we only care about non-NULL data if we're supposed to free the contents
Panu Matilainen [Wed, 21 May 2008 08:50:27 +0000 (11:50 +0300)]
Eliminate rpmfiBuildFClasses() and rpmfiBuildFDepts() from the API+ABI
- both are only needed by tag extensions, move them there
- headerGet() with extensions enabled provides a nicer API for accessing
the data anyway
Panu Matilainen [Wed, 21 May 2008 08:45:46 +0000 (11:45 +0300)]
Split tag extensions out of formats.c
- they have practically nothing in common now..
Panu Matilainen [Wed, 21 May 2008 08:04:59 +0000 (11:04 +0300)]
Minor fixes to triggercondsTag()
- lose unused variable
- remember to reset versions iterator too
Panu Matilainen [Wed, 21 May 2008 07:40:50 +0000 (10:40 +0300)]
Resurrect triggercondsTag()
- convert to use new interfaces and simplify
Panu Matilainen [Wed, 21 May 2008 06:22:38 +0000 (09:22 +0300)]
Add rpmtdDup() method for deep copying of tag containers
Panu Matilainen [Wed, 21 May 2008 06:02:10 +0000 (09:02 +0300)]
Turn rpmtd freeData into flag bitfield, allowing more precise control
- headerGet() returns even array data in a single allocation block, but
regular (string) arrays need to have the pointers in array freed too
- set immutable flag on header data
Panu Matilainen [Tue, 20 May 2008 13:21:34 +0000 (16:21 +0300)]
Convert mireSkip() to use new interfaces
- let rpmtdFormat() figure conversion to string, simplifies things a lot
Panu Matilainen [Tue, 20 May 2008 09:38:40 +0000 (12:38 +0300)]
Add arraysize format
- it's a bit silly but avoids ugly special casing in formatting
Panu Matilainen [Tue, 20 May 2008 09:18:14 +0000 (12:18 +0300)]
Fix up for RPM_BIN_TYPE td->count abuse just once, in rpmtdCount()
Panu Matilainen [Tue, 20 May 2008 09:09:14 +0000 (12:09 +0300)]
Drop unused variables from formatValues()
Panu Matilainen [Tue, 20 May 2008 09:07:38 +0000 (12:07 +0300)]
Lose the useless rpmtdToString()
- either use rpmtdFormat() or xstrdup() on rpmtdGetString() as appropriate
Panu Matilainen [Tue, 20 May 2008 08:57:30 +0000 (11:57 +0300)]
Lose padding argument from formatters
- formatPrefix already contains the padding, just use rasprintf() on that
to get properly allocated buffer without messing with it manually
- xml format doesn't honor padding anyway so don't bother with it
Panu Matilainen [Tue, 20 May 2008 08:56:47 +0000 (11:56 +0300)]
Avoid leaking memory on legacy header interface emulation
Panu Matilainen [Tue, 20 May 2008 07:16:52 +0000 (10:16 +0300)]
Treat all integer types as unsigned in formatting
Panu Matilainen [Tue, 20 May 2008 07:10:18 +0000 (10:10 +0300)]
Simplify xmlFormat()
- use rpmtdFormat() to convert all data, xmlFormat() only adds the
xml markup now
Panu Matilainen [Tue, 20 May 2008 06:40:24 +0000 (09:40 +0300)]
Add rpmtdFormat() method and enumeration of supported formats
- permits formatting any rpmtd data to our supported formats over
iteration
Panu Matilainen [Tue, 20 May 2008 05:53:05 +0000 (08:53 +0300)]
Handle RPM_CHAR_TYPE too in stringFormat()
- used by filestates and nothing else apparently, duh..
Panu Matilainen [Mon, 19 May 2008 14:51:42 +0000 (17:51 +0300)]
Add stringFormat() for barebones string representation
- use for everything not specifically overridden
- pushes practically all formatting out of formatValue() into formats.c
Panu Matilainen [Mon, 19 May 2008 13:54:29 +0000 (16:54 +0300)]
Make formatter functions operate on rpmtd current item
- avoids extra abuse of the element field and simplifies things a bit
(eventually, not really yet)
Panu Matilainen [Mon, 19 May 2008 12:56:34 +0000 (15:56 +0300)]
Push rpmtd a bit deeper into formatting
- use rpmtd methods for pulling current integer/string values
- allows collapsing string and string array handling into one case
- CHAR/INT8 type aren't handled atm, but then nothing at all uses them...
Panu Matilainen [Mon, 19 May 2008 12:24:24 +0000 (15:24 +0300)]
Minimally convert formatting to pass around rpmtd
Panu Matilainen [Mon, 19 May 2008 05:38:53 +0000 (08:38 +0300)]
Remove unused datafree handling from formatValue()
- the data is always cached and cleared elsewhere..
Jindrich Novy [Tue, 20 May 2008 12:07:10 +0000 (14:07 +0200)]
Ignore quotes in expression
Panu Matilainen [Mon, 19 May 2008 05:27:10 +0000 (08:27 +0300)]
Teach rpmtd about the raw i18n string (array) type
Panu Matilainen [Sat, 17 May 2008 17:15:53 +0000 (20:15 +0300)]
Move all i18n string munging into separate function
Panu Matilainen [Sat, 17 May 2008 06:50:39 +0000 (09:50 +0300)]
Add HEADERGET_RAW flag to disable i18n lookups
Panu Matilainen [Sat, 17 May 2008 06:37:32 +0000 (09:37 +0300)]
Push header getter flags down to internal helpers
Panu Matilainen [Sat, 17 May 2008 06:28:32 +0000 (09:28 +0300)]
Oops, thinko/typo in headerGetFlags
Panu Matilainen [Sat, 17 May 2008 06:25:04 +0000 (09:25 +0300)]
Add typedefs for header get/put flags, use instead of int
Panu Matilainen [Fri, 16 May 2008 15:17:53 +0000 (18:17 +0300)]
Remove unused hRET_s and HE_s definitions for good
Panu Matilainen [Fri, 16 May 2008 15:15:08 +0000 (18:15 +0300)]
Use rpmTag enumeration for finding tag format func instead of names
- comparing strings when we only care about the tag number is waste of time
Panu Matilainen [Fri, 16 May 2008 14:46:49 +0000 (17:46 +0300)]
Eliminate rpmHeaderFormats and rpmHeaderTagExtensions from the API
Panu Matilainen [Fri, 16 May 2008 13:56:32 +0000 (16:56 +0300)]
Push finding of formatter and tag extension functions down to formats.c
Panu Matilainen [Fri, 16 May 2008 13:26:19 +0000 (16:26 +0300)]
Make extension formatter functions opaque
- tag extensions are only needed by headerGet(), formats only by headerFormat()
Panu Matilainen [Fri, 16 May 2008 13:07:41 +0000 (16:07 +0300)]
Eliminate the now unnecessary extension type fields
Panu Matilainen [Fri, 16 May 2008 12:55:44 +0000 (15:55 +0300)]
Split format and tag extensions to separate tables
Jindrich Novy [Fri, 16 May 2008 04:05:25 +0000 (06:05 +0200)]
Update Portugese/Brasilian RPM translation (rhbz#446795)
- thanks to Igor Pires Soares
Panu Matilainen [Thu, 15 May 2008 15:52:18 +0000 (18:52 +0300)]
Dumb segfault in %posttrans
Panu Matilainen [Thu, 15 May 2008 15:28:50 +0000 (18:28 +0300)]
Unbreak conditional formatting
Panu Matilainen [Thu, 15 May 2008 14:17:45 +0000 (17:17 +0300)]
Let rpmtdFreeData() do it's job...
Panu Matilainen [Thu, 15 May 2008 12:24:16 +0000 (15:24 +0300)]
Don't look into extensions when adding tags to python
- tagtable knows all our extensions too, there's no need to
Panu Matilainen [Thu, 15 May 2008 12:13:03 +0000 (15:13 +0300)]
Change headerTagTagFunction() to take tag container as arg
- minimal, crude conversion of all formatTag() functions for now
Panu Matilainen [Thu, 15 May 2008 11:55:59 +0000 (14:55 +0300)]
Minimal conversion of in-rpm python bindings to new headerGet()
- hopefully preserving legacy quirks and all...
Panu Matilainen [Thu, 15 May 2008 10:42:12 +0000 (13:42 +0300)]
Eliminate unnecessary extension fields
- push default extensions yet deeper into format parsing
- single bounds-checked function to retrieve from cache
Panu Matilainen [Thu, 15 May 2008 09:27:20 +0000 (12:27 +0300)]
Permit tags down to HEADER_IMAGE in queries to match previous behavior
Panu Matilainen [Thu, 15 May 2008 09:04:17 +0000 (12:04 +0300)]
Unify header and extension tag handling of headerFormat()
- retrieve both header and extension tag data through headerGet,
- cache the return data for both types for an enormous speedup especially
for array types
Panu Matilainen [Thu, 15 May 2008 05:01:45 +0000 (08:01 +0300)]
Convert rpmtsAddInstallElement() to new headerGet()
Panu Matilainen [Wed, 14 May 2008 12:08:40 +0000 (15:08 +0300)]
Commentary fixes
- "return" is not our registered trademark :)
- document the intent to make rpmtd opaque
Panu Matilainen [Wed, 14 May 2008 11:36:36 +0000 (14:36 +0300)]
Teach headerGet() to retrieve extension tags if enabled with flags
- bit of a kludgery until fooTag() formatters have been converted
to take rpmtd struct as argument
- idea lifted from rpm5.org, implemented independently (and probably quite
differently)
Panu Matilainen [Wed, 14 May 2008 10:26:58 +0000 (13:26 +0300)]
Simplify rpmDisplayQueryTags()
- all relevant tags are now visible in tagtable, don't bother looking up
extensions separately
Panu Matilainen [Wed, 14 May 2008 10:20:46 +0000 (13:20 +0300)]
Teach rpm tag table about extensions
- add rpmTag_e enumerations for all extension tags
- add extension field to headerTagTableEntry_s for things that are "pure"
extensions (instead of just extension overrides) so we have a chance to
catch out anybody trying to insert such tags to headers
Panu Matilainen [Wed, 14 May 2008 07:29:07 +0000 (10:29 +0300)]
Convert headerRegenSigHeader() to new header iterator interface
Panu Matilainen [Wed, 14 May 2008 07:20:56 +0000 (10:20 +0300)]
Convert headerMergeLegacySigs() to new header iterator interface
Panu Matilainen [Wed, 14 May 2008 06:46:04 +0000 (09:46 +0300)]
Convert file color calculation in rpmfcGenerateDepends() to new interface
Panu Matilainen [Wed, 14 May 2008 06:31:24 +0000 (09:31 +0300)]
Convert headerGetColor() to use new headerGet() interface
Panu Matilainen [Wed, 14 May 2008 06:20:51 +0000 (09:20 +0300)]
Convert addTE() to new headerGet() interface
- streamline things a bit while at it...
Panu Matilainen [Wed, 14 May 2008 06:12:40 +0000 (09:12 +0300)]
Convert rpmteNew() to use new headerGet() interface
Panu Matilainen [Tue, 13 May 2008 15:12:13 +0000 (18:12 +0300)]
Simplify rpmInstallLoadMacros() a bit
- use new style headerGet() and let rpmtd work out the string presentation
Panu Matilainen [Tue, 13 May 2008 15:09:35 +0000 (18:09 +0300)]
Add some more rpmtd access methods
- rpmtdGetUint() for 16 and 32 bit integer types, similar to
rpmtdGetString() (equally usable with scalar types and arrays)
- rpmtdToString() which converts "any" header data into string presentation
Panu Matilainen [Tue, 13 May 2008 14:35:32 +0000 (17:35 +0300)]
Convert runInstScript() to use new style headerGet()
- simplifies things quite a bit when we can just iterate over the
prog arg container, no matter if it's string or string array
Panu Matilainen [Tue, 13 May 2008 14:10:42 +0000 (17:10 +0300)]
Simplify prefix shuffling in psm runScript()
- use new style headerGet() and pass the entire tag container down to
doScriptExec(), removing need for big bunch of local variables
- use rpmtd (iterator) methods for processing the prefixes in doScriptExec(),
it does the right thing for legacy non-array RPMTAG_INSTALLPREFIX too
Panu Matilainen [Tue, 13 May 2008 13:12:56 +0000 (16:12 +0300)]
Convert a few cases in rpmfc to use the new rpmtdFromArg() methods
- safety asserts for the expected type for now...
Panu Matilainen [Tue, 13 May 2008 13:11:28 +0000 (16:11 +0300)]
Add methods to construct tag containers from argv and argi arrays
- basic type checking done based on tag (return) type
Panu Matilainen [Tue, 13 May 2008 12:05:22 +0000 (15:05 +0300)]
Convert couple of headerGetEntry() uses to new interface in parsePreamble
Panu Matilainen [Tue, 13 May 2008 11:42:32 +0000 (14:42 +0300)]
Use tag container iterator for ismemberInEntry()
Panu Matilainen [Tue, 13 May 2008 11:40:55 +0000 (14:40 +0300)]
Add support for iterating over tag data container
- rpmtd iterator init + next methods
- string accessor method for RPM_STRING_TYPE and RPM_STRING_ARRAY_TYPE
Panu Matilainen [Tue, 13 May 2008 11:03:08 +0000 (14:03 +0300)]
Convert checkForDuplicates() to use new interfaces
- doesn't gain anything but ...
Panu Matilainen [Tue, 13 May 2008 11:02:40 +0000 (14:02 +0300)]
Add rpmtdTag() method
Panu Matilainen [Tue, 13 May 2008 10:44:04 +0000 (13:44 +0300)]
Simplify initSourceHeader()
- use headerCopyTags() instead of manually doing it for the main tags
- use the new rpmtd interfaces for build restriction copying
Panu Matilainen [Tue, 13 May 2008 10:29:07 +0000 (13:29 +0300)]
Convert headerCopyTags() to use rpmtd internally
Panu Matilainen [Tue, 13 May 2008 10:25:14 +0000 (13:25 +0300)]
Convert headerCopy() to use the new interfaces internally
Panu Matilainen [Tue, 13 May 2008 09:32:25 +0000 (12:32 +0300)]
Add headerPut() for adding data to headers through tag container
- tag container isn't that big a win on add/append operations as it is on
retrieval, just use the existing headerAddEntry() family to do the
actual work
- headerPut() is a nice and short name, lifted from rpm5.org, API might
differ
- flags to control operation, just whether append is permitted or not for now
Panu Matilainen [Tue, 13 May 2008 08:59:19 +0000 (11:59 +0300)]
Use a macro for copying td entries in compat wrappers
- just to avoid tedious umphteen copies of if (c) *c = ...
Panu Matilainen [Tue, 13 May 2008 08:46:33 +0000 (11:46 +0300)]
Convert header tag iterator to use rpmtd
- new API function headerNext() for the new interface
- headerNextIterator() is just a compat wrapper
Panu Matilainen [Tue, 13 May 2008 08:38:38 +0000 (11:38 +0300)]
Convert headerGetEntry() internals to use rpmtd for data
- new public API function headerGet() that returns data in rpmtd, with
flags to control operation (just minmem or no for now)
- headerGet() is nice and short name, lifted from rpm5.org but our API
differs as this takes a separate arg for the tag to get instead of
(ab)using the container to pass data back and forth
- internal compatibility wrapper to keep headerGetEntry() and -MinMem
version working
Panu Matilainen [Tue, 13 May 2008 08:14:50 +0000 (11:14 +0300)]
Start converting header internals to use the rpmtd struct
- turn copyEntry() into a wrapper around copyTdEntry() to avoid having
to convert everything at once
- copyTdEntry() takes rpmtd and populates with data and whether memory
was allocated or not
Panu Matilainen [Tue, 13 May 2008 08:02:45 +0000 (11:02 +0300)]
New "tag data" container struct + some basic methods to deal with it
- to be used for passing around header and extension data
- inspired by similar changes in rpm5.org, details and implementation differ
Panu Matilainen [Mon, 12 May 2008 15:32:11 +0000 (18:32 +0300)]
Remove tags from headerSprintfArguments
- its always rpmTagTable so no point carrying it around
Panu Matilainen [Mon, 12 May 2008 15:27:36 +0000 (18:27 +0300)]
Update translations again for headerfmt.c split
Panu Matilainen [Mon, 12 May 2008 15:26:11 +0000 (18:26 +0300)]
headerfmt.c has translatable strings, add to POTFILES
Panu Matilainen [Mon, 12 May 2008 15:03:47 +0000 (18:03 +0300)]
Use rpmTagGetFoo() instead of local myTagFoo() versions
- hsa tags will always be our default rpmTagTable so we can use the
somewhat optimized rpmTagGet() versions instead of dumb linear searchs
Panu Matilainen [Mon, 12 May 2008 14:25:54 +0000 (17:25 +0300)]
Push extension defaults one level deeper into headerFormat()
Panu Matilainen [Mon, 12 May 2008 14:08:12 +0000 (17:08 +0300)]
Simplify header extension handling
- remove the now unnecessary chaining to different extension tables
Panu Matilainen [Mon, 12 May 2008 13:53:26 +0000 (16:53 +0300)]
Move headerVerifyInfo() to header.[ch] where it logically belongs
- removes the need for copy-paste typeAlign array in package.c
Panu Matilainen [Mon, 12 May 2008 13:31:27 +0000 (16:31 +0300)]
Eliminate copy-paste versions of hdrchkFoo() macros
- just stick 'em into header_internal.h, both header.c and package.c
need it anyway
Panu Matilainen [Mon, 12 May 2008 13:20:13 +0000 (16:20 +0300)]
Convert internal uses of headerSprintf() to headerFormat()
Panu Matilainen [Mon, 12 May 2008 13:16:37 +0000 (16:16 +0300)]
Add simpler headerFormat() function, deprecate headerSprintf()
- headerSprintf() is just a dumb wrapper around headerFormat() now,
tbltags and extensions are not used at all
- baby steps towards eliminating the the tag and extension tables from
the API/ABI...
Panu Matilainen [Mon, 12 May 2008 12:48:31 +0000 (15:48 +0300)]
Split header sprintf formatting to separate source
- header.c is now just low level header handling, headerfmt.c is the
formatting engine and formats.c has the actual formats
- also move bunch of formatting-related stuff from header_internal.h to
headerfmt.c, nothing else needs it
Jindrich Novy [Mon, 12 May 2008 10:46:37 +0000 (12:46 +0200)]
fully translate to CZ after latest po files regeneration
Panu Matilainen [Mon, 12 May 2008 09:54:36 +0000 (12:54 +0300)]
Move header "default" formats to formats.c along with the rest of 'em