/* AMAN.C */ #include #include #include #include #include #include "aman.h" void GenPrint(char *, char *, char, void (*)(void)); void File(char *); void Edit(char *); void Print(char *); char Exit(void); /* TEMPORARY HERE, FIND BETTER PLACE */ FILE *OpenOutFile(char *, char); void global_init(void); void global_finish(void); void deb_DebPr(void), sim_SimPr(void), brl_BrlPr(void); void main() { char WorkFile[255]; char Finish=NO; WorkFile[0] = 0; while ( ! Finish) { switch(menu_Main(WorkFile)) { case MENU_FILE: File(WorkFile); break; case MENU_EDIT: Edit(WorkFile); break; case MENU_PRINT: Print(WorkFile); break; case MENU_EXIT: Finish = Exit(); break; default: scr_fatal(YES, "Software bug in main"); Finish = Exit(); break; } } } void File(char *WorkFile) { menu_File(WorkFile); } void Edit(char *WorkFile) { int f; f = creatnew(WorkFile, 0); if (f > 0) close(f); if (spawnlp(P_WAIT, "D:\NIKUDAMN.EXE", "D:\NIKUDAMN.EXE", "D:\NIKUDAMN.KW", NULL) == -1) scr_fatal(YES, "Can't ?? activate Nikud"); if (spawnlp(P_WAIT, "D:\WAMAN.EXE", "D:\WAMAN.EXE", WorkFile, NULL) == -1) scr_fatal(YES, "Can't activate EinsteinWriter"); if (spawnlp(P_WAIT, "D:\NIKUDAMN.EXE", "D:\NIKUDAMN.EXE", "/v", NULL) == -1) scr_fatal(YES, "Can't remove Nikud"); } void Print(char *WorkFile) { int Copies, i; char s[5], del; scr_goto(30, 17); del = scr_prompt_input(" ", s, 4, HEBREW, ENGLISH, NO); if (del == ESC) return; Copies = *s != '\0' ? atoi(s) : 1; for (i=1; i <= Copies; i++) { scr_goto(30, 18); scr_out("%d ' ", i); GenPrint(WorkFile, "DSK", YES, deb_DebPr); } } char Exit(void) { SCR_CLS; scr_goto (SCR_WIDTH - (SCR_WIDTH-14)/2, 10); scr_out(" "); scr_goto (SCR_WIDTH - (SCR_WIDTH-10)/2, 16); scr_attrib(SCR_BOLD | SCR_BLINK); scr_out(" "); scr_finish(0); return YES; } void GenPrint(char *WorkFile, char *Ext, char Bin, void (*Routine)(void)) { char FileName[128]; strmfe(FileName, WorkFile, Ext); if (scr_open_file_with_scroll(FileName, NULL, Bin) == NO) return; (*Routine)(); scr_close_file_with_scroll(NULL); } FILE *OpenOutFile(FileName, Bin) char *FileName; char Bin; { FILE *OutFile; OutFile = fopen(FileName, Bin ? "wb" : "w"); if (OutFile == NULL) { scr_error(YES, "Error opening file %s for write", FileName); return NULL; } return OutFile; } char SendNikudFile (char *file, FILE *Pr) { FILE *nikud_file = fopen (file, "r"); int c; if (nikud_file == NULL) { scr_fatal(YES, "Can't load the file %s", file); return NO; } while ((c = fgetc (nikud_file)) != EOF) fputc (c, Pr); fclose (nikud_file); return YES; } char FileExists(char *File, char *Ext) { FILE *f; f = fopen(change_file_ext(File, Ext), "r"); if (f != NULL) { fclose(f); return YES; } else return NO; }