Provided by: defoma_0.11.12ubuntu1_all bug

NOM

       Defoma::Id - module Defoma pour la gestion des bases de reference.

SYNOPSIS

       use Defoma::Id;

       $Id = defoma_id_open_cache( suffixe, nom_paquet );

       defoma_id_close_cache( id_objet );

       defoma_id_register( id_objet,
       type => type,
       font => police,
       id => identifiant,
       priority => priorit'e,
       category => cat'egorie,
       origin => origine,
       depend => d'ependance,
       hints => indications );

       defoma_id_unregister( id_objet,
       type => type,
       font => police,
       id => identifiant );

       @index = defoma_id_grep_cache( id_objet, type-recherch'e,
       id => identifiant,
       font => police,
       type => type,
       category => cat'egorie,
       depid => depid,
       depfont => depfont );

       @hints = defoma_id_get_hints( id_objet, index );

       defoma_id_set( id_objet, identifiant, police, flag );

       defoma_id_unset( id_objet, identifiant, police );

DESCRIPTION

       Defoma::Id  est  un  module  Defoma pour la gestion des identifiants de
       police et des bases de reference.  Il  fournit  les  fonctions  listees
       ci-dessous,  qui  sont  supposees  etre  appelees  par  les  scripts de
       configuration Defoma.

       Une base de reference est une sorte de base de donnees dont le but  est
       d'eviter  les  conflits  de noms. Les applications accedent souvent aux
       polices avec leurs propres identifiants, il est donc  preferable  qu'un
       identifiant   pointe  vers  une  seule  police.  C'est  une  contrainte
       importante  pour  une  configuration  automatique,  parce  qu'il   peut
       facilement arriver que plusieurs polices aient le meme identifiant. Les
       scripts de configuration  automatique  peuvent  difficilement  detecter
       quelle  est la meilleure police pour porter le nom d'un identifiant, ou
       meme pour savoir si cette situation se produit. Defoma::Id est une aide
       pour resoudre ce type de probleme.

       Voici comment Defoma::Id fonctionne dans les grandes lignes :
       1.  Ouverture d'une base de reference avec la commande init d'un script
       de configuration Defoma.
       2. Enregistrement  de(s)  l'identifiant(s)  pour  une  police  avec  la
       commande register du script.
       3.  Recherche dans la base de reference par Defoma::Id pour verifier si
       une autre police fournit le meme identifiant, et rappel du script  afin
       de  faire  le  choix  le  plus  approprie  de  la  police  qui fournira
       l'identifiant, a l'aide des commandes do-install- et do-remove-.

TYPE D'IDENTIFIANTS

       Il  peut  gerer  trois  types  d'identifiants :  RealName,   Alias   et
       Substituted.

       RealName  est  le  nom  reel d'une police et est generalement pris dans
       l'indication FontName. Si vous voulez enregistrer une police a une base
       de  references,  au moins un nom reel doit etre enregistre. Vous pouvez
       fournir  les  indications  aux  options  lorsque  vous  enregistrez  un
       RealName.
       Alias  est un autre nom pour une police, qui est generalement pris dans
       l'indication Alias. Vous devez specifier le nom reel (RealName)  de  la
       police avec le parametre origine lorsque vous enregistrez un Alias.
       Substituted  est  encore un autre nom d'une police, qui contrairement a
       Alias n'est ni pris dans les indications de la police,  ni  directement
       enregistre  dans une base de reference par les scripts de configuration
       Defoma. Il est plutot pris dans une regle de substitution (subst-rule),
       qui  est  geree  par le module Defoma::Subst, et est enregistree par le
       module. Si vous voulez qu'une police particuliere  se  substitue  a  un
       autre  identifiant,  vous devez enregistrer la police (et son nom reel)
       aupres d'un cache de substitution (subst-cache). Pour plus de  details,
       veuillez consulter la page de manuel Defoma::Subst.

