(FILECREATED " 3-Jul-86 16:54:16" {QV}<NOTECARDS>1.3K>KIRKPATCH013.;1 7545 changes to: (VARS KIRKPATCH013COMS foo z)) (* Copyright (c) 1986 by Xerox Corporation. All rights reserved.) (PRETTYCOMPRINT KIRKPATCH013COMS) (RPAQQ KIRKPATCH013COMS ((* * fixes minor bugs in prompting for compact files) (FNS NC.NoteFileOperations NC.CompactNoteFile))) (* * fixes minor bugs in prompting for compact files) (DEFINEQ (NC.NoteFileOperations (LAMBDA (NoteFile) (* kirk: " 3-Jul-86 16:18") (* Ask usere to choose which database operation. Called from main menu whenselected fn.) (* * fgh 11/14/85 Updated to handle NoteFile object and per NoteFile menus.) (* * kirk 14Jan86 Added Close/Delete cards and changed the format) (* * fgh 6/13/86 Now sets BusyOperation of NF menu to something interesting.) (* * kirk 3Jul86 passed NoteFileMenuWindow to NC.CompactNoteFile) (LET ((NoteFileMenu (fetch (NoteFile Menu) of NoteFile)) (Font NC.MenuFont) (FullFileName (fetch (NoteFile FullFileName) of NoteFile)) NoteFileMenuWindow Menu) (SPAWN.MOUSE) (SETQ NoteFileMenuWindow (WFROMMENU NoteFileMenu)) (OR (SETQ Menu (WINDOWPROP NoteFileMenuWindow (QUOTE DatabaseOperationsMenu))) (WINDOWPROP NoteFileMenuWindow (QUOTE DatabaseOperationsMenu) (SETQ Menu (create MENU ITEMS ← (BQUOTE ((Open (NC.OpenDatabaseFile , NoteFile) "Opens this NoteFile.") (Checkpoint (NC.CheckpointDatabase , NoteFile) "Checkpoint this NoteFile, saving changed cards.") (Close (NC.CloseDatabaseFile , NoteFile) "Closes this NoteFile.") (Abort (NC.AbortSession , NoteFile) "Close NF, deleteing changes since last checkpoint.") (Compact (NC.CompactNoteFile , NoteFile) "Compacts a NoteFile to a target file." (SUBITEMS (Compact% To% Target% File (NC.CompactNoteFile , NoteFile , NIL NIL NoteFileMenuWindow) "Compacts this NoteFile to a target file.") (Compact% In% Place (NC.CompactNoteFile , NoteFile NIL T) "Compacts this NoteFile in place."))) (Inspect&Repair (NC.InspectAndRepairNoteFile , NoteFile) "Inspects and optionally repairs this NoteFile." (SUBITEMS (Read% Substances ( NC.InspectAndRepairNoteFile , NoteFile T) "Inspects and optionally repairs a Notefile, but reads every substance. This slows it WAY down."))) (Copy (NC.CopyNoteFile , NoteFile) "Copies this notefile to a target file.") (Rename (NC.RenameNoteFile , NoteFile) "Rename this NoteFile") (Delete (NC.DeleteDatabaseFile (QUOTE , (PACKFILENAME (QUOTE VERSION) NIL (QUOTE BODY) FullFileName)) NoteFileMenuWindow) "Deletes the oldest version of this NoteFile."))) CHANGEOFFSETFLG ← (QUOTE Y) MENUOFFSET ← (CONS -1 0) CENTERFLG ← NIL TITLE ← "NoteFile Ops" MENUTITLEFONT ← Font MENUFONT ← Font ITEMHEIGHT ← (IPLUS (FONTPROP Font (QUOTE HEIGHT)) 1) WHENSELECTEDFN ← (FUNCTION (LAMBDA (Item Menu Button) (WINDOWPROP (WFROMMENU (fetch (NoteFile Menu) of (GETMENUPROP Menu (QUOTE NoteFile))) ) (QUOTE BusyOperation) (CAR Item)) (DEFAULTWHENSELECTEDFN Item Menu Button))))))) (PUTMENUPROP Menu (QUOTE NoteFile) NoteFile) (MENU Menu)))) (NC.CompactNoteFile (LAMBDA (FromNoteFile ToFileName InPlaceFlg PromptWindow) (* kirk: " 3-Jul-86 16:16") (* * Compact a NoteFile. If InPlaceFlg is T calls NC.CompactNoteFileInPlace. Otherwise if ToFileName is NIL, asks for a new file name.) (* * fkr 11/8/85 Updated to handle new CardID scheme and NoteFile object.) (* * kirk 19Nov85: Created from NC.CompactDatabaseInPlace to handle new NoteFile format) (* * fgh 5/186 Totally rewritten to get rid of numerous bugs. Added new PromptWindow parameter.) (* * rht 7/2/86: Fixed bug in call to NC.CompactToTarget and NC.CompactInPlace. They were being called with FromNoteFile instead of (OR FromNoteFile FromFileName).) (* * kirk 3Jul86 Added SETQ NC.DatabaseFileNameSuggestion) (LET (WasOpen FromFileName ToNoteFile success) (* * Get the name of the file to be compacted) (SETQ FromFileName (COND ((NULL FromNoteFile) (PROG1 (NC.DatabaseFileName "Name of NoteFile to be compacted:" " -- " T NIL NIL PromptWindow) (NC.ClearMsg PromptWindow))) ((type? NoteFile FromNoteFile) (fetch (NoteFile FullFileName) of FromNoteFile)) (T FromNoteFile))) (* * If compact to target, get the name of the target file) (if (NULL InPlaceFlg) then (SETQ NC.DatabaseFileNameSuggestion (PACKFILENAME (QUOTE VERSION) NIL (QUOTE BODY) (FULLNAME FromFileName))) (SETQ ToFileName (OR ToFileName (PROG1 (NC.DatabaseFileName "Name of target of compaction:" " -- " T NIL NIL PromptWindow) (NC.ClearMsg PromptWindow))))) (* * As long as you have file names, go ahead!) (if (AND FromFileName (OR InPlaceFlg ToFileName)) then (* * Make full names) (SETQ FromFileName (FULLNAME FromFileName (QUOTE OLD))) (SETQ ToFileName (FULLNAME ToFileName (QUOTE NEW))) (* * Close the file if its open) (if (AND (SETQ FromNoteFile (NC.NoteFileFromFileName FromFileName)) (SETQ WasOpen (OPENP FromFileName))) then (NC.CloseDatabaseFile FromNoteFile)) (* * Compact the file and reopen if successfull and was previously open) (NC.PrintMsg NIL T "Compacting " FromFileName " ...") (if (SETQ ToNoteFile (if InPlaceFlg then (NC.CompactNoteFileInPlace (OR FromNoteFile FromFileName)) else (* compact to target) (NC.CompactNoteFileToTarget (OR FromNoteFile FromFileName) ToFileName))) then (if WasOpen then (NC.OpenDatabaseFile ToNoteFile) else (NC.PrintMsg NIL T "Done compacting " FromFileName)) else (NC.PrintMsg NIL T "Compact of " FromFileName " cancelled.")))))) ) (PUTPROPS KIRKPATCH013 COPYRIGHT ("Xerox Corporation" 1986)) (DECLARE: DONTCOPY (FILEMAP (NIL (437 7462 (NC.NoteFileOperations 447 . 4198) (NC.CompactNoteFile 4200 . 7460))))) STOP