home *** CD-ROM | disk | FTP | other *** search
- /****************************************************************************
- pref.c
-
- activer des preferences différentes
-
- auteur: Louis Salvador
-
- janvier 88
- création
-
- 3 mars 88
- remplacement de wb_parse() pour reduire dimension executable
-
- 17 avril 89
- modification de _main() et _exit pour reduire d'avantage la taille
- de l'executable
-
- 26 juin 89
- fonctionne maintenant en WB
-
- *****************************************************************************/
-
- #include <libraries/dos.h>
- #include <libraries/dosextens.h>
- #include <intuition/intuition.h>
-
- #define MAX_BUFF 256L
- #define INFORM TRUE
-
- struct IntuitionBase *IntuitionBase;
- extern struct WBStartup *WBenchMsg;
-
- char *last_saved = "devs:system-configuration";
-
- main(argc,argv)
- int argc;
- char *argv[];
- {
- struct FileHandle *InFile;
- char PrefBuff[MAX_BUFF];
- LONG ReadLen;
- char *arg;
- struct WBArg *wba;
- #ifdef VERBOSE
- struct FileHandle *STD;
-
- STD = Output(); if (STD == NULL) STD = Open("NIL:",MODE_NEWFILE);
- #endif
-
- if (!(IntuitionBase=(struct IntuitionBase*) OpenLibrary("intuition.library",0L))){
- exit(20L);
- }
-
- if (argc == 0 && WBenchMsg->sm_NumArgs >1L) {
- wba = WBenchMsg->sm_ArgList;
- wba++;
- arg = wba->wa_Name;
- CurrentDir(wba->wa_Lock);
- }
- else if(argc == 2)
- arg = argv[1];
- else {
- #ifdef VERBOSE
- Write(STD,"usage: pref preference_file\n pref *\n",42L);
- #else
- DisplayBeep(0L);
- #endif
- exit(20);
- }
-
- if ((strcmp(arg,"standard") == 0) || (strcmp(arg,"*") == 0)) {
- arg = last_saved;
- #ifdef VERBOSE
- Write(STD,"preferences reset to last saved\n",32L);
- #endif
- }
- if ((InFile = Open(arg, MODE_OLDFILE)) == NULL){
- #ifdef VERBOSE
- Write(STD,"Cannot open input file\n",23L);
- #else
- DisplayBeep(0L);
- #endif
- exit(20);
- }
- ReadLen = Read(InFile,PrefBuff,MAX_BUFF);
- Close(InFile);
-
- if (ReadLen == 232)
- SetPrefs((struct Preferences *)PrefBuff,ReadLen,INFORM);
- else {
- #ifdef VERBOSE
- Write(STD,"Not a preferences file\n",23L);
- #else
- DisplayBeep(0L);
- #endif
- }
- CloseLibrary(IntuitionBase);
- }
-
-