dpkg 1.21.11
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
parsedump.h File Reference

(f79182cef)

#include <stdint.h>
#include <dpkg/error.h>
Include dependency graph for parsedump.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

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...
 
enum  fwriteflags { fw_printheader = DPKG_BIT(0) }
 

Functions

struct parsedb_stateparsedb_new (const char *filename, int fd, enum parsedbflags flags)
 Create a new deb822 parser context. More...
 
struct parsedb_stateparsedb_open (const char *filename, enum parsedbflags flags)
 Open a file for deb822 parsing. More...
 
void parsedb_load (struct parsedb_state *ps)
 Load data for package deb822 style parsing. More...
 
int parsedb_parse (struct parsedb_state *ps, struct pkginfo **pkgp)
 Parse deb822 style package data from a buffer. More...
 
void parsedb_close (struct parsedb_state *ps)
 Teardown a package deb822 parser context. More...
 
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. More...
 
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. More...
 
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_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)
 

Variables

freadfunction f_name
 
freadfunction f_charfield
 
freadfunction f_priority
 
freadfunction f_obs_class
 
freadfunction f_section
 
freadfunction f_status
 
freadfunction f_boolean
 
freadfunction f_dependency
 
freadfunction f_conffiles
 
freadfunction f_version
 
freadfunction f_obs_revision
 
freadfunction f_obs_dependency
 
freadfunction f_configversion
 
freadfunction f_multiarch
 
freadfunction f_architecture
 
freadfunction f_trigpend
 
freadfunction f_trigaw
 
freadfunction f_archives
 
fwritefunction w_name
 
fwritefunction w_charfield
 
fwritefunction w_priority
 
fwritefunction w_section
 
fwritefunction w_status
 
fwritefunction w_configversion
 
fwritefunction w_version
 
fwritefunction w_null
 
fwritefunction w_booleandefno
 
fwritefunction w_dependency
 
fwritefunction w_conffiles
 
fwritefunction w_multiarch
 
fwritefunction w_architecture
 
fwritefunction w_trigpend
 
fwritefunction w_trigaw
 
fwritefunction w_archives
 
const struct fieldinfo fieldinfos []
 Fields information. More...