/*************************************************************** * vt100 - terminal emulator - initialization * * Oct-86 TAW - use preferences baud rate only, and * - other inutition based mods. * 860823 DBW - Integrated and rewrote lots of code * v2.0 860809 DBW - Major rewrite * v1.1 860720 DBW - Switches, 80 cols, colors, bug fixes * v1.0 860712 DBW - First version released * ***************************************************************/ #include "vt100.h" void InitDefaults (argc, argv) char **argv; int argc; { FILE *fd; extern void ReadDefaults (); if (((argc > 1) && (fd=fopen(argv[1],"r")) != 0) || (fd=fopen("vt100.init","r")) != 0 || (fd=fopen("c:vt100.init","r")) != 0) { ReadDefaults(fd); fclose(fd); } /* Now set up all the screen info as necessary */ MINY = 14; p_lines = 24; NewWindow.Height = (long)((p_lines*8)+8); NewWindow.MinHeight = NewWindow.Height; NewWindow.MaxHeight = NewWindow.Height; NewWindow.TopEdge = 3; MAXY = ((p_lines-1)*8) + MINY; top = MINY; bot = MAXY; savx = MINX; savy = MINY; NewWindow.TopEdge = 0; NewWindow.Screen = NULL; NewWindow.Type = WBENCHSCREEN; } /***************************************************************** * * this function reads the file that contains the user defaults if * the file was opened by InitDefault, it then modifies the p_ variables * to the new values. This code is based on DBW's code, but I changed it * a little, by removing a few things that I did not use. * * T Whelan Sept 1986 * ******************************************************************/ extern char *malloc(); void ReadDefaults(fd) FILE *fd; { char c0, delim, line[256], macro[256], *ptr; int i, j, k; while (fgets(line,256,fd) != 0) { if ((c0 = line[0]) == '#') continue; if ((c0|' ') == 'e') break; if (sscanf(&line[1],"%d",&i) != 1) continue; if (i < 1 || i > 10) continue; delim = 0; for (j=3; line[j] != 0 && (line[j] == ' ' || line[j] == '\t'); j++) ; if (line[j] == 0) { if (c0 == 'f') p_f[i-1] = NULL; else p_F[i-1] = NULL; break; } delim = line[j]; k = 0; macro[0] = 0; while (line[++j] != delim) { if (line[j] == 0) { if (fgets(line,256,fd) == 0) { line[0] = delim; line[1] = 0; } j = -1; continue; } if (line[j] == '^' && line[++j] != '^') macro[k++] = (line[j]|' ') - 0x60; else if (line[j] != '\n') macro[k++] = line[j]; macro[k] = 0; } ptr = malloc(k+1); if (c0 == 'f') p_f[i-1] = ptr; else p_F[i-1] = ptr; strcpy(ptr,macro); } }