/***************************************************************************** Application ASH: ash.h (c) Pierre Adriaans 1994 ------------------------------------------------------------------------------ Include general. *****************************************************************************/ #ifndef _ASH_H_ #define _ASH_H_ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "keyboard.h" #include "screen.h" #include "clock.h" #include "answerbx.h" #include "printf.h" #include "inputbox.h" #include "listbox.h" #include "menus.h" #include "random.h" #include "dir.h" #define PROG_NAME "Pash 2.2" #define COPYRIGHT "(c) Pierre ADRIAANS 1994-95, all rights reserved." #define VERSION "Slackware Linux 1.1.59 binary." /*---------------------------------------------------------------------------- #defines pour compilation sur ULTRIX 4.3 (pas encore POSIX) ----------------------------------------------------------------------------*/ #ifndef ENOLINK #define ENOLINK -100 #endif #ifndef EMULTIHOP #define EMULTIHOP -101 #endif #ifndef MAXSIG #define MAXSIG 32 #endif /*---------------------------------------------------------------------------- Constantes et types divers ----------------------------------------------------------------------------*/ #define INIT_FILE ".pashrc" #define DUMMYSTR_SIZE 500 #define PATH_LENGTH 64 #define FILENAME_LENGTH 255 #define TAGMASK_LENGTH 30 /* Attributs d'affichage, en #defines. Remplacer par des variables dans le cas d'un fichier d'initialisation reprenant ces attributs */ #ifndef _ASH_SOURCE_CODE_ extern #endif char CmdLineNorm, MainWinNorm, MainWinInv, MainWinBold, MainWinTitle, MainWinTagRev, MenuNorm, MenuInv, AboutNorm, AboutInv, HelpNorm, HelpInv, HelpBold, FullInfoNorm, FullInfoInv, FullInfoBold, BugNorm, BugInv, ErrorNorm, ErrorInv, QuitNorm, QuitInv, SelectNorm, SelectInv, HistoryNorm, HistoryInv, UserMenuNorm, UserMenuInv, FileOpNorm, FileOpInv, FileOpBar, ConfirmNorm, ConfirmInv, DoingNorm, ProcessNorm, ProcessInv, SignalsNorm, SignalsInv, FindFileNorm, FindFileInv, FindFileSaveNorm, FindFileSaveInv, IPCNorm, IPCInv, OpOKNorm, OpOKInv, TreeNorm, TreeInv; /* Nbre maximal de fenetres ouvrables */ #define NB_MAX_WINS 4 /* Definition des fenetres */ struct AshWin_s { int ExtLig,ExtCol,ExtHeight,ExtLength, /* Dimensions exterieures */ IntLig,IntCol,IntHeight,IntLength; /* Portion utile */ }; typedef struct AshWin_s AshWin_t; /* Definition des zones inverses */ struct InvZone_s { int Lig, Col, Length; }; typedef struct InvZone_s InvZone_t; /* Ligne d'affichage de la ligne de commande */ #define CMD_LINE_LIG 24 /* Taille de la ligne de commande */ #define CMDLINE_SIZE 255 /* Taille du tampon de copie d'un fichier */ #define COPY_BUF_SIZE (BUFSIZ * 16) /* Structure de l'History (LLB insertion en tete) */ struct HistList_s { char *CmdLine; struct HistList_s *Suivant; struct HistList_s *Prec; }; typedef struct HistList_s HistList_t; /* Type de donnees de la liste de liason programme-extension */ #define EXT_FILE "pash.ext" #define EXT_MAX 20 #define PROG_MAX 64 struct ProgExt_s { char Ext[EXT_MAX]; char Prog[PROG_MAX]; struct ProgExt_s *Suivant; }; typedef struct ProgExt_s ProgExt_t; /* Type de donnees du menu utilisateur */ #define MNU_FILE "pash.mnu" #define OPTION_TAG ':' struct Command_s { char *Command; struct Command_s *Suivant; }; typedef struct Command_s Command_t; struct UserMenuEntry_s { char *EntryName; Command_t *Commands; struct UserMenuEntry_s *Suivant; }; typedef struct UserMenuEntry_s UserMenuEntry_t; /* Pour le tableau de (char *) */ #define NB_ARGS 50 /*---------------------------------------------------------------------------- Autres prototypes ----------------------------------------------------------------------------*/ int main(int,char *[]); void InitAsh(int); void ChangeNbWins(void); void DisplaySelection(int); void RedisplayWin(int); void GetNbTagged(DirList_t *,int *,int *); int GetNbEntries(DirList_t *); void DisplayEntry(FileInfo_t,int,int); void InitWin(int); void Redraw(void); int TestQuit(void); void ConvertDate(char *,time_t); void Edit(void); void MultipleTag(void); void MultipleUntag(void); void Refresh(void); int GetHLNbreItems(HistList_t *); void HistoryList(void); void RemoveSeparators(char *); void ConvertArgs(char *,char *[],int); void Aide(void); void FullInfo(FileInfo_t); void ChangeGrp(void); void ChangeMod(void); void ChangeOwner(void); void CompareDir(void); void Copy(void); void Delete(void); void Link(void); void Move(void); void CreateDir(void); int ExecuteCommande(char *); int SearchForProcess(char,char); void Processes(void); int CD_Tree(void); void IPC_Control(void); int FindFile(void); int SearchToFind(char *,char *); void ProcessUserMenu(void); #endif