23#ifndef LIBDPKG_PARSEDUMP_H
24#define LIBDPKG_PARSEDUMP_H
65#define parse_at_eof(ps) ((ps)->dataptr >= (ps)->endptr)
66#define parse_getc(ps) *(ps)->dataptr++
67#define parse_ungetc(c, ps) (ps)->dataptr--
95#define STRUCTFIELD(klass, off, type) (*(type *)((uintptr_t)(klass) + (off)))
97#define PKGIFPOFF(f) (offsetof(struct pkgbin, f))
98#define ARCHIVEFOFF(f) (offsetof(struct archivedetails, f))
102 const char *value,
const struct fieldinfo *fip);
140#define FIELD(name) name, sizeof(name) - 1
164 const
char *value, const
char *what);
166 const
char **value, const
char *what);
168#define MSDOS_EOF_CHAR '\032'
parsedbflags
Definition: dpkg-db.h:333
#define DPKG_ATTR_REQRET
Definition: macros.h:65
#define DPKG_BEGIN_DECLS
Definition: macros.h:86
#define DPKG_ATTR_PRINTF(n)
Definition: macros.h:56
#define DPKG_END_DECLS
Definition: macros.h:87
#define DPKG_ATTR_NORET
Definition: macros.h:55
#define DPKG_BIT(n)
Return the integer value of bit n.
Definition: macros.h:125
fwritefunction w_dependency
Definition: parsedump.h:130
fwritefunction w_charfield
Definition: parsedump.h:129
void parsedb_load(struct parsedb_state *ps)
Load data for package deb822 style parsing.
Definition: parse.c:574
freadfunction f_configversion
Definition: parsedump.h:115
void parse_field_func(struct parsedb_state *ps, struct field_state *fs, void *parse_obj)
Definition: parsedump.h:89
fwritefunction w_priority
Definition: parsedump.h:129
fwritefunction w_version
Definition: parsedump.h:130
void parse_ensure_have_field(struct parsedb_state *ps, const char **value, const char *what)
Definition: parsehelp.c:332
freadfunction f_charfield
Definition: parsedump.h:104
fwritefunction w_null
Definition: parsedump.h:130
freadfunction f_conffiles
Definition: parsedump.h:111
int parsedb_parse(struct parsedb_state *ps, struct pkginfo **pkgp)
Parse deb822 style package data from a buffer.
Definition: parse.c:769
freadfunction f_trigaw
Definition: parsedump.h:118
freadfunction f_version
Definition: parsedump.h:112
fwritefunction w_section
Definition: parsedump.h:129
fwritefunction w_trigpend
Definition: parsedump.h:133
void fwritefunction(struct varbuf *, const struct pkginfo *, const struct pkgbin *, enum fwriteflags flags, const struct fieldinfo *)
Definition: parsedump.h:126
freadfunction f_architecture
Definition: parsedump.h:117
freadfunction f_archives
Definition: parsedump.h:119
freadfunction f_status
Definition: parsedump.h:108
fwriteflags
Definition: parsedump.h:121
freadfunction f_dependency
Definition: parsedump.h:110
fwritefunction w_status
Definition: parsedump.h:129
freadfunction f_priority
Definition: parsedump.h:105
freadfunction f_name
Definition: parsedump.h:103
fwritefunction w_trigaw
Definition: parsedump.h:133
const struct fieldinfo fieldinfos[]
Fields information.
Definition: parse.c:53
struct parsedb_state * parsedb_new(const char *filename, int fd, enum parsedbflags flags)
Create a new deb822 parser context.
Definition: parse.c:524
fwritefunction w_name
Definition: parsedump.h:129
freadfunction f_boolean
Definition: parsedump.h:109
void parsedb_close(struct parsedb_state *ps)
Teardown a package deb822 parser context.
Definition: parse.c:741
freadfunction f_trigpend
Definition: parsedump.h:118
fwritefunction w_architecture
Definition: parsedump.h:132
freadfunction f_obs_revision
Definition: parsedump.h:113
fwritefunction w_archives
Definition: parsedump.h:134
bool parse_stanza(struct parsedb_state *ps, struct field_state *fs, parse_field_func *parse_field, void *parse_obj)
Parse an RFC-822 style stanza.
Definition: parse.c:619
fwritefunction w_multiarch
Definition: parsedump.h:131
fwritefunction w_conffiles
Definition: parsedump.h:130
fwritefunction w_booleandefno
Definition: parsedump.h:130
void varbuf_add_arbfield(struct varbuf *vb, const struct arbitraryfield *arbfield, enum fwriteflags flags)
Definition: dump.c:453
freadfunction f_section
Definition: parsedump.h:107
void parse_problem(struct parsedb_state *ps, const char *fmt,...) DPKG_ATTR_PRINTF(2)
Definition: parsehelp.c:83
parsedbtype
Parse action.
Definition: parsedump.h:43
void parse_must_have_field(struct parsedb_state *ps, const char *value, const char *what)
Definition: parsehelp.c:322
fwritefunction w_configversion
Definition: parsedump.h:129
freadfunction f_obs_dependency
Definition: parsedump.h:114
freadfunction f_multiarch
Definition: parsedump.h:116
int parse_db_version(struct parsedb_state *ps, struct dpkg_version *version, const char *value) DPKG_ATTR_REQRET
Parse a version string coming from a database file.
Definition: parsehelp.c:306
void parse_warn(struct parsedb_state *ps, const char *fmt,...) DPKG_ATTR_PRINTF(2)
Definition: parsehelp.c:73
freadfunction f_obs_class
Definition: parsedump.h:106
void parse_error(struct parsedb_state *ps, const char *fmt,...) DPKG_ATTR_NORET DPKG_ATTR_PRINTF(2)
Definition: parsehelp.c:60
void freadfunction(struct pkginfo *pkg, struct pkgbin *pkgbin, struct parsedb_state *ps, const char *value, const struct fieldinfo *fip)
Definition: parsedump.h:100
struct parsedb_state * parsedb_open(const char *filename, enum parsedbflags flags)
Open a file for deb822 parsing.
Definition: parse.c:549
@ fw_printheader
Print field header and trailing newline.
Definition: parsedump.h:123
@ pdb_file_update
Definition: parsedump.h:44
@ pdb_file_available
Definition: parsedump.h:47
@ pdb_file_status
Definition: parsedump.h:45
@ pdb_file_control
Definition: parsedump.h:46
Data structure representing a Debian version.
Definition: version.h:42
Definition: parsedump.h:69
const char * valuestart
Definition: parsedump.h:71
const char * fieldstart
Definition: parsedump.h:70
int valuelen
Definition: parsedump.h:74
struct varbuf value
Definition: parsedump.h:72
int * fieldencountered
Definition: parsedump.h:75
int fieldlen
Definition: parsedump.h:73
Definition: parsedump.h:142
size_t namelen
Definition: parsedump.h:144
freadfunction * rcall
Definition: parsedump.h:145
const char * name
Definition: parsedump.h:143
size_t integer
Definition: parsedump.h:147
fwritefunction * wcall
Definition: parsedump.h:146
Definition: parsedump.h:50
enum parsedbflags flags
Definition: parsedump.h:52
struct pkginfo * pkg
Definition: parsedump.h:55
char * data
Definition: parsedump.h:57
enum parsedbtype type
Definition: parsedump.h:51
char * endptr
Definition: parsedump.h:59
struct pkgbin * pkgbin
Definition: parsedump.h:56
struct varbuf errmsg
Definition: parsedump.h:54
char * dataptr
Definition: parsedump.h:58
int lno
Definition: parsedump.h:62
struct dpkg_error err
Definition: parsedump.h:53
int fd
Definition: parsedump.h:61
const char * filename
Definition: parsedump.h:60
Node describing a binary package file.
Definition: dpkg-db.h:108
Node describing an architecture package instance.
Definition: dpkg-db.h:198
varbuf_init must be called exactly once before the use of each varbuf (including before any call to v...
Definition: varbuf.h:55