TABLE OF CONTENTS

lha.library/ArcCompatibility
lha.library/ArchiveAdd
lha.library/ArchiveCheck
lha.library/ArchiveDelete
lha.library/ArchiveExtract
lha.library/ArchiveFreshen
lha.library/ArchiveList
lha.library/ArchiveListBegin
lha.library/ArchiveListEnd
lha.library/ArchiveRename
lha.library/ArchiveUpdate
lha.library/BumpArcName
lha.library/GetArcMasks
lha.library/GetArcNames
lha.library/GetArcPattern
lha.library/GetArcProperties
lha.library/ResidentArcCmd
lha.library/RunResidentArcCmd
lha.library/UnResidentArcCmd
lha.library/ArcCompatibility                     lha.library/ArcCompatibility

    NAME

	ArcCompatibility - imposta dei flag di compatibilita'            (V1)

    SYNOPSIS

	vecchiflag = ArcCompatibility(maschera,flag)
	  d0                             d0     d1

	ULONG ArcCompatibility ( ULONG, ULONG )

    FUNCTION

	imposta dei flag in un registro globale per controllare eventuali
	comportamenti anomali del programma archiviatore; ogni
	archiviatore ha il suo set privato e non intercambiabile di flag.
	un flag a 0 indica il comportamento normalmente tenuto dal
	programma, un flag a 1 indica un comportamento alternativo fornito
	dalla libreria

    DISCUSSION

	alcuni archiviatori hanno dei bug o dei comportamenti anomali,
	LhA di Stefan Boberg ha le seguenti opzioni:

	LHAF_SUFFIX  gli archivi lha possono avere due estensioni.
	             normalmente si utilizza ".lha", ma alcuni vecchi
	archivi usano ".lzh". 0 sta per ".lha"; 1 sta per ".lzh"

	LHAF_STOPDOT il programma LhA non e' in grado di trovare file che
	             contengono punti nel nome del file se non si
	specifica anche l'estensione, analogamente non aggiunge
	automaticamente l'estensione se il nome del file contiene gia' un
	punto. Con questo flag a 0 la funzione BumpArcName() aggiungera'
	l'estensione alla fine del nome del file o in corrispondenza
	dell'ultimo punto nel nome del file; Con questo flag a 0 la
	funzione BumpArcName() aggiungera' l'estensione alla fine del nome
	del file o in corrispondenza del primo punto nel nome del file

	LHAF_HUNDRED il programma LhA non supporta archivi multivolume
	             composti da oltre 100 file. Al 101esimo file, LhA
	comincia a creare nomi di file composti solo dall'estensione.  Con
	questo flag a 0 la funzione BumpArcName() eliminera' il nome del
	file con estensioni piu' lunghe di 3 caratteri, con questo flag a
	1 la funzione BumpArcName() lascera' inalterata la radice del
	nome. Attivando questo flag e' possibile perdere quasi totalmente
	la compatibilita' con il programma LhA di Stefan Boberg

    INPUT

	MASCHERA: i bit a 1 verranno impostati ai valori dei bit
	corrispondenti in flag, i bit a 0 non verranno modificati

	FLAG: il nuovo stato dei bit di compatibilita'. solo i bit
	corrispondenti ai bit a 1 in maschera verranno modificati

    OUTPUT

	lo stato precedente del registro flag

    EXAMPLES

	ArcCompatibility(0,0) legge lo stato del registro senza variarlo
	ArcCompatibility(2,2) imposta ad 1 il bit 2
	ArcCompatibility(3,0) imposta a 0 i bit 1 e 2

    SEE ALSO

	GetArcNames()

