#ifndef AD_INCLUDED #define AD_INCLUDED // must include slm.h, sys.h and stfile.h first typedef unsigned long FLAGS; // The high order 16 bits have exactly the same meaning accross all commands; // The low order 16 bits are command specific // // 5432109876543210 bit position (high order 16 bits) // // v - print extra information // a - scan all sub-directories starting at the user root // r - scan just those sub-directories below the current one // f - force the action take place if possible // k - keep files which would be removed by syncing // ! - cookie override // $ - limit retry // l - log output (ssync only - should be moved to command specific) // q - Memory mapped file I/O // w - Windowed prompting // y - Project Merge Mode (supresses certain queries) // ? - // ? - // ? - // ? - // ? - // // // 5432109876543210 bit position (low order 16 bits) // g - ghost files (enlist and ssync) // u - unghost files (ssync) // i - ignore merge during sync // b - check for broken links for fmIn // x - command specific // x - " " // x - " " // x - " " // x - " " // x - " " // x - " " // x - " " // x - " " // x - " " // x - " " // x - " " // Common flags #define flagVerbose (FLAGS)0x00010000 #define flagAll (FLAGS)0x00020000 #define flagRecursive (FLAGS)0x00040000 #define flagForce (FLAGS)0x00080000 #define flagKeep (FLAGS)0x00100000 #define flagCookieOvr (FLAGS)0x00200000 #define flagLimitRetry (FLAGS)0x00400000 #define flagLogOutput (FLAGS)0x00800000 #define flagMappedIO (FLAGS)0x01000000 #define flagWindowsQuery (FLAGS)0x02000000 #define flagProjectMerge (FLAGS)0x04000000 #define flagCacheIed (FLAGS)0x08000000 #define flagSlmRootOverride (FLAGS)0x10000000 #define flagProjectOverride (FLAGS)0x20000000 #define flagErrToOut (FLAGS)0xFFFF // not used as a flag in pad->flags // defect specific flags #define flagDelete (FLAGS)0x0001 // delete local copies // ssync and enlist specific flags #define flagGhost (FLAGS)0x0001 #define flagUnghost (FLAGS)0x0002 // enlist specific flags #define flagSyncFiles (FLAGS)0x0004 // ssync files in enlisted directory // ssync specific flags #define flagSavMerge (FLAGS)0x0004 #define flagIgnMerge (FLAGS)0x0008 #define flagSyncDelDirs (FLAGS)0x0010 #define flagSyncBroken (FLAGS)0x0020 // check for broken files #define flagGhostNew (FLAGS)0x0040 // ssync and in specific flags #define flagAutoMerge (FLAGS)0x0800 // in specific flags #define flagAllOut (FLAGS)0x0010 #define flagIgnChanges (FLAGS)0x0020 #define flagInDashB (FLAGS)0x0040 // use diff -b instead of diff #define flagInUpdate (FLAGS)0x0080 #define flagInChecKpt (FLAGS)0x0100 // make a checkpoint (not diff) file #define flagInFilters (FLAGS)0x0200 // flag for cookie in-filters #define flagInDashZ (FLAGS)0x0400 // out specific flags #define flagOutBroken (FLAGS)0x0010 #define flagOutCopy (FLAGS)0x0020 #define flagOutSerial (FLAGS)0x0040 // don't operate concurrently #define flagOutCurrent (FLAGS)0x0080 // Out current version even if out of sync // catsrc specific flags #define flagCatX (FLAGS)0x0010 #define flagCatOutDir (FLAGS)0x0020 // scomp specific flags #define flagDifXFi (FLAGS)0x0010 // all files #define flagDifDashB (FLAGS)0x0020 // use diff -b instead of diff #define flagDifCurSrc (FLAGS)0x0040 // use src even if merge #define flagDifBaseSrc (FLAGS)0x0080 // generate diff base src #define flagDifDashZ (FLAGS)0x0100 // status specific flags #define flagStAllEd (FLAGS)0x0010 // all of the enlisted directories #define flagStGlobal (FLAGS)0x0020 // global information (irr. of dir) #define flagStXFi (FLAGS)0x0040 // all files (rather than those out) #define flagStOSync (FLAGS)0x0080 // those files out of sync #define flagStList (FLAGS)0x0100 // print list rather than table #define flagStBroken (FLAGS)0x0200 // stat broken linked files #define flagStScript (FLAGS)0x0400 // generate script files #define flagStTree (FLAGS)0x0800 // print list rather than table #define flagStGhosted (FLAGS)0x1000 // show ghosted files too #define flagStAllFiles (FLAGS)0x2000 // In generated ssync script, no file names // log specific flags #define flagLogIns (FLAGS)0x0010 // print log of check-ins #define flagLogSortable (FLAGS)0x0020 // sortable output #define flagLogDelDirToo (FLAGS)0x0020 // include delete directories in search // slmck specific flags #define flagCkOverride (FLAGS)0x0010 // override lock #define flagCkGlobal (FLAGS)0x0020 // set if global check #define flagCkLog (FLAGS)0x0040 // check log file #define flagCkUser (FLAGS)0x0080 // check user files #define flagCkRc (FLAGS)0x0100 // make new rc file #define flagCkUpgrade (FLAGS)0x0200 // upgrade to new format #define flagCkIgnDrive (FLAGS)0x0400 // ignore drive letter when checking // owner directory // sadmin lssrc specific flags #define flagLssL (FLAGS)0x0010 // file names, not paths. // sadmin tidy specific flags #define flagTidyCheckEd (FLAGS)0x0010 // check ed for consistency typedef unsigned char AT; // Argument type typedef struct { char chFlag; AT at; FLAGS flag; } FT; // Flag Type // Argument types #define atNone (AT)0 // never in an FT #define atFlag (AT)1 // use bit in ft.flag #define atSlmRoot (AT)2 // #define atProject (AT)3 // #define atOptProject (AT)4 // optional #define atProjOptSubDir (AT)5 // [/subdir] #define atOptProjOptSubDir (AT)6// optional [/subdir] #define atNewProj (AT)7 // #define atDir (AT)8 // #define atFiles (AT)9 // * #define atFiletimes (AT)10 // * #define atComment (AT)11 // ; on DOS, strip quotes #define atOneTime (AT)12 //