|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T h
Length: 4486 (0x1186)
Types: TextFile
Names: »hm.h«
└─⟦9ae75bfbd⟧ Bits:30007242 EUUGD3: Starter Kit
└─⟦e7f64e0c0⟧ »EurOpenD3/mail/vmh.tar.Z«
└─⟦dcb95597f⟧
└─⟦this⟧ »SAVE/hm.h«
#include <curses.h> /* Includes <stdio> and <sgtty.h> for me */
#include <la.local.h>
#include <signal.h>
#include <sys/types.h>
#include <sys/stat.h>
#include "hmmh.h"
#define MIN(a,b) ((a<b)? a:b)
#define MAX(a,b) ((a>b)? a:b)
#define UNSEENADDR 1 /* Annotate marker field */
#define NOTSEEN '>' /* Unseen character */
#define MSGN 2 /* Start of msg name field */
#define REPLYADDR 5 /* position in scan line */
#define REPLYCHAR '-' /* Reply character */
#define FOLDERMODE 0751 /* Default folder mode */
#define HMTOP "hm-top:" /* .mh_profile entry, top window size */
#define CLOCKUPDATE 30 /* update running clock */
/* "inc" is invoked via "execlp (2)" */
#define INC "/usr/new/mh/inc"
#define HELPFILE "/usr/doc/hm.helpfile"
#define HELPMSG " (type h for help) "
#define MAILSPOOL "/usr/spool/mail"
/* Chmod status bits: owner exec == seen; group exec == replied */
#define IfSeen(x) ((x & 0100))
#define SetSeen(x) (x |= 0100)
#define ClrSeen(x) (x &= ~0100)
#define IfReply(x) ((x & 0010))
#define SetReply(x) (x |= 0010)
#define ClrReply(x) (x &= ~0010)
#ifdef UNIXV7
#define vfork fork
#endif
/* Global Data for ~mh */
int topSize; /* Number of lines in top window */
int botSize; /* Number of lines in bottom window */
WINDOW *topWin, *botWin; /* The two main window structures */
WINDOW *topHdr, *botHdr; /* Top and bottom window titles/headers */
WINDOW *cmdWin; /* Command window at bottom */
char bs; /* Set to current backspace key */
char quit; /* Set to current interrupt key */
char *alstring; /* String to issue insert-line to terminal */
char *dlstring; /* String to issue deline-line to terminal */
char *clstring; /* String to issue clear-screen to terminal */
int bvShowScan; /* display needed flag -- hmmm */
int idleflag; /* Non-zero if in reading from tty */
int newmailflag; /* Non-zero if new mail (un-inc'd) */
char rootpath[100]; /* Unix pathname for home folder */
int fdreserved; /* Reserved spare file-descriptor */
/* Global data kept per open folder */
struct fldr *FHead; /* First in the chain of open folders */
struct fldr *F; /* Current folder */
struct fldr
{
char foldername[150]; /* Folder pathname */
char folderscan[150]; /* Folder/.scan */
ino_t inode; /* inode of folder directory */
struct fldr *FLink; /* link to next structure */
La_stream *plas; /* LA Stream handle for folder's .scan file */
La_linepos topline; /* Line position for top of window */
La_linepos botline; /* Line position for last line in window */
La_linepos curline; /* Line position for current line */
La_linepos lastline; /* Last line file position (lsize-1) */
struct stat sbuf; /* Stat buffer for the folder */
struct msgs *m; /* mh style msgs structure */
};
/*
* mygmsg() returns this structure. It contains the per folder
* information which is obtained from reading the folder directory.
*/
struct msgs {
int hghmsg; /* Highest msg in directory */
int nummsg; /* Actual Number of msgs */
int lowmsg; /* Lowest msg number */
int maxstats; /* Number of bytes in msgstats */
char msgstats[1]; /* Stat bytes for each msg */
};
/* Flag bits in msgstats */
#define EXISTS 01 /* Message exists */
/**** Misc Procs ****/
int typeit(); /* Type a file */
int mywgetstr(); /* Window getstring w/bs and del */
int dotitle(); /* Put up title into a window */
int goodbye(); /* Exit routine */
int punt(); /* Bomb out */
int my_tstp(); /* My version of curses tstp routine */
struct fldr *getF(); /* Get or allocate/set f structure */
struct fldr *findF(); /* Search list for existing f structure */
struct msgs *my_gmsg(); /* My version of get msgs routine */
char *getenv(); /* Get environment string */
char *tgetstr(); /* Get specific termcap string */
char *mktemp();