lha.library/ArchiveAdd                                 lha.library/ArchiveAdd

    NAME

	ArchiveAdd - aggiunge un nuovo file ad un archivio               (V1)

    SYNOPSIS

	errore = ArchiveAdd(stdin,stdout,archivio,tag)
	  d0                 d0     d1      a0     a1

	LONG ArchiveAdd ( BPTR , BPTR , STRPTR , APTR )

    FUNCTION

	Aggiunge un file ad un archivio eseguendo in una shell separata
	l'archiviatore precedentemente reso residente da ResidentArcCmd()
	e attendendone il termine.  se l'archiviatore non e' residente la
	funzione fallisce con codice di errore -1
	Il file verra' aggiunto solo se non gia' presente nell'archivio,
	sara' possibile specificare un nuovo nome del file all-interno
	dell'archivio attraverso ARC_NewName (se ARCF_ADDPATH e' TRUE)

    INPUT

	STDIN: un file handle di input, l'apertura e la chiusura sono a
	cura del chiamante, un valore NULL corrisponde all'apertura di
	"NIL:"

	STDOUT: un file handle di output, l'apertura e la chiusura sono a
	cura del chiamante, un valore NULL corrisponde all'apertura di
	"NIL:"

	ARCHIVIO: nome dell'archivio da modificare

	TAGS: taglist composta dai seguenti item:

	ARC_FileName	nome del file (aptr al nome)
	ARC_WorkDir	dir di lavoro temporanea (aptr al nome)
	ARC_MultiSize	dimensione in KB dei singoli volumi (long)
	ARC_Case	converte in maiuscolo se >0, in minuscolo se <0
	ARC_EnableWild	ARC_FileName va interpretato come espressione wildcard
	ARC_Header	livello dell'header
	ARC_Quiet	livello di verbosita'
	ARC_Recurse	ARC_FileName e' una espressione che contiene nomi di dir
	ARC_StoreMode	livello di compressione
	ARC_IgnorePath	tralascia il path se <>0
	ARC_NewName	nuovo nome del file (aptr al nome)

    OUTPUT

	il codice di ritorno primario del comando, se tale codice e'
	diverso da zero e' lecito chiamare la funzione dos.library/IoErr()
	per ottenere un eventuale codice secondario impostato dal comando.
	un errore nei parametri della funzione viene indicato dal valore
	-1, il successo viene indicato dal valore 0

    SEE ALSO

	RunResidentArcCmd(), dos.library/IoErr()

lha.library/ArchiveCheck                             lha.library/ArchiveCheck

    NAME

	ArchiveCheck - controlla l'integrita' di un archivio             (V1)

    SYNOPSIS

	errore = ArchiveCheck(stdin,stdout,archivio,tag)
	  d0                   d0     d1      a0     a1

	LONG ArchiveCheck ( BPTR , BPTR , STRPTR , APTR )

    FUNCTION

	Controlla l'integrita' di un archivio eseguendo in una shell
	separata l'archiviatore precedentemente reso residente da
	ResidentArcCmd() e attendendone il termine.  se l'archiviatore non
	e' residente la funzione fallisce con codice di errore -1

    INPUT

	STDIN: un file handle di input, l'apertura e la chiusura sono a
	cura del chiamante, un valore NULL corrisponde all'apertura di
	"NIL:"

	STDOUT: un file handle di output, l'apertura e la chiusura sono a
	cura del chiamante, un valore NULL corrisponde all'apertura di
	"NIL:"

	ARCHIVIO: nome dell'archivio da modificare

	TAGS: taglist composta dai seguenti item:

	ARC_FileName	nome del file (aptr al nome)
	ARC_WorkDir	dir di lavoro temporanea (aptr al nome)
	ARC_EnableWild	ARC_FileName va interpretato come espressione wildcard
	ARC_Quiet	livello di verbosita'
	ARC_Recurse	ARC_FileName e' una espressione che contiene nomi di dir

    OUTPUT

	il codice di ritorno primario del comando, se tale codice e'
	diverso da zero e' lecito chiamare la funzione dos.library/IoErr()
	per ottenere un eventuale codice secondario impostato dal comando.
	un errore nei parametri della funzione viene indicato dal valore
	-1, il successo viene indicato dal valore 0

    SEE ALSO

	RunResidentArcCmd(), dos.library/IoErr()

lha.library/ArchiveDelete                           lha.library/ArchiveDelete

    NAME

	ArchiveDelete - rimuove un file da un archivio                   (V1)

    SYNOPSIS

	errore = ArchiveDelete(stdin,stdout,archivio,tag)
	  d0                    d0     d1      a0     a1

	LONG ArchiveDelete ( BPTR , BPTR , STRPTR , APTR )

    FUNCTION

	Elimina un file da un archivio eseguendo in una shell separata
	l'archiviatore precedentemente reso residente da ResidentArcCmd()
	e attendendone il termine.  se l'archiviatore non e' residente la
	funzione fallisce con codice di errore -1

    INPUT

	STDIN: un file handle di input, l'apertura e la chiusura sono a
	cura del chiamante, un valore NULL corrisponde all'apertura di
	"NIL:"

	STDOUT: un file handle di output, l'apertura e la chiusura sono a
	cura del chiamante, un valore NULL corrisponde all'apertura di
	"NIL:"

	ARCHIVIO: nome dell'archivio da modificare

	TAGS: taglist composta dai seguenti item:

	ARC_FileName	nome del file (aptr al nome)
	ARC_WorkDir	dir di lavoro temporanea (aptr al nome)
	ARC_EnableWild	ARC_FileName va interpretato come espressione wildcard
	ARC_Quiet	livello di verbosita'
	ARC_Recurse	ARC_FileName e' una espressione che contiene nomi di dir

    OUTPUT

	il codice di ritorno primario del comando, se tale codice e'
	diverso da zero e' lecito chiamare la funzione dos.library/IoErr()
	per ottenere un eventuale codice secondario impostato dal comando.
	un errore nei parametri della funzione viene indicato dal valore
	-1, il successo viene indicato dal valore 0

    SEE ALSO

	RunResidentArcCmd(), dos.library/IoErr()