D'ETAIL SUR LE FONCTIONNEMENT DE DEFOMA::ID

       L'enregistrement  et le desenregistrement des identifiants d'une police
       sont generalement effectues par les  scripts  de  configuration  Defoma
       avec   les   commandes  register  et  unregister  respectivement,  mais
       l'installation et le retrait de certains identifiants  ne  doivent  pas
       etre  effectues  lors  de l'appel aux commandes register et unregister,
       mais lors de l'appel  aux  commandes  do-install-(real,alias,subst)  et
       do-remove-(real,alias,subst)   respectivement.  Les  exemples  suivants
       montrent comment les identifiants des polices sont enregistres dans une
       base de reference et comment il en sont retires.

       1.Enregistrement
              Le  module  Defoma::Id  enregistre  l'identifiant, la police, le
              type, la priorite et encore d'autres informations dans une  base
              de reference.

       1.2    Le module recherche les polices qui fournissent l'identifiant de
              la base de reference, et prend la premiere  d'entre  elles.  Les
              noms reels (RealName) sont toujours prioritaires par rapport aux
              Alias,  et  les  Alias   par   rapport   aux   noms   substitues
              (Substituted).

       1.3    Si aucune police n'est installee pour cet identifiant, le module
              rappelle le script avec la  commande  do-install-<type>.  Si  le
              script  reussit  l'installation de la police pour l'identifiant,
              le module marque l'identifiant  et  la  police  comme  INSTALLED
              (installe).

       1.4    Si  une autre police est deja marquee INSTALLED (installee) pour
              l'identifiant, le module rappelle le  script  avec  la  commande
              do-remove-<type> pour retirer l'ancienne police prioritaire pour
              cette identifiant, et retire la marque  INSTALLED.  Ensuite,  le
              module  rappelle  le  script  avec la commande do-install-<type>
              pour installer la police comme prioritaire pour cet identifiant.
              En   cas   de   succes  de  l'installation  de  la  police  pour
              l'identifiant, le module marque l'identifiant et la police comme
              etant INSTALLED.

       2.Desenregistrement
              Si  la  police  est  installee  pour  l'identifiant,  le  module
              Defoma::Id rappelle le script avec la commande  do-remove-<type>
              afin  de  retirer  la  police pour cet identifiant, et retire la
              marque INSTALLED. Ensuite, le module recherche les  polices  qui
              fournissent   l'identifiant   dans  la  base  de  reference.  Si
              l'identifiant  est  fourni  par  d'autres  polices,  le   module
              recherche la plus prioritaire d'entre elles, et l'installe comme
              mentionne dans la section 1.3 precedente.

       2.2    Le module retire l'entree correspondant a  l'identifiant  et  la
              police.

       Ces  processus  permettent  de  n'avoir  qu'une  seule  police, la plus
       appropriee, qui fournit un identifiant donne, de telle sorte qu'il  n'y
       ait pas de conflit de nom.

