|
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 |