Provided by: defoma_0.11.12ubuntu1_all bug

NOM

       Defoma::Id - module Defoma pour la gestion des bases de référence.

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é,
       category => catégorie,
       origin => origine,
       depend => dépendance,
       hints => indications );

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

       @index = defoma_id_grep_cache( id_objet, type-recherché,
       id => identifiant,
       font => police,
       type => type,
       category => catégorie,
       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
       référence. Il fournit les fonctions listées ci-dessous, qui sont supposées  être  appelées
       par les scripts de configuration Defoma.

       Une  base  de  référence  est  une  sorte  de base de données dont le but est d'éviter les
       conflits de noms. Les  applications  accèdent  souvent  aux  polices  avec  leurs  propres
       identifiants, il est donc préférable 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 même identifiant. Les scripts de configuration
       automatique peuvent difficilement détecter quelle est la meilleure police pour  porter  le
       nom  d'un  identifiant,  ou même pour savoir si cette situation se produit. Defoma::Id est
       une aide pour résoudre ce type de problème.

       Voici comment Defoma::Id fonctionne dans les grandes lignes :
       1. Ouverture d'une base de référence 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 référence par Defoma::Id pour vérifier si  une  autre  police
       fournit  le même identifiant, et rappel du script afin de faire le choix le plus approprié
       de la police qui fournira l'identifiant, à l'aide des commandes do-install- et do-remove-.

TYPE D'IDENTIFIANTS

       Il peut gérer trois types d'identifiants : RealName, Alias et Substituted.

       RealName est le nom réel d'une police et est généralement pris dans l'indication FontName.
       Si  vous voulez enregistrer une police à une base de références, au moins un nom réel doit
       être enregistré. Vous pouvez fournir les indications aux options lorsque vous  enregistrez
       un RealName.
       Alias est un autre nom pour une police, qui est généralement pris dans l'indication Alias.
       Vous devez spécifier le nom réel (RealName) de la police avec le paramètre origine lorsque
       vous enregistrez un Alias.
       Substituted  est encore un autre nom d'une police, qui contrairement à Alias n'est ni pris
       dans les indications de la police, ni directement enregistré dans une  base  de  référence
       par les scripts de configuration Defoma. Il est plutôt pris dans une règle de substitution
       (subst-rule), qui est gérée par le module Defoma::Subst, et est enregistrée par le module.
       Si  vous voulez qu'une police particulière se substitue à un autre identifiant, vous devez
       enregistrer la police (et son nom réel) auprès d'un cache de  substitution  (subst-cache).
       Pour plus de détails, veuillez consulter la page de manuel Defoma::Subst.

DÉTAIL SUR LE FONCTIONNEMENT DE DEFOMA::ID

       L'enregistrement  et  le désenregistrement des identifiants d'une police sont généralement
       effectués 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 être effectués 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
       enregistrés dans une base de référence et comment il en sont retirés.

       1.Enregistrement
              Le  module  Defoma::Id enregistre l'identifiant, la police, le type, la priorité et
              encore d'autres informations dans une base de référence.

       1.2    Le module recherche les  polices  qui  fournissent  l'identifiant  de  la  base  de
              référence,  et  prend  la  première  d'entre  elles. Les noms réels (RealName) sont
              toujours prioritaires par rapport aux Alias, et les  Alias  par  rapport  aux  noms
              substitués (Substituted).

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

       1.4    Si une autre police est déjà marquée INSTALLED (installée) 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 succès  de  l'installation
              de  la police pour l'identifiant, le module marque l'identifiant et la police comme
              étant INSTALLED.

       2.Désenregistrement
              Si la police est installée 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 référence. Si l'identifiant
              est fourni par d'autres polices, le module recherche la  plus  prioritaire  d'entre
              elles, et l'installe comme mentionné dans la section 1.3 précédente.

       2.2    Le module retire l'entrée correspondant à l'identifiant et la police.

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

FORMAT D'UNE BASE DE RÉFÉRENCE

       Une base de référence contient huit champs pour chaque  entrée :  id  (identifiant),  font
       (police),  type,  priority  (priorité),  category  (catégorie),  depid,  depfont  et hints
       (indications).

       Le type représente le type d'une entrée à l'aide d'une combinaison de lettres. Une base de
       référence  gère  des  entrées  de  polices  et de marques. Ce dernier type d'entrée permet
       d'installer des polices moins prioritaires pour certains identifiants  (qui  sont  marqués
       USE - utilisé), ou pour conserver une police installée pour un certain identifiant (marqué
       comme EXCLUDE - exclu). Elles sont supposées être placées  par  les  utilisateurs,  et  ne
       doivent  pas  être  utilisées  dans  les  scripts  de configuration Defoma, juste pour une
       utilisation interne. Les entrées de polices  contiennent  des  informations  sur  certains
       identifiants d'une police et peuvent être utilisées dans les scripts.

       Le type consiste en deux ou trois lettres. La première lettre représente le type d'entrée,
       qui est soit S (pour les polices), soit M (pour les marques). Si la première lettre est un
       S,  ce qui signifie qu'il s'agit de l'entrée d'une police, la deuxième lettre peut être un
       r (nom réel), un a (un alias) ou un S (pour une police de substitution).  Si  la  première
       lettre  est un M, ce qui signifie qu'il s'agit de l'entrée d'une marque, la seconde lettre
       est soit un u (USE) soit un x (EXCLUDE). Pour les entrées de  polices  (dont  la  première
       lettre est un S), si la police et l'identifiant de l'entrée sont marqués INSTALLED, il y a
       une troisième lettre, qui est I.

       depid et depfont représentent les dépendances envers un identifiant  ou  une  police.  Une
       police  n'est  jamais  installée,  à  moins  que  la  police  depfont  soit installée pour
       l'identifiant depid. Les paramètres origine et depend de defoma_id_register affectent  ces
       champs. Si l'identifiant d'une police ne dépend d'aucun autre identifiant ou police, alors
       ces champs valent « . ».

       Le champ hints (indications) représente les indications d'un identifiant. Il est  spécifié
       par  l'argument indications de defoma_id_register. Vous devez utiliser defoma_id_get_hints
       pour accéder à la valeur de ce champ.

       Les champs de chaque entrée d'une base de référence 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'accéder à la police de  la  troisième
       entrée de l'id-object $ID.

       Voici un exemple de base de référence :

       # 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 également deux identifiants : Times-Roman comme RealName  et  Courier
       comme Alias.
       Deux  polices  ont  le même identifiant Courier, mais cette base de référence 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  référence.  Les  bases  de  référence
       dépendent  des  applications.  Les  scripts  de  configuration Defoma d'une application ne
       peuvent pas ouvrir les bases de référence d'une autre application. Chaque application peut
       avoir  plusieurs  bases  de référence, qui sont identifiées par un suffixe unique pour une
       application. Vous pouvez omettre le suffixe pour une application n'utilisant qu'une  seule
       base de référence. nom_paquet doit être omis dans la plupart des cas. La fonction retourne
       un objet id_object utilisé comme descripteur pour les opérations suivantes.

       defoma_id_close_cache permet de fermer une base de  référence.  En  interne,  cela  permet
       d'écrire le contenu d'une base de référence dans un fichier identifié par id_object.

       defoma_id_register  permet d'enregistrer une police et un de ses identifiants dans la base
       de référence id_object. Vous devez au moins fournir  les  paramètres  type,  font,  id  et
       priority. type peut prendre les valeurs « real », « alias » ou « subst » qui correspondent
       à des noms réels (RealName), des Alias, ou  des  polices  de  substitution  (Substituted),
       comme  mentionné  précédemment.  « subst »  ne  devrait  être  utilisé  que  par le module
       Defoma::Subst, ce qui ne laisse donc que le choix « real » et « alias ». Si « alias »  est
       utilisé  comme type de police, alors vous devez spécifier le nom réel de la police dans le
       paramètre origine. Il est obligatoire de spécifier  l'origine  pour  les  identifiants  ne
       correspondant pas à un nom réel, parce que ces identifiants ne doivent pas être installés,
       à moins que le nom réel de la police le soit. Si « real » est utilisé  comme  type,  alors
       vous devez spécifier les indications de la police.

       defoma_id_unregister permet de retirer un identifiant (ou tous) d'une police d'une base de
       référence. Si id est spécifié, seul cet identifiant de la police spécifiée est  retiré  de
       la base de référence id_object. Sinon, tous les identifiants de la police sont retirés.

       defoma_id_grep_cache  permet  de rechercher dans la base de référence id_object un certain
       identifiant, police, catégorie, depid ou depfont et de retourner la liste  des  index.  Le
       paramètre search-type peut être « real », « alias », « subst », « font », « installed » ou
       « mark » pour limiter les sujets de la recherche. Les paramètres id, font, type, category,
       depid  et  depfont  permettent  de  préciser  des valeurs de recherche pour ces différents
       champs. Il n'est pas nécessaire de préciser aucun de ces paramètres.

       defoma_id_get_hints permet d'obtenir les indications de l'index spécifié dans la  base  de
       référence  id_object.  Si l'index d'un Alias ou d'une police de substitution (Substituted)
       est spécifié, cette fonction retourne les indications  de  la  police  dont  le  nom  réel
       (RealName)  est  spécifié par le paramètre origine de defoma_id_register lorsque cet alias
       ou cette police de substitution a été enregistré.

       defoma_id_set permet de faire fournir un id à une police,  ou  d'empêcher  une  police  de
       fournir  un identifiant. Le paramètre flag peut valoir install ou exclude. defoma_id_unset
       permet de supprimer le drapeau de l'identifiant et de la police spécifiés.

EXEMPLES

       # Ouvre une base de référence 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 référence
       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, réalisée par Nicolas François le 29 juillet 2005 et mise à
       jour par Cyril Brulebois en janvier 2007.

       L'équipe  de  traduction  a  fait  le  maximum  pour  réaliser une adaptation française de
       qualité.

       La version anglaise la plus à jour de ce document est  toujours  consultable  en  ajoutant
       l'option « -L C » à la commande man.

       N'hésitez    pas    à    signaler    à    l'auteur   ou   à   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)