[ précédent ] [ Table des matières ] [ 1 ] [ 2 ] [ suivant ]


Le manuel de l'intérieur de dpkg
Chapitre 2 - L'intérieur du code


2.1 Définitions de structures


2.1.1 versionrevision

     struct versionrevision {
       unsigned long epoch;
       char *version;
       char *revision;
     };

La structure versionrevision est utilisée pour gérer une spécification de version Debian.


2.2 Les fonctions


2.2.1 Les tables de traduction de l'analyse syntaxique

Chacune de ces tables est utilisée pour associer un ensemble de chaînes de caractères avec un ensemble correspondant d'entiers. Les tables actuelles sont :

     const struct namevalue booleaninfos[];

Associe des chaînes booléennes ("yes","no") à leur valeur binaire.


2.2.1.1 priorityinfos[]

     const struct namevalue priorityinfos[];

Associe les chaînes de priorité à des valeurs de type enum pkgpriority. Les valeurs actuelles de priorité sont :


2.2.1.2 statusinfos[]

     const struct namevalue statusinfos[];

Associe une chaîne sur l'état des paquets à des valeurs de type enum ???. Les chaînes sur l'état des paquets sont : « not-installed », « unpacked », « half-configured », « installed », « half-installed », « config-files », « postinst-failed » et « removal-failed ».


2.2.1.3 eflaginfos[]

     const struct namevalue eflaginfos[];

2.2.1.4 wantinfos[]

     const struct namevalue wantinfos[];

2.2.1.5 nicknames[]

     const struct nickname nicknames[];

Associe des champs de contrôle dépassés à leurs versions actuelles.


2.2.2 Les fonctions d'analyse syntaxique


2.2.2.1 parseerr()

     void parseerr
     (FILE *file, const char *filename, int lno,
      FILE *warnto, int *warncount, const struct pkginfo *pigp,
      int warnonly, const char *fmt, ...);

Renvoie une erreur lors de l'analyse syntaxique d'un flot de données de contrôle. Cherche dans file un état d'erreur, affiche un message d'erreur dans stderr et termine avec un code d'erreur si une erreur est présente dans le flot. Formate les arguments variables suivant la chaîne printf-style dans fmt, en faisant précéder le résultat de filename, lno, and pigp (si non NULL). Si warnonly est égal à 0, écrit le résultat dans stderr et termine avec un code d'erreur. Autrement, incrémente warncount et termine normalement.


2.2.2.2 illegal_packagename()

const char *illegal_packagename (const char *p, const char **ep) Vérifie le nom de paquet dans p que la syntaxe est correcte. Renvoie NULL en cas de succès, en faisant pointer *ep après le dernier caractère du nom de paquet, incluant tout espace blanc éventuel (tel que défini par isspace()). En cas d'erreur, renvoie le message d'erreur comme un pointeur vers un buffer statique.


2.2.2.3 informativeversion()

int informativeversion(const struct versionrevision *version)

Renvoie « true » si et seulement si versionrevision n'est pas vide ; autrement renvoie « false ».


2.2.2.4 varbufversion()

     void varbufversion
     (struct varbuf *vb,
      const struct versionrevision *version,
      enum versiondisplayepochwhen vdew);

Rend lisible par un humain une version de version dans vb. Les valeurs possibles de vdew sont :


2.2.2.5 versiondescribe()

     const char *versiondescribe
     (const struct versionrevision *version,
      enum versiondisplayepochwhen vdew);

Renvoie une version lisible par un humain de version comme un pointeur vers un buffer statique. Si la structure de version est vide, renvoie "<none>". Les buffers statiques sont alloués à partir d'un ensemble de 10 à la façon « round-robin » (ils seront réutilisés après 10 appels successifs à versiondescribe).


2.2.2.6 parseversion()

     const char *parseversion
     (struct versionrevision *rversion, const char *string);

Fait l'analyse syntaxique du contenu de string dans rversion. Si cela réussit, renvoie NULL, sinon renvoie un pointeur vers une chaîne d'erreur statique.


2.2.2.7 parsemustfield()

     void parsemustfield
     (FILE *file, const char *filename, int lno,
      FILE *warnto, int *warncount,
      const struct pkginfo *pigp, int warnonly,
      char **value, const char *what);

2.2.2.8 skip_slash_dotslash()

     const char *skip_slash_dotslash (const char *p);

2.2.2.9 convert_string()

     static int convert_string
     (const char *filename, int lno, const char *what, int otherwise,
      FILE *warnto, int *warncount, const struct pkginfo *pigp,
      const char *startp, const struct namevalue *nvip,
      const char **endpp)

[ précédent ] [ Table des matières ] [ 1 ] [ 2 ] [ suivant ]


Le manuel de l'intérieur de dpkg

Version 1.5 --- janvier 2001

Klee Dienes mailto:klee@mit.edu