lha.library/ArchiveExtract                         lha.library/ArchiveExtract

    NAME

	ArchiveExtract - estrae un file da un archivio                   (V1)

    SYNOPSIS

	errore = ArchiveExtract(stdin,stdout,archivio,tag)
	  d0                     d0     d1      a0     a1

	LONG ArchiveExtract ( BPTR , BPTR , STRPTR , APTR )

    FUNCTION

	Estrae un file da un archivio eseguendo in una shell separata
	l'archiviatore precedentemente reso residente da ResidentArcCmd()
	e attendendone il termine.  se l'archiviatore non e' residente la
	funzione fallisce con codice di errore -1

    INPUT

	STDIN: un file handle di input, l'apertura e la chiusura sono a
	cura del chiamante, un valore NULL corrisponde all'apertura di
	"NIL:"

	STDOUT: un file handle di output, l'apertura e la chiusura sono a
	cura del chiamante, un valore NULL corrisponde all'apertura di
	"NIL:"

	ARCHIVIO: nome dell'archivio da modificare

	TAGS: taglist composta dai seguenti item:

	ARC_FileName	nome del file (aptr al nome)
	ARC_WorkDir	dir di lavoro temporanea (aptr al nome)
	ARC_Case	converte in maiuscolo se >0, in minuscolo se <0
	ARC_Header	livello dell'header
	ARC_Quiet	livello di verbosita'
	ARC_Recurse	ARC_FileName e' una espressione che contiene nomi di dir
	ARC_StoreMode	livello di compressione
	ARC_IgnorePath	tralascia il path se <>0
	ARC_NewName	nuovo nome del file (aptr al nome)

    OUTPUT

	il codice di ritorno primario del comando, se tale codice e'
	diverso da zero e' lecito chiamare la funzione dos.library/IoErr()
	per ottenere un eventuale codice secondario impostato dal comando.
	un errore nei parametri della funzione viene indicato dal valore
	-1, il successo viene indicato dal valore 0

    SEE ALSO

	RunResidentArcCmd(), dos.library/IoErr()

