Date création : 27-03-2008 20:23:44
 Vous êtes dans : GNU/Linux Astuces / Pages man [Section3 - Sous-fonctions]
Defoma::Id
Index
- NOM
- SYNOPSIS
- DESCRIPTION
- TYPE D'IDENTIFIANTS
- DÉTAIL SUR LE FONCTIONNEMENT DE DEFOMA::ID
- FORMAT D'UNE BASE DE RÉFÉRENCE
- FONCTIONS
- EXEMPLES
- VOIR AUSSI
- TRADUCTION
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.
|