home *** CD-ROM | disk | FTP | other *** search
- From: wht@n4hgf.Mt-Park.GA.US
- Newsgroups: comp.sources.misc
- Subject: v16i072: ECU 3 log-to-Excel spreadsheet, Part01/02
- Message-ID: <1991Jan12.210134.14253@sparky.IMD.Sterling.COM>
- Date: 12 Jan 91 21:01:34 GMT
- Approved: kent@sparky.imd.sterling.com
- X-Checksum-Snefru: 1eb58332 7be7d4e9 a337d283 32d151b9
-
- Submitted-by: wht@n4hgf.Mt-Park.GA.US
- Posting-number: Volume 16, Issue 72
- Archive-name: ecu3-excel/part01
-
- This is an ECU 3 log file to Microsoft Excel (tm) spreadsheet
- processor. It reads an ECU logfile and produces two
- spreadsheets in the current directory.
-
- To use, unshar the two-part shell archives in your ecu
- distribution directory, cd excel and read the README file
-
- #!/bin/sh
- # This is ecu3-excel, a shell archive (shar 3.46)
- # made 01/10/1991 10:36 UTC by wht@n4hgf
- # Source directory /u1/src/ecu
- #
- # existing files will NOT be overwritten unless -c is specified
- #
- # This shar contains:
- # length mode name
- # ------ ---------- ------------------------------------------
- # 194 -rw-r--r-- excel/Makefile
- # 805 -rw-r--r-- excel/README
- # 18217 -rw-r--r-- excel/biff.h
- # 339 -rw-r--r-- excel/ecuclog.txt
- # 730 -rw-r--r-- excel/ecurlog.txt
- # 37790 -rw-r--r-- excel/ecuxls.c
- # 1563 -rw-r--r-- excel/log
- #
- # ============= excel/Makefile ==============
- if test ! -d 'excel'; then
- echo 'x - creating directory excel'
- mkdir 'excel'
- fi
- if test -f 'excel/Makefile' -a X"$1" != X"-c"; then
- echo 'x - skipping excel/Makefile (File already exists)'
- else
- echo 'x - extracting excel/Makefile (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'excel/Makefile' &&
- X#+-------------------------------------
- X# ecuxls Makefile
- X#--------------------------------------
- X#+:EDITS:
- X#:01-10-1991-04:36-wht@n4hgf-creation
- X
- Xecuxls: ecuxls.c biff.h
- X cc -O -o $@ ecuxls.c
- SHAR_EOF
- chmod 0644 excel/Makefile ||
- echo 'restore of excel/Makefile failed'
- Wc_c="`wc -c < 'excel/Makefile'`"
- test 194 -eq "$Wc_c" ||
- echo 'excel/Makefile: original size 194, current size' "$Wc_c"
- fi
- # ============= excel/README ==============
- if test -f 'excel/README' -a X"$1" != X"-c"; then
- echo 'x - skipping excel/README (File already exists)'
- else
- echo 'x - extracting excel/README (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'excel/README' &&
- XThis is an ECU 3 log file to Microsoft Excel (tm) spreadsheet
- Xprocessor. It reads an ECU logfile and produces two
- Xspreadsheets in the current directory.
- X
- XTo make, just type 'make'
- X
- Xusage: ecuxls [-l logfile]
- Xdefault log file is ~/.ecu/log
- X
- XProduces
- X-------------------------------------------------------------
- Xecuclog.xls - connection log (date,system,connect time)
- Xecurlog.xls - received file log (date,from,length,name)
- X
- XFiles in the distribution
- X-------------------------------------------------------------
- XREADME - guess
- XMakefile - guess
- Xbiff.h - Excel BIFF file format declarations
- Xecuxls.c - program code
- Xlog - sample log file used for examples below
- Xecuclog.txt - sample connection log spreadsheet (ASCII-ized)
- Xecurlog.txt - sample received file spreadsheet (ASCII-ized)
- SHAR_EOF
- chmod 0644 excel/README ||
- echo 'restore of excel/README failed'
- Wc_c="`wc -c < 'excel/README'`"
- test 805 -eq "$Wc_c" ||
- echo 'excel/README: original size 805, current size' "$Wc_c"
- fi
- # ============= excel/biff.h ==============
- if test -f 'excel/biff.h' -a X"$1" != X"-c"; then
- echo 'x - skipping excel/biff.h (File already exists)'
- else
- echo 'x - extracting excel/biff.h (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'excel/biff.h' &&
- X
- X/*+-------------------------------------------------------------------------
- X biff.h
- X wht@n4hgf.Mt-Park.GA.US
- X--------------------------------------------------------------------------*/
- X/*+:EDITS:*/
- X/*:01-01-1991-15:32-wht@n4hgf-rework earlier effort */
- X
- X#if !defined(UINT8)
- X#define UINT8 unsigned char
- X#endif
- X#if !defined(UINT16)
- X#define UINT16 unsigned short
- X#endif
- X#if !defined(UINT32)
- X#define UINT32 unsigned long
- X#endif
- X
- X#define btDIMENSION 0x00
- X#define btBLANK 0x01
- X#define btINTEGER 0x02
- X#define btNUMBER 0x03
- X#define btLABEL 0x04
- X#define btBOOLERR 0x05
- X#define btFORMULA 0x06
- X#define btSTRING 0x07
- X#define btROW 0x08
- X#define btBOF 0x09
- X#define btEOF 0x0a
- X#define btINDEX 0x0b
- X#define btCALCCOUNT 0x0c
- X#define btCALCMODE 0x0d
- X#define btPRECISION 0x0e
- X#define btREFMODE 0x0f
- X#define btDELTA 0x10
- X#define btITERATION 0x11
- X#define btPROTECT 0x12
- X#define btPASSWORD 0x13
- X#define btHEADER 0x14
- X#define btFOOTER 0x15
- X#define btEXTERNCOUNT 0x16
- X#define btEXTERNSHEET 0x17
- X#define btNAME 0x18
- X#define btWINDOWPROTECT 0x19
- X#define btVERTICALPAGEBREAKS 0x1a
- X#define btHORIZONTALPAGEBREAK 0x1b
- X#define btNOTE 0x1c
- X#define btSELECTION 0x1d
- X#define btFORMAT 0x1e
- X#define btFORMATCOUNT 0x1f
- X#define btCOLUMNDEFAULT 0x20
- X#define btARRAY 0x21
- X#define bt1904 0x22
- X#define btEXTERNNAME 0x23
- X#define btCOLWIDTH 0x24
- X#define btDEFAULTROWHEIGHT 0x25
- X#define btLEFTMARGIN 0x26
- X#define btRIGHTMARGIN 0x27
- X#define btTOPMARGIN 0x28
- X#define btBOTTOMMARGIN 0x29
- X#define btPRINTHEADERS 0x2a
- X#define btPRINTGRIDLINES 0x2b
- X#define btFILEPASS 0x2f
- X#define btFONT 0x31
- X#define btFONT2 0x32
- X#define btTABLE 0x36
- X#define btTABLE2 0x37
- X#define btCONTINUE 0x3c
- X#define btWINDOW1 0x3d
- X#define btWINDOW2 0x3e
- X#define btBACKUP 0x40
- X#define btPANE 0x41
- X#define btXF 0x43
- X#define btIXFE 0x44
- X#define btEFONT 0x45
- X
- X/* cell records consist of a BLANK, INTEGER, NUMBER, LABEL, BOOLERR, FORMULA
- X * possibly followed by a ARRAY, CONTINUE, TABLE, or TABLE2,
- X *
- X * NOTE MANY OF THE FOLLOWING ARE NOT SUITABLE FOR USE WITH sizeof()
- X * WITHOUT ADDITIONAL CONSIDERATIONS SINCE THE ACTUAL RECORDS MAY BE
- X * OF VARIABLE LENGTH
- X */
- X/*+-------------------------------------------------------------------------
- X header record
- X--------------------------------------------------------------------------*/
- Xtypedef struct bhdr
- X{
- X UINT16 type;
- X UINT16 length;
- X} BHDR;
- X
- X/*+-------------------------------------------------------------------------
- X BOF record
- X--------------------------------------------------------------------------*/
- X#pragma pack(1)
- Xtypedef struct brBOF
- X{
- X UINT16 type;
- X UINT16 length;
- X UINT16 vers; /* version number */
- X UINT16 dt; /* document type */
- X} brBOF;
- X#pragma pack()
- X
- X#define versExcel 2 /* Excel */
- X#define versMP 3 /* Multiplan */
- X
- X#define dtWorksheet 0x10
- X#define dtChart 0x20
- X#define dtMacroSheet 0x40
- X
- X/*+-------------------------------------------------------------------------
- X INDEX record - optional - must follow FILEPASS (if present),
- Xotherwise immediately after BOF
- X--------------------------------------------------------------------------*/
- X#pragma pack(1)
- Xtypedef struct brINDEX
- X{
- X UINT16 type;
- X UINT16 length;
- X long ibRtName; /* absolute fpos of first NAME record */
- X UINT16 rwMic; /* first existing row (0-n) */
- X UINT16 rwMac; /* last existing row (0-n) */
- X long rgibRw[1]; /* array of absolute positions of ROW records */
- X} brINDEX;
- X#pragma pack()
- X
- X/*+-------------------------------------------------------------------------
- X PRECISION record
- X--------------------------------------------------------------------------*/
- X#pragma pack(1)
- Xtypedef struct brPRECISION
- X{
- X UINT16 type;
- X UINT16 length;
- X UINT16 fFullPrec; /* 1=full precision, 0=as displayed */
- X} brPRECISION;
- X#pragma pack()
- X
- X/*+-------------------------------------------------------------------------
- X REFMODE record
- X--------------------------------------------------------------------------*/
- X#pragma pack(1)
- Xtypedef struct brREFMODE
- X{
- X UINT16 type;
- X UINT16 length;
- X UINT16 fRefA1; /* 0 = R1C1 mode */
- X} brREFMODE;
- X#pragma pack()
- X
- X/*+-------------------------------------------------------------------------
- X DELTA record
- X--------------------------------------------------------------------------*/
- X#pragma pack(1)
- Xtypedef struct brDELTA
- X{
- X UINT16 type;
- X UINT16 length;
- X double numDelta; /* max change fvor iterative model */
- X} brDELTA;
- X#pragma pack()
- X
- X/*+-------------------------------------------------------------------------
- X ITERATION record
- X--------------------------------------------------------------------------*/
- X#pragma pack(1)
- Xtypedef struct brITERATION
- X{
- X UINT16 type;
- X UINT16 length;
- X UINT16 fIter; /* 1=on, 0=off */
- X} brITERATION;
- X#pragma pack()
- X
- X/*+-------------------------------------------------------------------------
- X 1904 record
- X--------------------------------------------------------------------------*/
- X#pragma pack(1)
- Xtypedef struct br1904
- X{
- X UINT16 type;
- X UINT16 length;
- X UINT16 f1904; /* 1=uses 1904 date system, 0=otherwise */
- X} br1904;
- X#pragma pack()
- X
- X/*+-------------------------------------------------------------------------
- X PRINTHEADERS record
- X--------------------------------------------------------------------------*/
- X#pragma pack(1)
- Xtypedef struct brPRINTHEADERS
- X{
- X UINT16 type;
- X UINT16 length;
- X UINT16 fPrintRwCol; /* 1=print row/col headers, 0=not */
- X} brPRINTHEADERS;
- X#pragma pack()
- X
- X/*+-------------------------------------------------------------------------
- X PRINTGRIDLINES record
- X--------------------------------------------------------------------------*/
- X#pragma pack(1)
- Xtypedef struct brPRINTGRIDLINES
- X{
- X UINT16 type;
- X UINT16 length;
- X UINT16 fPrintGrid; /* 1= print gridlines, 0=not */
- X} brPRINTGRIDLINES;
- X#pragma pack()
- X
- X/*+-------------------------------------------------------------------------
- X DEFAULTROWHEIGHT record
- X--------------------------------------------------------------------------*/
- X#pragma pack(1)
- Xtypedef struct brDEFAULTROWHEIGHT
- X{
- X UINT16 type;
- X UINT16 length;
- X UINT16 miyRwGhost; /* height of undefined rows in 1/20 points increments */
- X} brDEFAULTROWHEIGHT;
- X#pragma pack()
- X
- X/*+-------------------------------------------------------------------------
- X FONT record
- X--------------------------------------------------------------------------*/
- X#pragma pack(1)
- Xtypedef struct brFONT
- X{
- X UINT16 type;
- X UINT16 length;
- X UINT16 dy; /* height of font */
- X UINT16 grbit; /* font attributes */
- X UINT8 cch; /* length of font name */
- X UINT8 rgch[1]; /* variable length font name */
- X} brFONT;
- X#pragma pack()
- X
- X#define brFONT_rsvd 0xFF00 /* these bits must be zero */
- X#define fExtend 0x0080
- X#define fCondense 0x0040
- X#define fShadow 0x0020
- X#define fOutline 0x0010
- X#define fStrikeout 0x0008
- X#define fUnderline 0x0004
- X#define fItalic 0x0002
- X#define fBold 0x0001
- X
- X/*+-------------------------------------------------------------------------
- X EFONT record
- X--------------------------------------------------------------------------*/
- X#pragma pack(1)
- Xtypedef struct brEFONT
- X{
- X UINT16 type;
- X UINT16 length;
- X UINT16 lcv; /* index into color table */
- X} brEFONT;
- X#pragma pack()
- X
- X#define EFONT_black 0
- X#define EFONT_white 1
- X#define EFONT_red 2
- X#define EFONT_green 3
- X#define EFONT_blue 4
- X#define EFONT_yellow 5
- X#define EFONT_magenta 6
- X#define EFONT_cyan 7
- X
- X/*+-------------------------------------------------------------------------
- X FONT2 record - NOT TO BE WRITTEN BY USER CODE (SEE BOOK)
- X--------------------------------------------------------------------------*/
- X
- X/*+-------------------------------------------------------------------------
- X HEADER record
- X--------------------------------------------------------------------------*/
- X#pragma pack(1)
- Xtypedef struct brHEADER
- X{
- X UINT16 type;
- X UINT16 length;
- X UINT8 cch; /* length of string */
- X UINT8 rgch[1]; /* string */
- X} brHEADER;
- X#pragma pack()
- X
- X/*+-------------------------------------------------------------------------
- X FOOTER record
- X--------------------------------------------------------------------------*/
- X#pragma pack(1)
- Xtypedef struct brFOOTER
- X{
- X UINT16 type;
- X UINT16 length;
- X UINT8 cch; /* length of string */
- X UINT8 rgch[1]; /* string */
- X} brFOOTER;
- X#pragma pack()
- X
- X/*+-------------------------------------------------------------------------
- X LEFTMARGIN record
- X--------------------------------------------------------------------------*/
- X#pragma pack(1)
- Xtypedef struct brLEFTMARGIN
- X{
- X UINT16 type;
- X UINT16 length;
- X UINT16 num;
- X} brLEFTMARGIN;
- X#pragma pack()
- X
- X/*+-------------------------------------------------------------------------
- X RIGHTMARGIN record
- X--------------------------------------------------------------------------*/
- X#pragma pack(1)
- Xtypedef struct brRIGHTMARGIN
- X{
- X UINT16 type;
- X UINT16 length;
- X UINT16 num;
- X} brRIGHTMARGIN;
- X#pragma pack()
- X
- X/*+-------------------------------------------------------------------------
- X TOPMARGIN record
- X--------------------------------------------------------------------------*/
- X#pragma pack(1)
- Xtypedef struct brTOPMARGIN
- X{
- X UINT16 type;
- X UINT16 length;
- X UINT16 num;
- X} brTOPMARGIN;
- X#pragma pack()
- X
- X/*+-------------------------------------------------------------------------
- X BOTTOMMARGIN record
- X--------------------------------------------------------------------------*/
- X#pragma pack(1)
- Xtypedef struct brBOTTOMMARGIN
- X{
- X UINT16 type;
- X UINT16 length;
- X UINT16 num;
- X} brBOTTOMMARGIN;
- X#pragma pack()
- X
- X/*+-------------------------------------------------------------------------
- X COLWIDTH record
- X--------------------------------------------------------------------------*/
- X#pragma pack(1)
- Xtypedef struct brCOLWIDTH
- X{
- X UINT16 type;
- X UINT16 length;
- X UINT8 colFirst; /* 1st col in range */
- X UINT8 colLast; /* last col in range */
- X UINT16 dz; /* column width */
- X} brCOLWIDTH;
- X#pragma pack()
- X
- X/*+-------------------------------------------------------------------------
- X BACKUP record
- X--------------------------------------------------------------------------*/
- X#pragma pack(1)
- Xtypedef struct brBACKUP
- X{
- X UINT16 type;
- X UINT16 length;
- X UINT16 fBackupFile;
- X} brBACKUP;
- X#pragma pack()
- X
- X/*+-------------------------------------------------------------------------
- X FORMATCOUNT record
- X--------------------------------------------------------------------------*/
- X#pragma pack(1)
- Xtypedef struct brFORMATCOUNT
- X{
- X UINT16 type;
- X UINT16 length;
- X UINT16 FmtCount; /* number of built-in format records */
- X} brFORMATCOUNT;
- X#pragma pack()
- X
- X/*+-------------------------------------------------------------------------
- X FORMAT record -see book about ordering of these records
- X1. you may add FORMAT records
- X2. they should all appear together
- X3. don't change order - add new ones to bottom of list
- X--------------------------------------------------------------------------*/
- X#pragma pack(1)
- Xtypedef struct brFORMAT
- X{
- X UINT16 type;
- X UINT16 length;
- X UINT8 cch; /* count */
- X UINT8 rgch[1]; /* picture */
- X} brFORMAT;
- X#pragma pack()
- X
- X/*+-------------------------------------------------------------------------
- X NAME record
- X--------------------------------------------------------------------------*/
- X#pragma pack(1)
- Xtypedef struct brNAME
- X{
- X UINT16 type;
- X UINT16 length;
- X UINT8 grbit; /* attributes (see below) */
- X UINT8 grbitPli; /* attributes (see below) */
- X UINT8 chKey; /* keyboard shortcut */
- X UINT8 cch; /* length of name text */
- X UINT8 cce; /* length of name's definition */
- X UINT8 rgch[1]; /* this is a gaggle of bytes (see book):
- X * text of the name
- X * parsed expression for name definition
- X * one byte dup of cce
- X */
- X} brNAME;
- X#pragma pack()
- X
- X/* grbit definitions */
- X#define NAME_grbit_RSVD 0xF8 /* must be zero */
- X#define NAME_grbit_fCalcExp 0x04 /* =1 if complex function */
- X#define NAME_grbit_fProc 0x02 /* =1 if function or command name */
- X#define NAME_grbit_RSVD2 0x01 /* must be zero */
- X
- X/* grbitPli definitions - meaningful only if fProc set */
- X#define NAME_grbitPli_RSVD 0xFC /* must be zero */
- X#define NAME_grbitPli_fRun 0x02 /* =1 for command names */
- X#define NAME_grbitPli_fFunc 0x01 /* =1 for function names */
- X
- X/* you really need to read the book on all the above; I ain't into
- X * copyright infringements and I don't type like I used to anyway;
- X * following are the specifiers I needed for names
- X */
- X
- X#define ptgRefN 0x2C /* cell reference within a name */
- X#define ptgAreaN 0x2D /* area reference within a name */
- X
- X#pragma pack(1)
- Xtypedef struct opRefN
- X{
- X UINT8 op; /* == ptgRefN */
- X UINT16 grbitRw; /* row - msb can have flags, but I didn't need them */
- X UINT8 col; /* column */
- X} opRefN;
- X#pragma pack()
- X
- X#pragma pack(1)
- Xtypedef struct opAreaN
- X{
- X UINT8 op; /* == ptgAreaN */
- X UINT16 grbitRwFirst;
- X UINT16 grbitRwLast;
- X UINT8 colFirst;
- X UINT8 colLast;
- X} opAreaN;
- X#pragma pack()
- X
- X/*+-------------------------------------------------------------------------
- X DIMENSION record
- X--------------------------------------------------------------------------*/
- X#pragma pack(1)
- Xtypedef struct brDIMENSION
- X{
- X UINT16 type;
- X UINT16 length;
- X UINT16 rwMic; /* first defined row */
- X UINT16 rwMac; /* last row + 1 */
- X UINT16 colMic; /* first col */
- X UINT16 colMac; /* last row + 1 */
- X} brDIMENSION;
- X#pragma pack()
- X
- X/*+-------------------------------------------------------------------------
- X ROW record
- Xsee the book (this one has some intense considerations)
- X--------------------------------------------------------------------------*/
- X#pragma pack(1)
- Xtypedef struct brROW
- X{
- X UINT16 type;
- X UINT16 length;
- X UINT16 rw; /* row number */
- X UINT16 colMic; /* first col */
- X UINT16 colMac; /* last col + 1 */
- X UINT16 miyRw; /* row height (1/20 point)
- X * 0x8000 bit may be set to indicate std height, but
- X * height must still be present
- X */
- X UINT8 irwMac; /* reserved - set to 0 */
- X UINT8 fDefault; /* =1 if row has default attributes */
- X UINT16 dbRtcell; /* relative file offset to cell records */
- X UINT8 rgbAttr[3]; /* default cell attributes */
- X} brROW;
- X#pragma pack()
- X
- X/*+-------------------------------------------------------------------------
- X BLANK record
- X--------------------------------------------------------------------------*/
- X#pragma pack(1)
- Xtypedef struct brBLANK
- X{
- X UINT16 type;
- X UINT16 length;
- X UINT16 rw; /* row */
- X UINT16 col; /* column */
- X UINT8 rgbAttr[3]; /* cell attributes */
- X} brBLANK;
- X#pragma pack()
- X
- X/*+-------------------------------------------------------------------------
- X INTEGER record
- X--------------------------------------------------------------------------*/
- X#pragma pack(1)
- Xtypedef struct brINTEGER
- X{
- X UINT16 type;
- X UINT16 length;
- X UINT16 rw; /* row */
- X UINT16 col; /* column */
- X UINT8 rgbAttr[3]; /* cell attributes */
- X UINT16 w; /* unsigned int value */
- X} brINTEGER;
- X#pragma pack()
- X
- X/*+-------------------------------------------------------------------------
- X NUMBER record
- X--------------------------------------------------------------------------*/
- X#pragma pack(1)
- Xtypedef struct brNUMBER
- X{
- X UINT16 type;
- X UINT16 length;
- X UINT16 rw; /* row */
- X UINT16 col; /* column */
- X UINT8 rgbAttr[3]; /* cell attributes */
- X double num; /* value */
- X} brNUMBER;
- X#pragma pack()
- X
- X/*+-------------------------------------------------------------------------
- X BOOLERR record
- X--------------------------------------------------------------------------*/
- X#pragma pack(1)
- Xtypedef struct brBOOLERR
- X{
- X UINT16 type;
- X UINT16 length;
- X UINT16 rw; /* row */
- X UINT16 col; /* column */
- X UINT8 rgbAttr[3]; /* cell attributes */
- X UINT8 bBoolErr; /* value */
- X UINT8 fError; /* 1 if error, 0 if boolean */
- X} brBOOLERR;
- X#pragma pack()
- X
- X#define ERR_NULL 0
- X#define ERR_DIV0 7
- X#define ERR_VALUE 15
- X#define ERR_REF 23
- X#define ERR_NAME 29
- X#define ERR_NUM 36
- X#define ERR_NA 42
- X
- X/*+-------------------------------------------------------------------------
- X LABEL record
- X--------------------------------------------------------------------------*/
- X#pragma pack(1)
- Xtypedef struct brLABEL
- X{
- X UINT16 type;
- X UINT16 length;
- X UINT16 rw; /* row */
- X UINT16 col; /* column */
- X UINT8 rgbAttr[3]; /* cell attributes */
- X UINT8 cch; /* length of string */
- X UINT8 rgch[1]; /* string */
- X} brLABEL;
- X#pragma pack()
- X
- X/*+-------------------------------------------------------------------------
- X NOTE record
- X--------------------------------------------------------------------------*/
- X#pragma pack(1)
- Xtypedef struct brNOTE
- X{
- X UINT16 type;
- X UINT16 length;
- X UINT16 rw; /* row */
- X UINT16 col; /* column */
- X UINT8 cch; /* length of string */
- X UINT8 rgch[1]; /* string */
- X} brNOTE;
- X#pragma pack()
- X
- X/*+-------------------------------------------------------------------------
- X FORMULA record
- X--------------------------------------------------------------------------*/
- X#pragma pack(1)
- Xtypedef struct brFORMULA
- X{
- X UINT16 type;
- X UINT16 length;
- X UINT16 rw; /* row */
- X UINT16 col; /* column */
- X UINT8 rgbAttr[3]; /* cell attributes */
- X UINT8 num[8]; /* current value (see book) */
- X UINT8 sbRecalc; /* recalc flag */
- X UINT8 cce; /* length of parsed expression */
- X UINT8 rgce[1]; /* parsed expression */
- X} brFORMULA;
- X#pragma pack()
- X
- X/*
- X * rgbAttr definitions
- X */
- X#define rgbAttr0_fHidden 0x80
- X#define rgbAttr0_fLocked 0x40
- X#define rgbAttr1_fnt 0xC0 /* font # (0-3) */
- X#define rgbAttr1_ifmt 0x3F /* format code (0-63) */
- X#define rgbAttr2_fShade 0x80
- X#define rgbAttr2_fBottom 0x40
- X#define rgbAttr2_fTop 0x20
- X#define rgbAttr2_fRight 0x10
- X#define rgbAttr2_fLeft 0x08
- X#define rgbAttr2_alc 0x07 /* alignment code mask */
- X
- X#define alc_GENERAL 0
- X#define alc_LEFT 1
- X#define alc_CENTRAL 2
- X#define alc_RIGHT 3
- X#define alc_FILL 4
- X#define alc_DEFAULT 7 /* Multiplan only */
- X
- X/* vi: set tabstop=4 shiftwidth=4: */
- X/* end of biff.h */
- SHAR_EOF
- chmod 0644 excel/biff.h ||
- echo 'restore of excel/biff.h failed'
- Wc_c="`wc -c < 'excel/biff.h'`"
- test 18217 -eq "$Wc_c" ||
- echo 'excel/biff.h: original size 18217, current size' "$Wc_c"
- fi
- # ============= excel/ecuclog.txt ==============
- if test -f 'excel/ecuclog.txt' -a X"$1" != X"-c"; then
- echo 'x - skipping excel/ecuclog.txt (File already exists)'
- else
- echo 'x - extracting excel/ecuclog.txt (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'excel/ecuclog.txt' &&
- XECU Connection Log - created 01-10-1991 05:12:54
- XDate System Phone Time
- X1991-01-09 16:23 tridom 555-1212 02:02:07
- X1991-01-09 19:45 n4vu 555-1212V 00:03:07
- X1991-01-09 19:51 n4vu 555-1212V 00:01:53
- X1991-01-09 20:21 p1so 555-1212PF 00:00:23
- X1991-01-09 20:22 kd4nc 555-1212C 02:00:38
- SHAR_EOF
- chmod 0644 excel/ecuclog.txt ||
- echo 'restore of excel/ecuclog.txt failed'
- Wc_c="`wc -c < 'excel/ecuclog.txt'`"
- test 339 -eq "$Wc_c" ||
- echo 'excel/ecuclog.txt: original size 339, current size' "$Wc_c"
- fi
- # ============= excel/ecurlog.txt ==============
- if test -f 'excel/ecurlog.txt' -a X"$1" != X"-c"; then
- echo 'x - skipping excel/ecurlog.txt (File already exists)'
- else
- echo 'x - extracting excel/ecurlog.txt (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'excel/ecurlog.txt' &&
- XECU Received File Log - created 01-10-1991 05:12:54
- XDate From Length Name
- X1991-01-09 21:46 kd4nc 4060 afterlint.c
- X1991-01-09 21:46 kd4nc 9889 ecu.c
- X1991-01-09 21:46 kd4nc 4175 ecu.h
- X1991-01-09 21:46 kd4nc 12787 ecuicmd.c
- X1991-01-09 21:47 kd4nc 23999 eculine.c
- X1991-01-09 21:48 kd4nc 48334 ecuphone.c
- X1991-01-09 21:48 kd4nc 31419 ecurcvr.c
- X1991-01-09 21:48 kd4nc 3040 ecushm.h
- X1991-01-09 21:49 kd4nc 585 ecuvmin.h
- X1991-01-09 21:49 kd4nc 14172 ecuxenix.c
- X1991-01-09 21:49 kd4nc 6599 gint.c
- X1991-01-09 21:50 kd4nc 27013 lint_args.h
- X1991-01-09 21:50 kd4nc 24245 pcmd.c
- X1991-01-09 21:50 kd4nc 3525 pprintf.c
- X1991-01-09 21:51 kd4nc 1286 stdio_lint.h
- SHAR_EOF
- chmod 0644 excel/ecurlog.txt ||
- echo 'restore of excel/ecurlog.txt failed'
- Wc_c="`wc -c < 'excel/ecurlog.txt'`"
- test 730 -eq "$Wc_c" ||
- echo 'excel/ecurlog.txt: original size 730, current size' "$Wc_c"
- fi
- true || echo 'restore of excel/ecuxls.c failed'
- echo End of part 1, continue with part 2
- exit 0
-
- exit 0 # Just in case...
- --
- Kent Landfield INTERNET: kent@sparky.IMD.Sterling.COM
- Sterling Software, IMD UUCP: uunet!sparky!kent
- Phone: (402) 291-8300 FAX: (402) 291-4362
- Please send comp.sources.misc-related mail to kent@uunet.uu.net.
-