lha.library/ArchiveFreshen                         lha.library/ArchiveFreshen

    NAME

	ArchiveFreshen - aggiunge un file ad un archivio se piu' recente (V6)

    SYNOPSIS

	errore = ArchiveFreshen(stdin,stdout,archivio,tag)
	  d0                     d0     d1      a0     a1

	LONG ArchiveFreshen ( BPTR , BPTR , STRPTR , APTR )

    FUNCTION

	Aggiunge un file ad un archivio eseguendo in una shell separata
	l'archiviatore precedentemente reso residente da ResidentArcCmd()
	e attendendone il termine.  se l'archiviatore non e' residente la
	funzione fallisce con codice di errore -1
	Il file verra' aggiunto solo se assente dall'archivio o se un file
	con lo stesso nome nell'archivio e' piu' vecchio, sara' possibile
	specificare un nuovo nome del file all-interno dell'archivio
	attraverso ARC_NewName (se ARCF_ADDPATH e' TRUE)

    INPUT

	STDIN: un file handle di input, l'apertura e la chiusura sono a
	cura del chiamante, un valore NULL corrisponde all'apertura di
	"NIL:"

	STDOUT: un file handle di output, l'apertura e la chiusura sono a
	cura del chiamante, un valore NULL corrisponde all'apertura di
	"NIL:"

	ARCHIVIO: nome dell'archivio da modificare

	TAGS: taglist composta dai seguenti item:

	ARC_FileName	nome del file (aptr al nome)
	ARC_WorkDir	dir di lavoro temporanea (aptr al nome)
	ARC_MultiSize	dimensione in KB dei singoli volumi (long)
	ARC_Case	converte in maiuscolo se >0, in minuscolo se <0
	ARC_EnableWild	ARC_FileName va interpretato come espressione wildcard
	ARC_Header	livello dell'header
	ARC_Quiet	livello di verbosita'
	ARC_Recurse	ARC_FileName e' una espressione che contiene nomi di dir
	ARC_StoreMode	livello di compressione
	ARC_IgnorePath	tralascia il path se <>0
	ARC_NewName	nuovo nome del file (aptr al nome)

    OUTPUT

	il codice di ritorno primario del comando, se tale codice e'
	diverso da zero e' lecito chiamare la funzione dos.library/IoErr()
	per ottenere un eventuale codice secondario impostato dal comando.
	un errore nei parametri della funzione viene indicato dal valore
	-1, il successo viene indicato dal valore 0

    SEE ALSO

	RunResidentArcCmd(), dos.library/IoErr()

lha.library/ArchiveList                               lha.library/ArchiveList

    NAME

	ArchiveList - mostra il prossimo file contenuto nell'archivio    (V1)

    SYNOPSIS

	errore = ArchiveList(anchor)
	  d0                   d0

	LONG ArchiveList ( APTR )

    FUNCTION

	riempie la struttura ArcAnchor con i dati riguardanti il prossimo
	file, directory o link nell'archivio.  L'unico modo legale di
	creare e distuggere strutture ArcAnchor e' l'uso delle funzioni
	ArchiveListBegin() e ArchiveListEnd() della stessa libreria di cui
	si intende usare ArchiveList(). L'unico modo legale di compilare
	una lista ArcAnchor e' utilizzare questa funzione; la struttura
	ArcAnchor e' completamente privata, questo significa che non e'
	possibile esportarne i puntatori: per conservare una stringa si
	dovra' duplicare l'intera stringa e non solo il suo puntatore.

    INPUT

	ANCHOR: valore restituito da ArchiveListBegin()

    OUTPUT

	il codice di ritorno primario del comando, se tale codice e'
	diverso da zero e' lecito chiamare la funzione dos.library/IoErr()
	per ottenere un eventuale codice secondario impostato dal comando.
	il termine dell'archivio viene indicato dal valore -1, il successo
	viene indicato dal valore 0

    SEE ALSO

	ArchiveListBegin(), ArchiveListEnd(), RunResidentArcCmd(), dos.library/IoErr()

lha.library/ArchiveListBegin                     lha.library/ArchiveListBegin

    NAME

	ArchiveListBegin - alloca una struttura ArcAnchor                (V1)

    SYNOPSIS

	anchor = ArchiveListBegin(stdin,stdout,archivio,tag)
	  d0                       d0     d1      a0     a1

	APTR ArchiveListBegin ( BPTR , BPTR , STRPTR , APTR )

    FUNCTION

	Crea e prepara una struttura a sola lettura che potra' essere
	scritta solo dalla funzione ArchiveList().  L'unico modo legale di
	creare e distuggere strutture ArcAnchor e' l'uso delle funzioni
	ArchiveListBegin() e ArchiveListEnd() della stessa libreria di cui
	si intende usare ArchiveList()

    INPUT

	STDIN: un file handle di input, l'apertura e la chiusura sono a
	cura del chiamante, un valore NULL corrisponde all'apertura di
	"NIL:"

	STDOUT: un file handle di output, l'apertura e la chiusura sono a
	cura del chiamante, un valore NULL corrisponde all'apertura di
	"NIL:"

	ARCHIVIO: nome dell'archivio da esaminare

	TAGS: taglist composta dai seguenti item:

	ARC_WorkDir	dir di lavoro temporanea (aptr al nome)
	ARC_Quiet	livello di verbosita'

    OUTPUT

	un puntatore ad una struttura ArcAchor gia' inizializzata per
	l'uso con ArchiveList() o NULL in caso di errore. La causa
	dell'errore puo' essere richiesta attraverso una chiamata a
	dos.library/IoErr().

    SEE ALSO

	ArchiveList(), ArchiveListEnd(), dos.library/IoErr()

lha.library/ArchiveListEnd                         lha.library/ArchiveListEnd

    NAME

	ArchiveListEnd - libera una struttura ArcAnchor                  (V1)

    SYNOPSIS

	successo = ArchiveListEnd(anchor)
	  d0                        d0

	BOOL ArchiveListEnd ( APTR )

    FUNCTION

	Libera una struttura ArcAnchor precedentemente creata da
	ArchiveListBegin(). L'unico modo legale di creare e distuggere
	strutture ArcAnchor e' l'uso delle funzioni ArchiveListBegin() e
	ArchiveListEnd() della stessa libreria di cui si intende usare
	ArchiveList()

    DISCUSSION

	In caso di insuccesso e' possibile consultare l'errore secondario
	con dos.library/IoErr() e proporlo in un system requster per
	delegare all'operatore la decisione se sia il caso di riprovare a
	chiamare questa funzione

    INPUT

	ANCHOR: valore restituito da ArchiveListBegin()

    OUTPUT

	DOSTRUE (non zero) indica successo, DOSFALSE (zero) indica un
	errore

    SEE ALSO

	ArchiveList(), dos.library/IoErr()

lha.library/ArchiveRename                           lha.library/ArchiveRename

    NAME

	ArchiveRename - rinomina un file in un archivio                  (V1)

    SYNOPSIS

	errore = ArchiveRename(stdin,stdout,archivio,tag)
	  d0                    d0     d1      a0     a1

	LONG ArchiveRename ( BPTR , BPTR , STRPTR , APTR )

    FUNCTION

	Rinomina un file in un archivio eseguendo in una shell separata
	l'archiviatore precedentemente reso residente da ResidentArcCmd()
	e attendendone il termine.  se l'archiviatore non e' residente la
	funzione fallisce con codice di errore -1

    INPUT

	STDIN: un file handle di input, l'apertura e la chiusura sono a
	cura del chiamante, un valore NULL corrisponde all'apertura di
	"NIL:"

	STDOUT: un file handle di output, l'apertura e la chiusura sono a
	cura del chiamante, un valore NULL corrisponde all'apertura di
	"NIL:"

	ARCHIVIO: nome dell'archivio da modificare

	TAGS: taglist composta dai seguenti item:

	ARC_FileName	nome del file (aptr al nome)
	ARC_WorkDir	dir di lavoro temporanea (aptr al nome)
	ARC_EnableWild	ARC_FileName va interpretato come espressione wildcard
	ARC_Quiet	livello di verbosita'
	ARC_Recurse	ARC_FileName e' una espressione che contiene nomi di dir
	ARC_NewName	nuovo nome del file (aptr al nome)

    OUTPUT

	il codice di ritorno primario del comando, se tale codice e'
	diverso da zero e' lecito chiamare la funzione dos.library/IoErr()
	per ottenere un eventuale codice secondario impostato dal comando.
	un errore nei parametri della funzione viene indicato dal valore
	-1, il successo viene indicato dal valore 0

    SEE ALSO

	RunResidentArcCmd(), dos.library/IoErr()

lha.library/ArchiveUpdate                           lha.library/ArchiveUpdate

    NAME

	ArchiveUpdate - sostituisce un file in un archivio               (V6)

    SYNOPSIS

	errore = ArchiveUpdate(stdin,stdout,archivio,tag)
	  d0                    d0     d1      a0     a1

	LONG ArchiveUpdate ( BPTR , BPTR , STRPTR , APTR )

    FUNCTION

	Aggiunge un file ad un archivio eseguendo in una shell separata
	l'archiviatore precedentemente reso residente da ResidentArcCmd()
	e attendendone il termine.  se l'archiviatore non e' residente la
	funzione fallisce con codice di errore -1
	Il file verra' aggiunto in ogni caso, eventualmente sovrascrivendo
	un file con lo stesso nome all'interno dell'archivio, sara'
	possibile specificare un nuovo nome del file all-interno
	dell'archivio attraverso ARC_NewName (se ARCF_ADDPATH e' TRUE)

    INPUT

	STDIN: un file handle di input, l'apertura e la chiusura sono a
	cura del chiamante, un valore NULL corrisponde all'apertura di
	"NIL:"

	STDOUT: un file handle di output, l'apertura e la chiusura sono a
	cura del chiamante, un valore NULL corrisponde all'apertura di
	"NIL:"

	ARCHIVIO: nome dell'archivio da modificare

	TAGS: taglist composta dai seguenti item:

	ARC_FileName	nome del file (aptr al nome)
	ARC_WorkDir	dir di lavoro temporanea (aptr al nome)
	ARC_MultiSize	dimensione in KB dei singoli volumi (long)
	ARC_Case	converte in maiuscolo se >0, in minuscolo se <0
	ARC_EnableWild	ARC_FileName va interpretato come espressione wildcard
	ARC_Header	livello dell'header
	ARC_Quiet	livello di verbosita'
	ARC_Recurse	ARC_FileName e' una espressione che contiene nomi di dir
	ARC_StoreMode	livello di compressione
	ARC_IgnorePath	tralascia il path se <>0
	ARC_NewName	nuovo nome del file (aptr al nome)

    OUTPUT

	il codice di ritorno primario del comando, se tale codice e'
	diverso da zero e' lecito chiamare la funzione dos.library/IoErr()
	per ottenere un eventuale codice secondario impostato dal comando.
	un errore nei parametri della funzione viene indicato dal valore
	-1, il successo viene indicato dal valore 0

    SEE ALSO

	RunResidentArcCmd(), dos.library/IoErr()

