1 /*********************************************************************/ 2 /* bibView: Administration of BibTeX-Databases */ 3 /* (Verwaltung von BibTeX-Literaturdatenbanken) */ 4 /* */ 5 /* Module: bibview.h */ 6 /* */ 7 /* - Headerfile */ 8 /* - */ 9 /* */ 10 /* Author: Holger Martin, martinh@informatik.tu-muenchen.de */ 11 /* Peter M. Urban, urban@informatik.tu-muenchen.de */ 12 /* */ 13 /* History: */ 14 /* 11.22.91 PMU created */ 15 /* 05.26.92 Version 1.0 released */ 16 /* */ 17 /* Copyright 1991 Martin, Urban */ 18 /* See ./Copyright for complete rights and liability information. */ 19 /* */ 20 /*********************************************************************/ 21 22 #include "patchlevel.h" 23 24 /* Macros and Definitions */ 25 /* ---------------------- */ 26 27 /* general stuff */ 28 #define PROGNAME "bibView" 29 #define DEFAULT_RCFILE ".bibviewrc" 30 #define MAX_BIBTEX_TYPES 30 31 #define MAX_FIELDS 80 32 #define MAX_ICONNAMELEN 25 33 #define MAX_FILEPATHLEN 1024 34 #define MAX_FILENAMELEN 256 35 #define MAX_OPENFILE 256 36 #define MAXTREEROOTS MAX_OPENFILE 37 #define MAX_NEW_USERDEF_FLDS 3 38 #define MAX_LINELEN 80 39 #define MAX_ERRORSTRLEN 1000 40 #define MAX_ERRLINELENGTH 80 41 #define MAX_UEBERGABE 10000 42 #define FLDINDENT 3 43 #define CONTINDENT 15 44 #define NEWLINEINDENT 7 45 #define OK 1 46 47 /* defines for window spacing */ 48 #define BIBWIN_MARGIN 20 49 #define SUBWIN_MARGIN 20 50 #define BV_ICON_MARGIN 10 51 #define BV_ICON_WIDTH 75 52 #define LST_ICON_WIDTH 75 53 #define LST_ICON_MARGIN 10 54 #define CARDWIN_MARGIN 20 55 #define CARD_ICON_MARGIN 10 56 #define CARD_ICON_WIDTH 75 57 #define BIBWIN_HSPACE 40 58 #define BIBWIN_VSPACE 60 59 #define CARDWIN_HSPACE 40 60 #define CARDWIN_VSPACE 40 61 62 #define LST_WHITESPACE 5 63 64 /* errors of type Errcode */ 65 typedef int Errcode; /* return type for error codes */ 66 67 /* general errors */ 68 #define ERR_NOT_IMPLEMENTED -10 69 #define ERR_NOMALLOC -11 70 #define ERR_NOBIB -12 71 #define ERR_NOCARD -13 72 #define ERR_NOBIBOPEN -14 73 #define ERR_COLL_SAME_BIB -15 74 #define ERR_COPY_SAME_BIB -16 75 #define ERR_COPY_SAME_LIST -17 76 #define ERR_CROSSEMPTY -18 77 #define ERR_CROSSNOTFOUND -19 78 79 80 /* gui errors */ 81 #define ERR_NOCASCADE -30 82 83 /* file errors */ 84 #define ERR_NO_OPEN_FILE -50 85 #define ERR_NO_CFGFILE -51 86 #define ERR_NO_OPEN_TMP -52 87 #define ERR_SAVING_TMP -53 88 #define ERR_IS_CORRECTED -54 89 #define NO_VALID_FILENAME -56 90 #define BIF_OK 1 91 #define BIF_ECALLOC -11 92 #define BIF_EWRITE -55 93 #define BIF_EOPEN -50 94 #define BIF_ENOTEXISTS -57 95 96 /* card errors */ 97 #define ERR_ILLEGAL_CARDS -60 98 #define ERR_NO_ILLEGAL_CARDS -61 99 #define ERR_ERROR_IN_FILE -62 100 #define ERR_REQFIELDS -63 101 #define SYNTAX_ERROR -64 102 103 /* database tree errors */ 104 #define DBT_OK 1 105 #define DBT_ECALLOC -11 106 #define DBT_EDUPKEY -100 107 #define DBT_ECOMP -101 108 #define DBT_ENOMATCH -102 109 #define DBT_ENOCARD -103 110 #define DBT_EAUTHOR_EDITOR -114 111 #define DBT_ECHAPTER_PAGES -115 112 #define DBT_ROOTSFULL -120 113 #define DBT_ENONODE -121 114 115 116 /* structure for single linked list of strings */ 117 typedef struct _ListNode { 118 String data; 119 struct _ListNode *next; 120 } ListNode; 121 122 /* structure to hold lists of predefined field data */ 123 typedef struct { 124 ListNode *allfields, 125 *bibtype, 126 *mainkey; 127 ListNode *field[MAX_FIELDS]; 128 } PredefLists; 129 130 131 /* structure to hold information for list layout */ 132 typedef struct { 133 int number; 134 int field[MAX_FIELDS]; 135 int width[MAX_FIELDS]; 136 } listEntry; 137 138 139 /* type to hold lists of user defined fields */ 140 typedef ListNode *UserDefFld; 141 142 /* card types possible in a BibTeX file */ 143 typedef enum { article, 144 book, 145 booklet, 146 conference, 147 inbook, 148 incollection, 149 inproceedings, 150 manual, 151 mastersthesis, 152 misc, 153 phdthesis, 154 proceedings, 155 techreport, 156 unpublished, 157 otherentry, 158 bibrc, 159 regexpr, 160 illegal 161 } CardType; /* must be changed if new type is added */ 162 163 164 /* card types possible in a BibTeX file */ 165 typedef enum { 166 ncrossref, 167 nkey, 168 nauthor, 169 neditor, 170 ntitle, 171 nbooktitle, 172 ninstitution, 173 njournal, 174 norganization, 175 nchapter, 176 npages, 177 nyear, 178 nmonth, 179 npublisher, 180 naddress, 181 nschool, 182 nedition, 183 nhowpublished, 184 nvolume, 185 nnumber, 186 nseries, 187 ntype, 188 nnote, 189 nannote, 190 nillegal 191 } FieldName; /* must be changed if new field is added */ 192 193 /* structure for user defined fields */ 194 typedef struct _UserFld { 195 String fldName; 196 String fldData; 197 Widget fldLabel; 198 Widget fldText; 199 struct _UserFld *next; 200 } UserFld; 201 202 203 /* structure for all possible data of any card */ 204 typedef struct { 205 int cardtype; 206 Boolean annoteChanged; 207 int sorted; 208 String authorsort, 209 cardtypestr, 210 mainkey; 211 String field[MAX_FIELDS]; 212 UserFld *ufield; 213 } CardData, *CardDataPtr; 214 215 typedef struct _CardListNode { 216 CardData *data; 217 struct _CardListNode *next; 218 } CardListNode, *CardDataList; 219 220 /* structure to hold all widget pointers for all card types */ 221 typedef struct { 222 Widget wfield[2*MAX_FIELDS]; 223 Widget owntype, owntypeL, 224 mainkey, mainkeyL, 225 annote; 226 } CardWidgets, *CardWidgetsPtr; 227 228 /* structure for annote windows within card wins */ 229 typedef struct { 230 String shellName; /* name of popup shell */ 231 Widget annoteShell, /* popup shell */ 232 annoteWin, /* paned window for menu, list and cmds */ 233 cmdBox, /* command box (menu bar) */ 234 save, /* save command button */ 235 close; /* close command button */ 236 Position winX, /* x-coord of cardWin relativ to bibDesk */ 237 winY, /* y-coord of cardWin relativ to bibDesk */ 238 iconX, /* x-coord of icon for shell */ 239 iconY; /* y-coord of icon for shell */ 240 Boolean changed; /* annote changed flag */ 241 } AnnoteWin, *AnnoteWinPtr; 242 243 244 /* structure that hold widgets for displaying card data */ 245 typedef struct { 246 CardWidgets cw; /* structure of all possible widgets */ 247 CardData buf; /* pointers in textBuf for string buffers */ 248 String textBuf; /* ptr to memory malloc'ed in one block */ 249 } CardTextWin, *CardTextWinPtr; 250 251 /* structure for card window within bibliography wins */ 252 typedef struct { 253 String shellName; /* label for window */ 254 Widget cardShell, /* popup shell */ 255 cardWin, /* paned window */ 256 duplicateMenu,/* menu */ 257 cmdBox, /* command box */ 258 userDef, /* user defined command button */ 259 annote, /* annote command button */ 260 delete, /* delete command button */ 261 change, /* change command button */ 262 duplicate, /* duplicate command button */ 263 copy, /* copy command button */ 264 crossref, /* copy command button */ 265 next, /* next command button */ 266 close, /* close command button */ 267 cardDesk, /* desktop for general attribs for all cards */ 268 cardFlds, /* desktop on which to place display widgets */ 269 usrFldVport, /* vieport for user def fields */ 270 usrFldDesk, /* desktop for user def fields */ 271 usrFldHead; /* heading for user def fields */ 272 Dimension width, /* Values of Shell without user def fields */ 273 height, 274 borderWidth; 275 CardTextWin ct; /* structure of widgets to display data */ 276 Position winX, /* x-coord of cardWin relativ to bibDesk */ 277 winY, /* y-coord of cardWin relativ to bibDesk */ 278 iconX, /* x-coord of icon for shell */ 279 iconY; /* y-coord of icon for shell */ 280 } CardWin, *CardWinPtr; 281 282 /* structure for opened bibliography card */ 283 typedef struct { 284 CardDataPtr cd; /* ptr to card bibliography data */ 285 CardWinPtr cw; /* ptr to card window data */ 286 AnnoteWinPtr aw; /* ptr to annote window data */ 287 Boolean extended; /* user fields displayed (T/F) */ 288 Boolean changed; /* card changed flag */ 289 Boolean new; /* card is new flag */ 290 void *bp; /* ptr to bib card belongs to */ 291 } Card, *CardPtr; 292 293 /* structure for linked list of bib cards */ 294 typedef struct _CardEl { 295 Card card; 296 struct _CardEl *next, 297 *prev; 298 } CardEl, *CardList; 299 300 /* structure for list windows within bibliography wins */ 301 typedef struct { 302 String shellName; /* name of popup shell */ 303 Widget lstShell, /* popup shell */ 304 lstWin, /* paned window for menu, list and cmds */ 305 lstVp, /* viewport for list */ 306 vpWin, /* child of viewport */ 307 cmdBox, /* command box (menu bar) */ 308 list, /* window containing list */ 309 headBox, /* heading for list */ 310 save, /* save command button */ 311 print, /* print command button */ 312 sort, /* sort command button */ 313 copy, /* sort command button */ 314 quit, /* quit command button */ 315 sortMenu; /* sort pulldown menu */ 316 int listArgc; /* no of entries in list */ 317 String *listArgv; /* argv of ptr to list entries */ 318 String strs; /* buffer for list entries */ 319 CardListNode *cardLst; /* argv of ptr to cards in list */ 320 Position winX, /* x-coord of list window */ 321 winY, /* y-coord of list window */ 322 iconX, /* x-coord of icon for shell */ 323 iconY; /* y-coord of icon for shell */ 324 } LstWin, *LstWinPtr; 325 326 /* structure for macro windows within bibliograhpy wins */ 327 typedef struct { 328 String shellName; /* name of popup shell */ 329 Widget macShell, /* popup shell */ 330 macWin, /* paned window for menu, list and cmds */ 331 cmdBox, /* command box (menu bar) */ 332 save, /* save command button */ 333 close, /* close command button */ 334 file; /* text widget for macro file */ 335 Position winX, /* x-coord of shell */ 336 winY, /* y-coord of shell */ 337 iconX, /* x-coord of icon for shell */ 338 iconY; /* y-coord of icon for shell */ 339 Boolean changed; /* macros changed flag */ 340 } MacroWin, *MacroWinPtr; 341 342 /* structure for bibliography windows */ 343 typedef struct { 344 String shellName; /* label for popup shell */ 345 Widget bibShell, /* popup shell */ 346 bibWin, /* main window */ 347 cmdBox, /* command box */ 348 bibdesk, /* desktop for cardWins */ 349 new, /* new command button */ 350 search, /* search command button */ 351 list, /* list command button */ 352 macro, /* macro command button */ 353 print, /* print command button */ 354 save, /* save command button */ 355 close, /* close command button */ 356 window, /* window command button */ 357 newMenu, /* pulldown menu new */ 358 windowMenu; /* pulldown menu window */ 359 Position winX, /* x-coord of shell */ 360 winY, /* y-coord of shell */ 361 iconX, /* x-coord of icon for shell */ 362 iconY; /* y-coord of icon for shell */ 363 } BibWin, *BibWinPtr; 364 365 /* structure for an opened BibTeX-file */ 366 typedef struct { 367 char filepath[MAX_FILEPATHLEN]; /* BibTeX filename */ 368 char filename[MAX_FILENAMELEN]; /* BibTeX filename */ 369 char *tempfile; /* temp filename */ 370 char *macrofile; /* macro filename */ 371 Boolean changed; /* file changed flag */ 372 int treeIdx; /* handle of data tree */ 373 BibWinPtr bw; /* ptr to bib window data */ 374 LstWinPtr lw; /* ptr to list window data */ 375 int sortedby; /* how the list is sorted */ 376 MacroWinPtr mw; /* ptr to macro win data */ 377 MacroWinPtr ew; /* ptr to edit win data */ 378 CardList cl; /* ptr to list of open cards */ 379 int noOfCardWins; /* number of opened cards */ 380 int nextCardPos; /* pos of next opened card */ 381 } Bib, *BibPtr; 382 383 typedef struct { 384 Boolean quiet; 385 Boolean iconsOnDesk; 386 Boolean makeBackup; 387 Boolean autoCheck; 388 Boolean reqFields; 389 Boolean ignoreCase; 390 Boolean printAsBib; 391 Boolean displayErrWin; 392 Boolean focus; 393 Boolean orig; 394 String bibfile; 395 String rcfile; 396 String bibdir; 397 Pixel focusColor; 398 Pixel reqColor; 399 Pixel authedColor; 400 } OptionsRec; 401 402 403 #define SORT_MAINKEY -1 404 #define SORT_UNSRT -2 405 #define SORT_TYPE -3 406 407 /* codes and macros for options functions */ 408 #define OPT_MAX_OPTION 10+1 /* plus line in menu */ 409 #define OPT_BEEP_ON_ERROR 1 410 #define OPT_BACKUP_ON_SAVE 2 411 #define OPT_ICON_ON_DESKTOP 3 412 #define OPT_AUTO_CHECK_BIB 4 413 #define OPT_REQUIRED_FIELDS 5 414 #define OPT_IGNORE_CASE 6 415 #define OPT_PRINT_AS_BIB 7 416 #define OPT_DISPLAY_ERRWIN 8 417 #define OPT_FOCUS 9 418 #define OPT_ORIG 10 419 420 #if !defined(COT_OPT) 421 extern Boolean optionsStatus[]; 422 #endif 423 #define cotBeepOnError() (optionsStatus[OPT_BEEP_ON_ERROR]) 424 #define cotBackupBeforeSave() (optionsStatus[OPT_BACKUP_ON_SAVE]) 425 #define cotIconizeOnDesktop() (optionsStatus[OPT_ICON_ON_DESKTOP]) 426 #define cotAutoCheckBib() (optionsStatus[OPT_AUTO_CHECK_BIB]) 427 #define cotRequiredFields() (optionsStatus[OPT_REQUIRED_FIELDS]) 428 #define cotIgnoreCase() (optionsStatus[OPT_IGNORE_CASE]) 429 #define cotPrintAsBib() (optionsStatus[OPT_PRINT_AS_BIB]) 430 #define cotDisplayErrWin() (optionsStatus[OPT_DISPLAY_ERRWIN]) 431 #define cotFocus() (optionsStatus[OPT_FOCUS]) 432 #define cotOrig() (optionsStatus[OPT_ORIG]) 433 434 435 /* Prototypes */ 436 /* ---------- */ 437 438 /* types */ 439 typedef Errcode (*CtlFuncPtr) (BibPtr bp); 440 441 /* bibview.c */ 442 443 /* gui_main.c */ 444 int gumMainWin (void); 445 446 /* ctl_open.c */ 447 void copNewCmd (Widget w, XtPointer clientData, XtPointer callData); 448 void copOpenCmd (Widget w, XtPointer clientData, XtPointer callData); 449 void copLoadBibFile (Widget w, XtPointer clientData, XtPointer callData); 450 451 /* ctl_save.c */ 452 void csaQuitBibviewCmd (Widget w, XtPointer clientData, XtPointer callData); 453 void csaCloseBibCmd (Widget w, XtPointer clientData, XtPointer callData); 454 void csaCloseCmd (Widget w, XtPointer clientData, XtPointer callData); 455 Errcode csaCloseBib (BibPtr bp); 456 void csaSaveBibCmd (Widget w, XtPointer clientData, XtPointer callData); 457 void csaSaveCmd (Widget w, XtPointer clientData, XtPointer callData); 458 void csaSaveAsBibCmd (Widget w, XtPointer clientData, XtPointer callData); 459 Errcode csaSaveBib (BibPtr bp); 460 Errcode csaSaveAsBib (BibPtr bp); 461 462 /* ctl_serv.c */ 463 void cseCollateBibCmd (Widget w, XtPointer clientData, XtPointer callData); 464 Errcode cseCollateBibs (BibPtr sbp, BibPtr dbp); 465 void cseCheckBibCmd (Widget w, XtPointer clientData, XtPointer callData); 466 Errcode cseCheckBib (BibPtr bp, Boolean sayOkMsg); 467 void cseEditMacrosCmd (Widget w, XtPointer clientData, XtPointer callData); 468 void cseMacrosCmd (Widget w, XtPointer clientData, XtPointer callData); 469 Errcode cseEditMacros (BibPtr bp); 470 void cseSetMacroChangeFlag (Widget w, XtPointer clientData, XtPointer callData); 471 void cseQuitMacrosCmd (Widget w, XtPointer clientData, XtPointer callData); 472 void cseSaveMacrosCmd (Widget w, XtPointer clientData, XtPointer callData); 473 void cseLoadConfigCmd (Widget w, XtPointer clientData, XtPointer callData); 474 475 /* ctl_opt.c */ 476 void cotOptionsControl (Widget w, XtPointer client_data, XtPointer call_data); 477 void cotOptionIconOnDeskCmd (Widget w, XtPointer clientData, XtPointer callData); 478 479 /* gui_bibl.c */ 480 int gubOpenBibWin(BibPtr bp); 481 int gubNoOfOpenBibs (void); 482 void gubCloseBibWinCmd(Widget w, XtPointer clientData, XtPointer callData); 483 Errcode gubCloseBibWin (BibPtr bp); 484 void gubCascadeCmd(Widget w, XtPointer clientData, XtPointer callData); 485 Errcode gubCascade(void); 486 Errcode gubSetWindowCoords (Boolean calcOnly); 487 Errcode gubSetIconCoords (Boolean calcOnly); 488 Errcode gubUnsetIconCoords (Boolean calcOnly); 489 490 /* ctl_srch.c */ 491 void csrSearchCmd (Widget w, XtPointer clientData, XtPointer callData); 492 void csrListCmd (Widget w, XtPointer clientData, XtPointer callData); 493 void csrDisplayCardCmd (Widget w, XtPointer clientData, XtPointer callData); 494 495 /* gui_card.c */ 496 Errcode gucOpenCardWin (BibPtr bp, CardPtr cp, Boolean isNew); 497 void gucCloseCardCmd (Widget w, XtPointer clientData, XtPointer callData); 498 Errcode gucCloseCardWin (CardPtr cp); 499 Errcode gucOpenUserFields (CardPtr cp); 500 Errcode gucCloseUserFields (CardPtr cp); 501 Errcode gucSaveCardData (CardPtr cp); 502 Errcode gucSaveUserFields (CardPtr cp); 503 Boolean gucStdFldsChanged (CardPtr cp); 504 Boolean gucAuthorChanged (CardPtr cp); 505 void gucCascadeCmd (Widget w, XtPointer clientData, XtPointer callData); 506 Errcode gucCascade (BibPtr bp); 507 Errcode gucSetWindowCoords (BibPtr bp, Boolean calcOnly); 508 Errcode gucSetIconCoords (BibPtr bp, Boolean calcOnly); 509 Errcode gucUnsetIconCoords (BibPtr bp, Boolean calcOnly); 510 511 /* ctl_card.c */ 512 void ccdNewCardCmd (Widget w, XtPointer clientData, XtPointer callData); 513 void ccdUserdataCmd (Widget w, XtPointer clientData, XtPointer callData); 514 void ccdSaveCardCmd (Widget w, XtPointer clientData, XtPointer callData); 515 void ccdDeleteCardCmd (Widget w, XtPointer clientData, XtPointer callData); 516 void ccdAnnoteCardCmd (Widget w, XtPointer clientData, XtPointer callData); 517 void ccdChangeCardCmd (Widget w, XtPointer clientData, XtPointer callData); 518 void ccdCopyCardCmd (Widget w, XtPointer clientData, XtPointer callData); 519 void ccdOpenCrossrefCmd (Widget w, XtPointer clientData, XtPointer callData); 520 void ccdNextCardCmd (Widget w, XtPointer clientData, XtPointer callData); 521 void ccdNextChangeCmd (Widget w, XtPointer clientData, XtPointer callData); 522 void ccdDuplicateCardCmd (Widget w, XtPointer clientData, XtPointer callData); 523 Errcode ccdCopyCard1 (BibPtr bp); 524 Errcode ccdCopyCard (BibPtr bp, CardPtr cp); 525 void ccdSetChangeFlag (Widget w, XtPointer clientData, XtPointer callData); 526 void ccdCloseCardCmd (Widget w, XtPointer clientData, XtPointer callData); 527 Errcode ccdCloseCard (BibPtr bp, CardPtr cp); 528 529 /* ctl_prt.c */ 530 void cprPrintBibCmd (Widget widget, XtPointer clientData, XtPointer callData); 531 void cprPrintCmd (Widget widget, XtPointer clientData, XtPointer callData); 532 Errcode cprPrintBib (BibPtr bp); 533 void cprPrintListCmd (Widget widget, XtPointer clientData, XtPointer callData); 534 Errcode cprPrintList (BibPtr bp, String fname, int type); 535 void cprSaveListCmd(Widget widget, XtPointer clientData, XtPointer callData); 536 537 /* gui_list.c */ 538 Errcode gulOpenListWin (BibPtr bp, CardDataList cl); 539 Boolean gulListWinExists (BibPtr bp); 540 Errcode gulReplaceListData (BibPtr bp, CardDataList cl); 541 void gulCloseListWinCmd (Widget w, XtPointer clientData, XtPointer callData); 542 void gulCopyListWinCmd (Widget w, XtPointer clientData, XtPointer callData); 543 void gulSortListWinCmd (Widget w, XtPointer clientData, XtPointer callData); 544 Errcode gulCloseListWin (BibPtr bp); 545 Errcode gulCopyListWin (BibPtr bp); 546 Errcode gulSortListWin (BibPtr bp); 547 Errcode gulCascade (BibPtr bp); 548 Errcode gulSetWindowCoords (BibPtr bp, Boolean calcOnly); 549 Errcode gulSetIconCoords (BibPtr bp, Boolean calcOnly); 550 Errcode gulUnsetIconCoords (BibPtr bp, Boolean calcOnly); 551 552 /* gui_edit.c */ 553 Errcode gueOpenListWin (BibPtr bp); 554 Boolean gueMacroWinExists (BibPtr bp); 555 void gueCloseMacroWinCmd (Widget w, XtPointer clientData, XtPointer callData); 556 Errcode gueCloseMacroWin (BibPtr bp); 557 Errcode gueSaveMacrosToFile (BibPtr bp); 558 Errcode gueCascade (BibPtr bp); 559 Errcode gueSetWindowCoords (BibPtr bp, Boolean calcOnly); 560 Errcode gueSetIconCoords (BibPtr bp, Boolean calcOnly); 561 Errcode gueUnsetIconCoords (BibPtr bp, Boolean calcOnly); 562 Errcode gueOpenBibErrWin(BibPtr bp, int line); 563 Errcode gueCloseBibErrWin (BibPtr bp); 564 void gueCloseBibErrWinCmd (Widget w, XtPointer clientData, XtPointer callData); 565 566 /* gui_widg.c */ 567 Errcode guwSelectBib (String head, CtlFuncPtr fct); 568 void guwNotImpl (Widget w, XtPointer clientData, XtPointer callData); 569 void guwError(Errcode errcode); 570 void guwWarning(Errcode errcode); 571 void guwNotice(Errcode errcode); 572 void guwConfirmClose (Position x, Position y, 573 XtCallbackProc p1, XtCallbackProc p2); 574 void guwConfirmDelete (Position x, Position y, 575 XtCallbackProc p1, XtCallbackProc p2); 576 void guwProgInfo (Widget w, XtPointer clientData, XtPointer callData); 577 578 /* gui_help.c */ 579 void hlpOpenHelpWin(int nummer, char *string1, char *string2); 580 void hlpOpenHelpWinCmd (Widget w, XtPointer clientData, XtPointer callData); 581 void hlpQuitHelpError(int nummer); 582 583 /* bib_file */ 584 Errcode bifFileRead(BibPtr bp); 585 Errcode bifFileWrite(BibPtr bp); 586 Errcode bifFileListWrite(BibPtr bp, CardListNode *list, String fname); 587 588 /* rc_file.c */ 589 Errcode rcfReadCfgFile (char *cfgFname); 590 Errcode rcfReadOptions (Boolean bool); 591 Errcode rcfSetPrintMode (Boolean bool); 592 Errcode procDefaultDirLine (char *str); 593 594 /* globdata.c */ 595 Errcode Scalloc(String *s1, String s2); 596 int isstandardfield(int ft, int ct); 597 int isrequiredfield(int ft, int ct); 598 void CollapsePath(char *in, char *out); 599 char *strupr (char *s); 600 char *strlower (char *s); 601 void glbCreateTypeMenu (String menuName, Widget parent, Widget *menu, 602 XtCallbackProc cb, XtPointer p); 603 void glbCreateFieldMenu (String menuName, Widget parent, Widget *menu, 604 XtCallbackProc cb, XtPointer p); 605 void glbReadFileOpenBib(BibPtr bp); 606 String glbNewString (String s); 607 String glbTrimString (String s); 608 Boolean glbIsStringEmpty (String s); 609 String glbTypeToName (int type); 610 String glbFldToName (int i); 611 String glbFldToUpName (int i); 612 int glbNameToType (String name); 613 int glbNameToField (String name); 614 Errcode glbNewBibListEl (BibPtr *bp); 615 Errcode glbDelBibListEl (BibPtr bp); 616 BibPtr glbFirstBibListEl (void); 617 BibPtr glbNextBibListEl (BibPtr bp); 618 Boolean glbIsBibListEl (BibPtr bp); 619 Errcode glbNewCardListEl (BibPtr bp, CardPtr *cp, CardDataPtr cd); 620 Errcode glbDupCardListEl (BibPtr bp, CardPtr *cp, CardDataPtr cd, int type); 621 Errcode glbDelCardListEl (BibPtr bp, CardPtr cp); 622 CardPtr glbFirstCardListEl (BibPtr bp); 623 CardPtr glbNextCardListEl (BibPtr bp, CardPtr cp); 624 CardPtr glbLastCardListEl (BibPtr bp); 625 Boolean glbIsCardListEl (BibPtr bp, CardPtr cp); 626 CardPtr glbFindCard (BibPtr bp, CardDataPtr cd); 627 int glbContIllegalChar(char *dateiName); 628 Errcode glbCheckPath(String path, String name); 629 Errcode glbMakeBackup(String path); 630 631 /* db_tree.c */ 632 Errcode dbtInsert (BibPtr bp, CardData *card); 633 Errcode dbtDelete (int treeIdx, CardData *card, int *deleted); 634 Errcode dbtSearch (int treeIdx, CardData **card, CardListNode **list); 635 Errcode dbtMakeCard (CardData **card); 636 Errcode dbtDeleteCard (CardData **card); 637 Errcode dbtMakeTreeList (int treeIdx, int listIdx); 638 Errcode dbtGetFreeTreeIdx (int *treeIdx); 639 Errcode dbtGetFreeListIdx (int *listIdx); 640 Errcode dbtSearchList (int treeIdx, CardData *card, CardListNode **list, 641 int sortedby); 642 Errcode dbtBuildList (int treeIdx, CardListNode **list, int sortedby); 643 Errcode dbtTestCard (CardData *c); 644 Errcode dbtCheckAllCards (int treeIdx, CardListNode **list); 645 Errcode dbtDeleteTree (int treeIdx); 646 Errcode dbtAppendUserFld(UserFld **list, UserFld *obj); 647 Errcode dbtMakeListNode (ListNode **list); 648 Errcode dbtListAppend (ListNode **list, String word); 649 Errcode dbtCardListDelete(CardListNode **list); 650 Errcode dbtCardListInsert(CardListNode **list, CardData *card, int sortedby); 651 Errcode dbtCardListSortIns(CardListNode **list, CardData *card, int sortedby); 652