|
|
/*** list.h
* */
#define BLOCKSIZE (4*1024) /* Bytes of data in each block */
/* WARNING: This value is also in the *.asm listing */
#define STACKSIZE 3096 /* Stack size for threads */
#define MAXLINES 200 /* Max lines on a CRT */
#define PLINES (65536/4) /* # of line lens per page */
#define MAXTPAGE 500 /* ??? lines max (PLINES*MAXTPAGE) */
#define MINBLKS 10 /* Min blocks allowed */
#define MINTHRES 4 /* Min threshold */
#define DEFBLKS 40 /* Default blocks allowed */
#define DEFTHRES 17 /* Default threshold */
#define CMDPOS 9
#define ERR_IN_WINDOW 494 /* Vio wincompat error */
#define NOLASTLINE 0x7fffffffL
/************ Handy Defs ************/ #define CFP char *
#define LFP long *
#define CP char *
#define Ushort unsigned short
#define Uslong unsigned long
#define Uchar unsigned char
#define SEMPT (HSEM)
#define WAITFOREVER ((unsigned)-1L)
#define DONTWAIT 0L
#ifndef NTSTATUS
#define NTSTATUS unsigned long
#endif
#define SIGNALED TRUE
#define NOT_SIGNALED FALSE
#define MANUAL_RESET TRUE
#define T_HEATHH 0
extern char MEMERR[];
#ifndef DEBUG
#define ckdebug(rcode,mess) { \
if (rcode) { \ ListErr (__FILE__, __LINE__, #rcode, rcode, mess); \ } \ } #else
#define ckdebug(rcode,mess) ;
#endif
#define ckerr(rcode,mess) { \
if (rcode) { \ ListErr (__FILE__, __LINE__, #rcode, rcode, mess); \ } \ }
/****************** Declerations ********************/
void main_loop (void); void init_list (void); void FindIni (void); void CleanUp (); DWORD ReaderThread (DWORD); DWORD RedrawWait (LPVOID); unsigned xtoi (char *);
struct Block *alloc_block (long); void MoveBlk (struct Block **, struct Block **);
char *alloc_page (void); void AddFileToList (char *); void AddOneName (char *); void ReadDirect (long); void ReadNext (void); void add_more_lines (struct Block *, struct Block *); void ReadPrev (void); void ReadBlock (struct Block *, long); void GoToMark (void); void GoToLine (void); void SlimeTOF (void); void QuickHome (void); void QuickEnd (void); void QuickRestore (void); void ToggleWrap (void); void SetUpdate (int); void ShowHelp (void); void GetInput (char *, char *, int); void beep (void); int _abort (void); void ClearScr (void); int set_mode (int, int, int); void ListErr (char *, int, char *, int, char *); void PerformUpdate (void); void fancy_percent (void); // void update_display (void);
void Update_head (void); int InfoReady (void); void DrawBar (void); void DisLn (int, int, char*); void dis_str (Uchar, Uchar, char *); void setattr (int, char); int GetNewFile (void); void NewFile (void); void SyncReader (void); void ScrUnLock (void); int ScrLock (int); void SpScrUnLock (void); void Update_display (void); void setattr1 (int, char); void setattr2 (int, int, int, char); void UpdateHighClear (void); void MarkSpot (void); void UpdateHighNoLock (void); void FileHighLighted (void); int SearchText (char); void GetSearchString (void); void InitSearchReMap (void); void FindString (void); void HUp (void); void HDn (void); void HPgDn (void); void HPgUp (void); void HSUp (void); void HSDn (void); char *GetErrorCode (int);
struct Block { long offset; /* Offset in file which this block starts */ USHORT size; /* No of bytes in this block */ struct Block *next; /* Next block */ struct Block *prev; /* Previous block */ char *Data; /* The data in the block */ char flag; /* End of file flag */ struct Flist *pFile; /* File which this buff is associated with */ } ; /* The structure used by *.asm */ #define F_EOF 1
extern HANDLE vhConsoleOutput;
extern struct Block *vpHead; extern struct Block *vpTail; extern struct Block *vpCur; extern struct Block *vpBFree; extern struct Block *vpBCache; extern struct Block *vpBOther;
extern int vCntBlks; extern int vAllocBlks; extern int vMaxBlks; extern long vThreshold;
extern HANDLE vSemBrief; extern HANDLE vSemReader; extern HANDLE vSemMoreData; extern HANDLE vSemSync;
extern USHORT vReadPriNormal; extern unsigned vReadPriBoost; extern char vReaderFlag; #define F_DOWN 1
#define F_UP 2
#define F_HOME 3
#define F_DIRECT 4
#define F_END 5
#define F_NEXT 6
#define F_SYNC 7
#define F_CHECK 8
#define U_NMODE 4
#define U_ALL 3
#define U_HEAD 2
#define U_CLEAR 1
#define U_NONE 0
#define SetUpdateM(a) { \
while (vUpdate>a) \ PerformUpdate (); \ vUpdate=a; \ }
#define S_NEXT 0x01 /* Searching for next */
#define S_PREV 0x02 /* Searching for prev */
#define S_NOCASE 0x04 /* Searching in any case */
#define S_UPDATE 0x08
#define S_CLEAR 0x10 /* Redisplay last line */
#define S_WAIT 0x80 /* 'wait' is displayed on last line */
#define S_MFILE 0x20 /* muti-file search selected */
#define S_INSEARCH 0x40 /* in search */
/* Init flags */ #define I_SLIME 0x01 /* Allow alt-o to work */
#define I_NOBEEP 0x02 /* Don't beep about things */
#define I_SEARCH 0x04 /* Cmd line search */
#define I_GOTO 0x08 /* Cmd line goto */
struct Flist { char *fname, *rootname; struct Flist *prev, *next;
/*
* Data to save for each file. * (saved so when the file is "re-looked" at this information * is remembered.) In progress.. this is not done. * This data all has corrisponding "v" (global) values. * * Warning: In most places the reader thread must be frozen * before manipulating this data. */ Uchar Wrap; /* Wrap setting for this file */ long HighTop; /* Current topline of hightlighting */ int HighLen; /* Current bottom line of hightlighting */
long TopLine; /* Top Line number for offset */
long Loffset; /* Offset of last block processed into line */ /* table */ long LastLine; /* Absolute last line */ long NLine; /* Next line to process into line table */ long *prgLineTable [MAXTPAGE]; /* Number of pages for line table */
FILETIME FileTime; /* Used to determine if info is out of date */ long SlimeTOF; /* Hack to adjust idea of TOF for this file */
/*
* Used to buffer reads across files */ } ;
extern struct Flist *vpFlCur; int NextFile (int, struct Flist *); void FreePages (struct Flist *);
extern HANDLE vFhandle; extern long vCurOffset; extern char vpFname[]; extern USHORT vFType; extern WIN32_FIND_DATA vFInfo; extern char vDate []; #define ST_SEARCH 0
#define ST_MEMORY 2
#define ST_ADJUST 25-2 // NT - jaimes - 03/04/91
// -2: Year is represeted by 4 digits
// instead instead of 2
extern char vSearchString[]; extern char vStatCode; extern long vHighTop; extern int vHighLen; extern char vHLTop; extern char vHLBot; extern char vLastBar; extern int vMouHandle;
extern char *vpOrigScreen; extern int vOrigSize; extern USHORT vVioOrigRow; extern USHORT vVioOrigCol; extern USHORT vOrigAnsi; extern int vSetBlks; extern long vSetThres; extern int vSetLines; extern int vSetWidth; extern CONSOLE_SCREEN_BUFFER_INFO vConsoleCurScrBufferInfo; extern CONSOLE_SCREEN_BUFFER_INFO vConsoleOrigScrBufferInfo;
extern char vcntScrLock; extern char vSpLockFlag; extern HANDLE vSemLock;
extern char vUpdate; extern int vLines; extern int vWidth; extern int vCurLine; extern Uchar vWrap; extern Uchar vIndent; extern Uchar vDisTab; extern Uchar vIniFlag;
extern unsigned vVirtOFF; extern unsigned vVirtLEN; extern unsigned vPhysSelec; extern unsigned vPhysLen;
extern LPSTR vpSavRedraw; extern Uchar vrgLen []; extern Uchar vrgNewLen[]; extern char *vScrBuf; extern ULONG vSizeScrBuf; extern int vOffTop; extern unsigned vScrMass; extern struct Block *vpBlockTop; extern struct Block *vpCalcBlock; extern long vTopLine; extern WORD vAttrTitle; extern WORD vAttrList; extern WORD vAttrHigh; extern WORD vAttrCmd; extern WORD vAttrKey; extern WORD vAttrBar;
extern WORD vSaveAttrTitle; extern WORD vSaveAttrList; extern WORD vSaveAttrHigh; extern WORD vSaveAttrCmd; extern WORD vSaveAttrKey; extern WORD vSaveAttrBar;
extern char vChar; extern char *vpReaderStack;
extern long vDirOffset; long GetLoffset(void); void SetLoffset(long);
extern long vLastLine; extern long vNLine; extern long *vprgLineTable[]; extern HANDLE vStdOut; extern HANDLE vStdIn;
extern char szScrollBarUp[2]; extern char szScrollBarDown[2]; extern char szScrollBarOff[2]; extern char szScrollBarOn[2];
|