lha.library/BumpArcName                               lha.library/BumpArcName

    NAME

	BumpArcName - aggiunge o modifica il suffisso di un archivio     (V1)

    SYNOPSIS

	destinazione = BumpArcName(modo,sorgente,destinazione)
	     d0                     d0     a0         a1

	APTR BumpArcName ( ULONG, LONG, APTR, APTR )

    FUNCTION

	quando il modo e' BUMPMODE_FIRST, la stringa sorgente verra'
	copiata in destinazione con l'aggiunta del suffisso tipico
	dell'archiviatore; se il suffisso e' gia' presente non verra'
	aggiunto nulla.
	quando il modo e' BUMPMODE_MORE, la stringa sorgente verra'
	copiata ed il suo suffisso incrementato; se il suffisso non e'
	presente verra' aggiunto quello tipico

    DISCUSSION

	questa funzione tiene conto di tre flag impostati da
	ArcCompatibility():  LHAF_SUFFIX, LHAF_STOPDOT e LHAF_HUNDRED

    INPUT

	MODO: BUMPMODE_FIRST oppure BUMPMODE_MORE

	SORGENTE: puntatore ad una stringa

	DESTINAZIONE: puntatore al buffer di destinazione. il buffer di
	destinazione deve essere almeno BUMPSIZE byte piu' lungo del
	sorgente e puo' eventualmente coincidere con il sorgente

    OUTPUT

	copia del parametro destinazione

    SEE ALSO

	ArcCompatibility()

