IHDR (3I)     version 4.6.9     March 2022

User Intro    Prog Intro    Liste des programmes    Liste des manuels
Table of Contents


NAME

iputhline, igethline, idelhline, irephline, iwrcom, c_iwrcom, ifreehdr, iwrhis, c_iwrhis - opérations sur en-tête image.

SYNOPSIS

subroutine iwrcom(nf,buf)
integer nf, buf(1)

subroutine iwrhis(nf,buf)
integer nf, buf(1)

#include <inrimage/image.h>

int iputhline(nf,key,buf)
struct image *nf; char *key, *buf;

int igethline(nf,key,num,buf,size,realsize)
struct image *nf; char *key, *buf; int num, size, *realsize;

int idelhline(nf,key,num)
struct image *nf; char *key; int num;

int irephline(nf,key,num,buf)
struct image *nf; char *key, *buf; int num;

iwrcom_(anf,buf)
struct image **anf; char *buf;

c_iwrcom(nf,buf)
struct image *nf; char *buf;

int ifreehdr(nf)
struct image *nf

iwrhis_(anf,buf)
struct image **anf; char *buf;

c_iwrhis(nf,buf)
struct image *nf; char *buf;

DESCRIPTION

Dans tous les cas key est une chaine de caractères, terminée par un caractère nul, qui définit une clé associée au message à lire ou écrire. Si key commence par '#', il s'agit d'un commentaire, sinon son dernier caractère soit être '='.

iputhline écrit, dans l'en-tête de l'image nf, une chaine de caractères en concaténant key et buf. La chaine de buf s'arrête sur le 1er caractère '\\n' ou '\\0'.

-1 si pas assez de place libre.
-2 en cas d'erreur ou si key est une clé réservée et déjà présente.
numéro de la ligne crée si pas d'erreur.

igethline renvoie dans buf de taille size la fin de la 1ère ligne de l'en-tête (partie ascii) de l'image nf, qui commence par key, en remplaçant le '\\n' terminal par '\\0'. La recherche commence à la ligne num.
Si la réponse est de taille supérieure à size, elle sera tronquée, mais toujours terminée par '\0'.
key peut être quelconque, y compris vide (dans ce cas on aura la ligne num).
Retour :

-1 si aucune ligne ne convient.
numéro de la ligne suivante sinon.
realsize contiendra la longueur effective du message.

idelhline cherche, à partir du numéro num, la ligne de l'en-tête de l'image nf, qui commence par la chaine key et la supprime.
Retour :

-1 si pas de ligne trouvée.
-2 si key est incorrecte ou correspond à une clé réservée.
num si suppression effectuée (c'est-à-dire numéro de la prochaine ligne de l'en-tête).

irephline cherche, à partir du numéro num, la ligne de l'en-tête de l'image nf, qui commence par la chaine key et en remplace la fin par buf (terminé par '\\n' ou '\\0'). S'il n'en trouve pas, il ajoute la ligne key,buf (appelle iputhline).
Si key ne commence pas par '#', elle doit se terminer par '='. Elle ne doit pas être vide, mais peut être une clé réservée.
Retour :

-2 si key est incorrecte.
-3 si erreur (essai de remplacement d'un message d'histoire).
numéro de la ligne crée ou remplacée si tout va bien.

iwrcom, c_iwrcom écrivent le message buf (terminé par '\\n' ou '\\0') comme commentaire, c'est-à-dire en le faisant précéder de '#', dans l'en-tête de l'image nf.
iwrcom ne retourne rien, mais c_iwrcom retourne -1 s'il n'y a plus de place, et le numéro de ligne sinon.

iwrhis, c_iwrhis écrivent, dans l'en-tête de l'image nf, buf comme message d'histoire.
Retour :

-1 en cas d'erreur (plus de place).
0 si on a déjà écrit un message d'histoire dans la session en cours.
numéro d'évènement si tout va bien.

ifreehdr retourne la place libre (en nombre de caractères) dans la partie ascii de l'en-tête de l'image nf.

"SEE ALSO"

Intro(3i)