FORMAT D'UNE BASE DE R'EF'ERENCE

       Une  base  de  reference  contient  huit champs pour chaque entree : id
       (identifiant),  font  (police),  type,  priority  (priorite),  category
       (categorie), depid, depfont et hints (indications).

       Le  type  represente le type d'une entree a l'aide d'une combinaison de
       lettres. Une base de reference  gere  des  entrees  de  polices  et  de
       marques.  Ce dernier type d'entree permet d'installer des polices moins
       prioritaires  pour  certains  identifiants  (qui  sont  marques  USE  -
       utilise),  ou  pour  conserver  une  police  installee  pour un certain
       identifiant (marque comme EXCLUDE - exclu). Elles sont  supposees  etre
       placees par les utilisateurs, et ne doivent pas etre utilisees dans les
       scripts de configuration Defoma, juste pour  une  utilisation  interne.
       Les  entrees  de  polices  contiennent  des  informations  sur certains
       identifiants d'une police et peuvent etre utilisees dans les scripts.

       Le  type  consiste  en  deux  ou  trois  lettres.  La  premiere  lettre
       represente  le type d'entree, qui est soit S (pour les polices), soit M
       (pour les marques). Si la premiere lettre est un  S,  ce  qui  signifie
       qu'il  s'agit de l'entree d'une police, la deuxieme lettre peut etre un
       r  (nom  reel),  un  a  (un  alias)  ou  un  S  (pour  une  police   de
       substitution).  Si  la  premiere lettre est un M, ce qui signifie qu'il
       s'agit de l'entree d'une marque, la seconde lettre est soit un u  (USE)
       soit  un  x  (EXCLUDE).  Pour  les entrees de polices (dont la premiere
       lettre est un S), si  la  police  et  l'identifiant  de  l'entree  sont
       marques INSTALLED, il y a une troisieme lettre, qui est I.

       depid  et depfont representent les dependances envers un identifiant ou
       une police. Une police n'est jamais installee, a moins  que  la  police
       depfont soit installee pour l'identifiant depid. Les parametres origine
       et depend de defoma_id_register affectent ces champs. Si  l'identifiant
       d'une  police  ne depend d'aucun autre identifiant ou police, alors ces
       champs valent << . >>.

       Le  champ  hints  (indications)   represente   les   indications   d'un
       identifiant.   Il   est   specifie   par   l'argument   indications  de
       defoma_id_register.  Vous  devez  utiliser   defoma_id_get_hints   pour
       acceder a la valeur de ce champ.

       Les  champs  de  chaque entree d'une base de reference sont accessibles
       par les champs de l'id-object dont les clefs sont e_id, e_font, e_type,
       e_priority,   e_category,   e_depid,   et   e_depfont.   Par  exemple :
       $Id->{e_font}->[3] permet d'acceder a la police de la troisieme  entree
       de l'id-object $ID.

       Voici un exemple de base de reference :

       # e_id        e_font e_type e_priority e_category ...
       0 Helvetica   a.pfa  SrI    20         type1 ...
       1 Courier     a.pfa  Sa     20         type1 ...
       2 Times-Roman b.ttf  SrI    30         truetype ...
       3 Courier     b.ttf  SaI    30         truetype ...

       Cette  base  montre  que  a.pfa  a  deux identifiants : Helvetica comme
       RealName et Courier comme Alias. b.ttf a egalement deux  identifiants :
       Times-Roman comme RealName et Courier comme Alias.
       Deux  polices  ont  le  meme  identifiant  Courier,  mais cette base de
       reference fait pointer Courier vers b.ttf (autrement dit,  c'est  b.ttf
       qui fournit Courier).