lha.library/GetArcMasks                               lha.library/GetArcMasks
  
    NAME

	GetArcMasks - richiede i raggruppamenti di RCT_#?                (V3)

    SYNOPSIS

	maschera = GetArcMasks()
	   d0

	ULONG GetArcMasks ( VOID )

    FUNCTION

	nel caso GetArcProperties() ritorni ARCF_MANYBIN e' necessario
	residentare piu' comandi:  in tal caso ACT_GENERIC non e'
	sufficiente per chiamare ResidentArcCmd() e RunResidentArcCmd().
	Questa funzione ritorna una maschera minima di bit dove ciascun
	bit a 1 indica la necessita' di residentare un diverso comando.

    DISCUSSION

	Ciascun bit necessita un particolare comando, ma uno stesso
	comando puo' servire piu' bit, percio' ciascun bit ritornato a 1
	andra' passato da solo ad ResidentArcCmd(), i bit impostati a 0
	vanno ignorati.

    OUTPUT

	maschera di bit RCT_#?

lha.library/GetArcNames                               lha.library/GetArcNames

    NAME

	GetArcNames - richiede le stringhe dipendenti dall'archiviatore  (V5)

    SYNOPSIS

	maschera = GetArcNames(id)
	   d0                  d0

	APTR GetArcNames ( ULONG )

    FUNCTION

	attualmente restituisce i nomi dei bit utilizzati da
	GetArcCompatibility(), in futuro potra' ritornare altre stringhe
	dipendenti dalla libreria di archiviazione

    DISCUSSION

	permette di creare interfacce grafiche o testuali per controllare
	i bit di GetArcCompatibility() usando i loro nomi. Un nome di bit
	e' garantito essere composto da sole lettere minuscole, da numeri,
	o dal simbolo di underscore (_), e non essere piu' lungo di 20
	byte (compreso il terminatore).

    INPUT

	ID:  attualmente GAN_COMPBITS piu' il numero del bit ARCF_#?
	desiderato (0-31)

    OUTPUT

	se il bit esiste, un puntatore ad una stringa a sola lettura, NULL
	se il bit non esiste.

    SEE ALSO

	GetArcCompatibility()

