dpkg 1.22.7-3-g89f48
|
Data Structures | |
struct | parsedb_state |
struct | field_state |
struct | fieldinfo |
Macros | |
#define | parse_at_eof(ps) ((ps)->dataptr >= (ps)->endptr) |
#define | parse_getc(ps) *(ps)->dataptr++ |
#define | parse_ungetc(c, ps) (ps)->dataptr-- |
#define | STRUCTFIELD(klass, off, type) (*(type *)((uintptr_t)(klass) + (off))) |
#define | PKGIFPOFF(f) (offsetof(struct pkgbin, f)) |
#define | ARCHIVEFOFF(f) (offsetof(struct archivedetails, f)) |
#define | FIELD(name) name, sizeof(name) - 1 |
#define | MSDOS_EOF_CHAR '\032' /* ^Z */ |
Typedefs | |
typedef void | parse_field_func(struct parsedb_state *ps, struct field_state *fs, void *parse_obj) |
typedef void | freadfunction(struct pkginfo *pkg, struct pkgbin *pkgbin, struct parsedb_state *ps, const char *value, const struct fieldinfo *fip) |
typedef void | fwritefunction(struct varbuf *, const struct pkginfo *, const struct pkgbin *, enum fwriteflags flags, const struct fieldinfo *) |
Enumerations | |
enum | parsedbtype { pdb_file_update , pdb_file_status , pdb_file_control , pdb_file_available } |
Parse action. More... | |
Functions | |
struct parsedb_state * | parsedb_new (const char *filename, int fd, enum parsedbflags flags) |
Create a new deb822 parser context. | |
struct parsedb_state * | parsedb_open (const char *filename, enum parsedbflags flags) |
Open a file for deb822 parsing. | |
void | parsedb_load (struct parsedb_state *ps) |
Load data for package deb822 style parsing. | |
int | parsedb_parse (struct parsedb_state *ps, struct pkginfo **pkgp) |
Parse deb822 style package data from a buffer. | |
void | parsedb_close (struct parsedb_state *ps) |
Teardown a package deb822 parser context. | |
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. | |
void | varbuf_add_arbfield (struct varbuf *vb, const struct arbitraryfield *arbfield, enum fwriteflags flags) |
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. | |
void | parse_error (struct parsedb_state *ps, const char *fmt,...) DPKG_ATTR_NORET DPKG_ATTR_PRINTF(2) |
void | parse_warn (struct parsedb_state *ps, const char *fmt,...) DPKG_ATTR_PRINTF(2) |
void | parse_lax_problem (struct parsedb_state *ps, enum parsedbflags flags_lax, const char *fmt,...) DPKG_ATTR_PRINTF(3) |
void | parse_problem (struct parsedb_state *ps, const char *fmt,...) DPKG_ATTR_PRINTF(2) |
void | parse_must_have_field (struct parsedb_state *ps, const char *value, const char *what) |
void | parse_ensure_have_field (struct parsedb_state *ps, const char **value, const char *what) |
#define ARCHIVEFOFF | ( | f | ) | (offsetof(struct archivedetails, f)) |
#define FIELD | ( | name | ) | name, sizeof(name) - 1 |
#define MSDOS_EOF_CHAR '\032' /* ^Z */ |
#define parse_at_eof | ( | ps | ) | ((ps)->dataptr >= (ps)->endptr) |
#define parse_getc | ( | ps | ) | *(ps)->dataptr++ |
#define parse_ungetc | ( | c, | |
ps | |||
) | (ps)->dataptr-- |
#define PKGIFPOFF | ( | f | ) | (offsetof(struct pkgbin, f)) |
#define STRUCTFIELD | ( | klass, | |
off, | |||
type | |||
) | (*(type *)((uintptr_t)(klass) + (off))) |
typedef void freadfunction(struct pkginfo *pkg, struct pkgbin *pkgbin, struct parsedb_state *ps, const char *value, const struct fieldinfo *fip) |
typedef void fwritefunction(struct varbuf *, const struct pkginfo *, const struct pkgbin *, enum fwriteflags flags, const struct fieldinfo *) |
typedef void parse_field_func(struct parsedb_state *ps, struct field_state *fs, void *parse_obj) |
enum parsedbtype |
int parse_db_version | ( | struct parsedb_state * | ps, |
struct dpkg_version * | version, | ||
const char * | value | ||
) |
Parse a version string coming from a database file.
It parses a version string, and prints a warning or an error depending on the parse options.
ps | The parsedb state. |
version | The version to parse into. |
value | The version string to parse from. |
0 | On success, and err is reset. |
-1 | On failure, and err is set accordingly. |
References dpkg_error_destroy(), DPKG_MSG_ERROR, parsedb_state::err, parsedb_state::flags, parseversion(), pdb_lax_version_parser, and dpkg_error::type.
Referenced by f_configversion(), f_dependency(), and f_version().
void parse_ensure_have_field | ( | struct parsedb_state * | ps, |
const char ** | value, | ||
const char * | what | ||
) |
void parse_error | ( | struct parsedb_state * | ps, |
const char * | fmt, | ||
... | |||
) |
References args, and ohshit().
Referenced by f_archives(), f_boolean(), f_conffiles(), f_configversion(), f_dependency(), f_multiarch(), f_name(), f_priority(), f_status(), f_trigaw(), f_trigpend(), parse_must_have_field(), parse_stanza(), and parsedb_parse().
void parse_lax_problem | ( | struct parsedb_state * | ps, |
enum parsedbflags | flags_lax, | ||
const char * | fmt, | ||
... | |||
) |
References args, parsedb_state::flags, ohshit(), and warning().
Referenced by f_dependency(), and parse_stanza().
void parse_must_have_field | ( | struct parsedb_state * | ps, |
const char * | value, | ||
const char * | what | ||
) |
void parse_problem | ( | struct parsedb_state * | ps, |
const char * | fmt, | ||
... | |||
) |
References args, DPKG_MSG_WARN, parsedb_state::err, ohshit(), dpkg_error::str, dpkg_error::type, and warning().
Referenced by f_configversion(), f_dependency(), and f_version().
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.
References _, MSDOS_EOF_CHAR, parse_at_eof, parse_error(), parse_getc, parse_lax_problem(), parse_ungetc, pdb_lax_stanza_parser, and dpkg_error::type.
Referenced by parsedb_parse().
void parse_warn | ( | struct parsedb_state * | ps, |
const char * | fmt, | ||
... | |||
) |
References args, and warning().
Referenced by f_architecture(), f_dependency(), f_obs_class(), f_obs_dependency(), f_obs_revision(), and parse_ensure_have_field().
void parsedb_close | ( | struct parsedb_state * | ps | ) |
Teardown a package deb822 parser context.
References _, dpkg_error_destroy(), ehflag_normaltidy, ohshite(), pdb_close_fd, pop_cleanup(), dpkg_error::type, and varbuf_destroy().
Referenced by parsedb().
void parsedb_load | ( | struct parsedb_state * | ps | ) |
Load data for package deb822 style parsing.
References _, varbuf::buf, parsedb_state::fd, fd_read(), fd_vbuf_copy, parsedb_state::filename, parsedb_state::flags, m_malloc(), ohshit(), ohshite(), pdb_allow_empty, dpkg_error::str, dpkg_error::type, varbuf_detach(), and VARBUF_INIT.
Referenced by parsedb().
struct parsedb_state * parsedb_new | ( | const char * | filename, |
int | fd, | ||
enum parsedbflags | flags | ||
) |
Create a new deb822 parser context.
References DPKG_ERROR_OBJECT, parsedb_state::fd, parsedb_state::filename, parsedb_state::flags, m_malloc(), parsedb_state::type, and VARBUF_OBJECT.
Referenced by parsedb_open().
struct parsedb_state * parsedb_open | ( | const char * | filename, |
enum parsedbflags | flags | ||
) |
Open a file for deb822 parsing.
References _, cu_closefd(), ehflag_normaltidy, parsedb_state::fd, parsedb_state::filename, parsedb_state::flags, ohshite(), parsedb_new(), pdb_allow_empty, pdb_close_fd, pdb_dash_is_stdin, push_cleanup(), and parsedb_state::type.
Referenced by parsedb().
int parsedb_parse | ( | struct parsedb_state * | ps, |
struct pkginfo ** | donep | ||
) |
Parse deb822 style package data from a buffer.
donep may be NULL. If donep is not NULL only one package's information is expected.
References _, array_count, pkginfo::available, parsedb_state::data, dpkg_version_compare(), dpkg_version_is_informative(), field_state::fieldencountered, fieldinfos, parsedb_state::filename, parsedb_state::flags, pkginfo::installed, ohshit(), parse_at_eof, parse_error(), parse_stanza(), pdb_allow_empty, pdb_file_available, pdb_ignoreolder, pdb_recordavailable, pkgset::pkg, pkg_parse_object::pkg, parsedb_state::pkg, pkg_parse_object::pkgbin, parsedb_state::pkgbin, pkgset_blank(), parsedb_state::type, field_state::value, varbuf_destroy(), and pkgbin::version.
Referenced by parsedb().
void varbuf_add_arbfield | ( | struct varbuf * | vb, |
const struct arbitraryfield * | arbfield, | ||
enum fwriteflags | flags | ||
) |
References fw_printheader, arbitraryfield::name, arbitraryfield::value, varbuf_add_char(), and varbuf_add_str.
Referenced by varbuf_stanza().
freadfunction f_architecture |
freadfunction f_archives |
freadfunction f_boolean |
freadfunction f_charfield |
freadfunction f_conffiles |
freadfunction f_configversion |
freadfunction f_dependency |
Referenced by f_obs_dependency().
freadfunction f_multiarch |
freadfunction f_name |
freadfunction f_obs_class |
freadfunction f_obs_dependency |
freadfunction f_obs_revision |
freadfunction f_priority |
Referenced by f_obs_class().
freadfunction f_section |
freadfunction f_status |
freadfunction f_trigaw |
freadfunction f_trigpend |
freadfunction f_version |
|
extern |
Fields information.
Referenced by parsedb_parse(), pkg_format_print(), and varbuf_stanza().
enum DPKG_ATTR_ENUM_FLAGS fwriteflags |
fwritefunction w_architecture |
fwritefunction w_archives |
fwritefunction w_booleandefno |
fwritefunction w_charfield |
fwritefunction w_conffiles |
fwritefunction w_configversion |
fwritefunction w_dependency |
fwritefunction w_multiarch |
fwritefunction w_name |
fwritefunction w_null |
fwritefunction w_priority |
fwritefunction w_section |
fwritefunction w_status |
fwritefunction w_trigaw |
fwritefunction w_trigpend |
fwritefunction w_version |