FONCTIONS

       defoma_id_open_cache  permet  d'ouvrir une base de reference. Les bases
       de reference dependent des applications. Les scripts  de  configuration
       Defoma  d'une  application ne peuvent pas ouvrir les bases de reference
       d'une autre application. Chaque application peut avoir plusieurs  bases
       de  reference,  qui  sont  identifiees  par  un suffixe unique pour une
       application. Vous  pouvez  omettre  le  suffixe  pour  une  application
       n'utilisant  qu'une  seule base de reference. nom_paquet doit etre omis
       dans la plupart des  cas.  La  fonction  retourne  un  objet  id_object
       utilise comme descripteur pour les operations suivantes.

       defoma_id_close_cache  permet  de  fermer  une  base  de  reference. En
       interne, cela permet d'ecrire le contenu d'une base de  reference  dans
       un fichier identifie par id_object.

       defoma_id_register  permet  d'enregistrer  une  police  et  un  de  ses
       identifiants dans la base de reference id_object. Vous devez  au  moins
       fournir  les  parametres  type, font, id et priority. type peut prendre
       les valeurs << real >>, << alias >> ou << subst >> qui correspondent  a
       des  noms  reels  (RealName), des Alias, ou des polices de substitution
       (Substituted), comme mentionne  precedemment.  << subst >>  ne  devrait
       etre utilise que par le module Defoma::Subst, ce qui ne laisse donc que
       le choix << real >> et << alias >>. Si << alias >>  est  utilise  comme
       type  de  police,  alors  vous devez specifier le nom reel de la police
       dans le parametre origine. Il est obligatoire  de  specifier  l'origine
       pour les identifiants ne correspondant pas a un nom reel, parce que ces
       identifiants ne doivent pas etre installes, a moins que le nom reel  de
       la  police  le  soit.  Si << real >> est utilise comme type, alors vous
       devez specifier les indications de la police.

       defoma_id_unregister permet de retirer un identifiant (ou  tous)  d'une
       police   d'une  base  de  reference.  Si  id  est  specifie,  seul  cet
       identifiant de la police specifiee est retire de la base  de  reference
       id_object. Sinon, tous les identifiants de la police sont retires.

       defoma_id_grep_cache  permet  de  rechercher  dans la base de reference
       id_object un certain identifiant, police, categorie, depid  ou  depfont
       et  de retourner la liste des index. Le parametre search-type peut etre
       << real >>, << alias >>, << subst >>,  << font >>,  << installed >>  ou
       << mark >>  pour limiter les sujets de la recherche. Les parametres id,
       font, type, category, depid  et  depfont  permettent  de  preciser  des
       valeurs   de  recherche  pour  ces  differents  champs.  Il  n'est  pas
       necessaire de preciser aucun de ces parametres.

       defoma_id_get_hints  permet  d'obtenir  les  indications   de   l'index
       specifie  dans la base de reference id_object. Si l'index d'un Alias ou
       d'une police de substitution (Substituted) est specifie, cette fonction
       retourne  les  indications de la police dont le nom reel (RealName) est
       specifie par le parametre origine  de  defoma_id_register  lorsque  cet
       alias ou cette police de substitution a ete enregistre.

       defoma_id_set permet de faire fournir un id a une police, ou d'empecher
       une police de fournir un identifiant. Le  parametre  flag  peut  valoir
       install  ou  exclude. defoma_id_unset permet de supprimer le drapeau de
       l'identifiant et de la police specifies.

EXEMPLES

       # Ouvre une base de reference avec << test >> comme suffixe.
       $Id = defoma_id_open_cache('test');

       # enregistrement des identifiants avec la commande register.
       my $police = shift;
       my $h = parse_hints_start('Alias', @_);
       my $nom_police = $h->{FontName};
       my @alias = split(/ /, $h->{Alias});
       my $pri = $h->{Priority};

       defoma_id_register($Id,
                          type => 'real',
                          font => $police,
                          id => $nom_police,
                          priority => $pri,
                          hints => join(' ', @_));

       foreach my $i (@alias) {
         defoma_id_register($Id,
                            type => 'alias',
                            font => $police,
                            id => $i,
                            priority => $pri,
                            origin => $nom_police);
       }

       # retire des identifiants.
       defoma_id_unregister($Id, type => 'alias', font => $police);
       defoma_id_unregister($Id, type => 'real', font => $police);

       # fermeture d'une base de reference
       defoma_id_close_cache($Id);

       # liste des index de polices ayant << Helvetica >> comme identifiant.
       my @liste = defoma_id_grep_cache($Id, 'installed', id => 'Helvetica');

VOIR AUSSI

       defoma(1). Defoma::Font(1). Defoma::Subst(1).

TRADUCTION

       Ce document est une traduction, realisee par  Nicolas  Francois  le  29
       juillet 2005 et mise a jour par Cyril Brulebois en janvier 2007.

       L'equipe  de  traduction a fait le maximum pour realiser une adaptation
       francaise de qualite.

       La version anglaise  la  plus  a  jour  de  ce  document  est  toujours
       consultable en ajoutant l'option << -L C >> a la commande man.

       N'hesitez  pas  a  signaler  a  l'auteur  ou  a  la liste de traduction
       <debian-l10n-french@lists.debian.org>, selon le cas, toute erreur  dans
       cette page de manuel.

                                March  4, 2001                 Defoma::Id(3pm)