lha.library/GetArcPattern                           lha.library/GetArcPattern

    NAME

	GetArcPattern - richiede il pattern dei file archivio            (V1)

    SYNOPSIS

	pattern = GetArcPattern(flag)
	  d0                     d0

	APTR GetArcPattern ( ULONG )

    FUNCTION

	richiede un pattern case-insensisitive per la ricerca dei file
	archivio. normalmente la funzione restituisce i pattern gia'
	processati da dos.library/ParsePatternNoCase(), ma e' possibile
	richiedere un pattern ancora da processare specificando il flag
	PATF_ASCII

    DISCUSSION

	il flag PATF_ASCII puo' tornare utile per i filerequester della
	asl.library.  Combinando i flag PATF_FIRST e PATF_MULTI il pattern
	riconoscera' sia i file che appartengono alla classe "first" che
	quelli che appartengono alla classe "multi"

    INPUT

	PATF_FIRST   pattern per trovare file unici o i primi file di
	             archivi multivolume
	PATF_MULTI   pattern per trovare file di archivi multivolume
	             successivi al primo
	PATF_ASCII   richiede il pattern in ascii

    OUTPUT

	un puntatore ad una stringa a sola lettura. nel caso vengano
	specificati entrambi i flag PATF_FIRST e PATF_MULTI, verra'
	restituito un pattern in grado di filtrare sia i file singoli sia
	i file multivolume

    SEE ALSO

	dos.library/ParsePatternNoCase()

lha.library/GetArcProperties                     lha.library/GetArcProperties

    NAME

	GetArcProperties - richiede le proprieta' dell'archiviatore      (V4)

    SYNOPSIS

	maschera = GetArcProperties(modo)
	   d0                        d0

	ULONG GetArcProperties ( ULONG )

    FUNCTION

	richiede le proprieta' dell'archivio e dell'archiviatore. il
	valore restituito e' una maschera in cui i bit attivi indicano le
	capacita' della libreria, che puo' sia non implementare funzioni
	di un particolare archiviatore, sia aggiungere funzionalita' ad un
	archiviatore che ne sia privo

    DISCUSSION

	permette di disabilitare menu' o pulsanti fornendo in anticipo le
	funzioni supportate dall'archiviatore.  le funzioni non
	implementate ritornano -1 come codice di errore e impostano
	l'errore secondario (prelevabile con dos.library/IoErr()) a
	ERROR_ACTION_NOT_KNOWN, sono quindi sicure da chiamare anche se
	non fanno assolutamente nulla

    INPUT

	MODO:  la libreria e' in grado di eseguire certe azioni solo
	quando tutti i comandi che compongono l'archiviatore sono stati
	resi residenti.
	APM_THEORY	capacita' della libreria in stato ottimale,
			utilizzabile per conoscere a priori le
			possibilita' offerte dalla libreria
	APM_PRACTICE	capacita' della libreria allo stato attuale,
			utilizzabile (confrontato con il dato richiesto
			con APM_THEORY) per conoscere le possibilita'
			offerte dalla libreria qualora il caricamento di
			un eseguibile non sia andato a buon fine

    OUTPUT

	proprieta' dell'archivio. un archivio e' in grado di

	ARCF_COMMENT	mantenere il commento del file
	ARCF_DATE	mantenere data e ora del file
	ARCF_LEVEL	usare diversi livelli di compressione
	ARCF_MULTI	essere spezzato in piu' file
	ARCF_PASSWORD	proteggere i file con password
	ARCF_PROTECT	mantenere i bit di protezione
	ARCF_TREE	contenere piu' file

	proprieta' dell'archiviatore. l'archiviatore e' in grado di

	ARCF_ADDPATH	aggiungere file ad un archivio cambiando il path
	ARCF_CAT	aggiungere file ad un archivio
	ARCF_CREATE	creare nuovi archivi
	ARCF_DELETE	eliminare file da un archivio
	ARCF_EXTRACT	estrarre file compressi
	ARCF_FRESHEN	aggiornare file gia' presenti nell'archivio
	ARCF_LIST	vedere la lista dei file in un archivio
	ARCF_MANYBIN	essere composto da piu' programmi
	ARCF_RENAME	rinominare file in un archivio
	ARCF_REPLACE	sostituire file gia' presenti nell'archivio
	ARCF_TEST	controllare l'integrita' di un archivio

lha.library/ResidentArcCmd                         lha.library/ResidentArcCmd

    NAME

	ResidentArcCmd - carica l'archiviatore in memoria                (V3)

    SYNOPSIS

	errore = ResidentArcCmd(nomefile,tipo)
	  d0                       a0     d0

	LONG ResidentArcCmd ( STRPTR , LONG )

    FUNCTION

	rende residente e pubblicamente accessibile l'archiviatore. se il
	comando e' gia' residente la funzione esce subito

    DISCUSSION

	il comando sara' accessibile in tutte le shell con il nome "LhA"

    INPUT

	NOMEFILE:  il path assoluto ed il nome del file da caricare.  se
	il path non viene specificato o e' relativo, verra' utilizzata la
	directory corrente del chiamante come radice di partenza

	TIPO: il tipo d'azione che il comando puo' eseguire. per questa
	libreria (che non ha il flag ARCF_MANYBIN) l'unico valore legale
	e' RCT_GENERIC. Per le librerie con il flag ARCF_MANYBIN attivo,
	si dovra' fare in modo che tutte le proprieta' dell'archiviatore
	definite in ARCF_#? abbiano il comando corrispondente definito
	attraverso la maschera restituita da GetArcMasks()

    OUTPUT

	il codice di errore dos che ha impedito il caricamento, 0 indica
	successo

    SEE ALSO

	UnResidentArcCmd(), dos.library/IoErr()

lha.library/RunResidentArcCmd                   lha.library/RunResidentArcCmd

    NAME

	RunResidentArcCmd - esegue l'archiviatore dalla memoria           (V3)

    SYNOPSIS

	errore = RunResidentArcCmd(stdin,stdout,argomenti,tipo)
	  d0                        d0     d1      a0      a1

	LONG RunResidentArcCmd ( BPTR , BPTR , STRPTR , LONG )

    FUNCTION

	esegue in una shell separata l'archiviatore precedentemente reso
	residente da ResidentArcCmd() e ne attende il termine.  se
	l'archiviatore non e' residente la funzione fallisce con codice di
	errore -1

    DISCUSSION

	questa funzione esegue il comando residente "LhA"

    INPUT

	STDIN: un file handle di input, l'apertura e la chiusura sono a
	cura del chiamante. un valore NULL corrisponde all'apertura di
	"NIL:"

	STDOUT: un file handle di output, l'apertura e la chiusura sono a
	cura del chiamante. un valore NULL corrisponde all'apertura di
	"NIL:"

	ARGOMENTI: argomenti della linea comandi da passare
	all'archiviatore, la stringa deve terminare con un carattere LF
	(ascii 10) seguito da un carattere EOS (ascii 0)

	TIPO: il tipo d'azione che il comando deve eseguire. per questa
	libreria (che non ha il flag ARCF_MANYBIN) l'unico valore legale
	e' RCT_GENERIC. Per le librerie con il flag ARCF_MANYBIN attivo,
	si dovra' utilizzare un solo bit RCT_#? corrispondente al
	programma necessario

    OUTPUT

	il codice di ritorno primario del comando, se tale codice e'
	diverso da zero e' lecito chiamare la funzione dos.library/IoErr()
	per ottenere un eventuale codice secondario impostato dal comando.
	un errore nei parametri della funzione viene indicato dal valore
	-1, il successo viene indicato dal valore 0

    NOTES

	questa funzione e' privata. non andrebbe chiamata dalle
	applicazioni, ma solamente dalle funzioni della libreria stessa

    SEE ALSO

	ResidentArcCmd(), dos.library/IoErr()

lha.library/UnResidentArcCmd                     lha.library/UnResidentArcCmd

    NAME

	UnResidentArcCmd - elimina l'archiviatore dalla memoria         (V3)

    SYNOPSIS

	errore = UnResidentArcCmd(tipo)
	  d0                       d0

	LONG UnResidentArcCmd ( LONG )

    FUNCTION

	elimina l'archiviatore dalla lista dei comandi residenti.  la
	funzione puo' fallire se l'archiviatore risulta in uso da
	qualcuno. se il comando non e' residente la funzione esce subito

    DISCUSSION

	la funzione rimuove il comando di shell con il nome "LhA"

    INPUT

	TIPO: il tipo d'azione che il comando puo' eseguire. per questa
	libreria (che non ha il flag ARCF_MANYBIN) l'unico valore legale
	e' RCT_GENERIC. Per le librerie con il flag ARCF_MANYBIN attivo,
	l'uso di RCT_GENERIC rimuovera' tutti i comandi residenti.

    OUTPUT

	il codice di errore DOS che ha impedito l'eliminazione, 0 indica
	successo

    SEE ALSO

	ResidentArcCmd(), dos.library/IoErr()

