void Hl(int y, char *txt) { Ls(y); strncat(hstr, colour_str(WHITE, BLUE), 80); strncat(hstr, padleft(txt, 58, ' '), 80); Rs(); PUTSTR(chartran(hstr)); }
void Full_Help(void) { strcpy(hstr, colour_str(LIGHTGREEN, BLUE)); /* Top row */ strncat(hstr, locate_str(1, 10), 80); strncat(hstr, (char *)"\xDA", 80); strncat(hstr, hLine_str(58), 80); strncat(hstr, (char *)"\xBF", 80); PUTSTR(chartran(hstr)); Ws(2); PUTSTR(chartran(hstr)); Ls(3); strncat(hstr, colour_str(YELLOW, BLUE), 80); strncat(hstr, padleft((char *)" Editor Help", 58, ' '), 80); Rs(); PUTSTR(chartran(hstr)); Ws(4); PUTSTR(chartran(hstr)); Hl( 5, (char *)"Ctrl-S or LeftArrow - Cursor left"); Hl( 6, (char *)"Ctrl-D or RightArrow - Cursor right"); Hl( 7, (char *)"Ctrl-E or UpArrow - Cursor up"); Hl( 8, (char *)"Ctrl-X or DownArrow - Cursor down"); Hl( 9, (char *)"Ctrl-V or Insert - Insert or Overwrite"); Hl(10, (char *)"Ctrl-N - Insert line"); Hl(11, (char *)"Ctrl-Y - Delete line"); Ws(12); PUTSTR(chartran(hstr)); Hl(13, (char *)"Ctrl-L - Refresh screen"); Hl(14, (char *)"Ctrl-R - Read from file"); Ws(15); PUTSTR(chartran(hstr)); strcpy(hstr, locate_str(16,10)); strncat(hstr, (char *)"\xC0", 80); strncat(hstr, hLine_str(58), 80); strncat(hstr, (char *)"\xD9", 80); PUTSTR(chartran(hstr)); }
int colour_sca (char *string, char *aryidx, int n) { int i, r, rtn=0; char *p; spc_t *spc; memset (aryidx, 0, n); /* * Process each converted entry from the config file * using the appropriate matching algorithm. The 'rtn' * variable is used to pass back information about * whether a match was found or not for subsequent use * in conjunction with 'opt_matching'. */ for (spc=Spc, r=0; r<Spn; r++, spc++) { if (spc->patype == PATYPE_REGEXP || spc->patype == PATYPE_RECASE) rtn |= colour_rex (spc, string, aryidx, n); else if (spc->patype == PATYPE_STRING) rtn |= colour_str (spc, string, aryidx, n); else if (spc->patype == PATYPE_CHARS) rtn |= colour_chr (spc, string, aryidx, n); else /* PATYPE_UNIXTM */ rtn |= colour_rex (spc, string, aryidx, n); } if (opt_debug > 3) { p = string; for (i=0; i<n; i++) putchar (*p++); putchar ('\n'); p = aryidx; for (i=0; i<n; i++) putchar (*p++); putchar ('\n'); } return (rtn); }
void Rs() { strncat(hstr, colour_str(LIGHTGREEN, BLUE), 80); strncat(hstr, (char *)"\xB3", 80); }
/* * Product information screen */ void cr(void) { char *temp; temp = calloc(81, sizeof(char)); if (utf8) chartran_init((char *)"CP437", (char *)"UTF-8", 'B'); strncpy(pstr, clear_str(), 255); strncat(pstr, colour_str(DARKGRAY, BLACK), 255); /* Print top row */ strncat(pstr, (char *)"\xDA", 255); strncat(pstr, hLine_str(76), 255); strncat(pstr, (char *)"\xBF\r\n", 255); PUTSTR(chartran(pstr)); wl(); PUTSTR(chartran(pstr)); ls(); snprintf(temp, 80, "MBSE Bulletin Board System %s (%s-%s)", VERSION, OsName(), OsCPU()); strncat(pstr, pout_str(YELLOW, BLACK, padleft(temp, 76, ' ')), 255); rs(); PUTSTR(chartran(pstr)); wl(); PUTSTR(chartran(pstr)); ls(); snprintf(temp, 81, "%s", COPYRIGHT); strncat(pstr, pout_str(LIGHTCYAN, BLACK, padleft(temp, 76, ' ')), 255); rs(); PUTSTR(chartran(pstr)); wl(); PUTSTR(chartran(pstr)); ls(); snprintf(temp, 81, "Compiled on %s at %s", __DATE__, __TIME__); strncat(pstr, pout_str(LIGHTRED, BLACK, padleft(temp, 76, ' ')), 255); rs(); PUTSTR(chartran(pstr)); wl(); PUTSTR(chartran(pstr)); ls(); strncat(pstr, pout_str(LIGHTCYAN, BLACK, (char *)"MBSE has been written and designed by Michiel Broek. Many others have given "), 255); rs(); PUTSTR(chartran(pstr)); ls(); strncat(pstr, pout_str(LIGHTCYAN, BLACK, (char *)"valuable time in the form of new ideas and suggestions on how to make MBSE "), 255); rs(); PUTSTR(chartran(pstr)); ls(); strncat(pstr, pout_str(LIGHTCYAN, BLACK, (char *)"BBS a better BBS "), 255); rs(); PUTSTR(chartran(pstr)); wl(); PUTSTR(chartran(pstr)); ls(); strncat(pstr, pout_str(WHITE, BLACK, (char *)"Available from http://www.mbse.eu or 2:280/2802 "), 255); rs(); PUTSTR(chartran(pstr)); wl(); PUTSTR(chartran(pstr)); ls(); strncat(pstr, pout_str(LIGHTRED, BLACK, (char *)"JAM(mbp) - Copyright 1993 Joaquim Homrighausen, Andrew Milner, "), 255); rs(); PUTSTR(chartran(pstr)); ls(); strncat(pstr, pout_str(LIGHTRED, BLACK, (char *)" Mats Birch, Mats Wallin. "), 255); rs(); PUTSTR(chartran(pstr)); ls(); strncat(pstr, pout_str(LIGHTRED, BLACK, (char *)" ALL RIGHTS RESERVED. "), 255); rs(); PUTSTR(chartran(pstr)); wl(); PUTSTR(chartran(pstr)); ls(); strncat(pstr, pout_str(LIGHTBLUE, BLACK, (char *)"This is free software; released under the terms of the GNU General Public "), 255); rs(); PUTSTR(chartran(pstr)); ls(); strncat(pstr, pout_str(LIGHTBLUE, BLACK, (char *)"License as published by the Free Software Foundation. "), 255); rs(); PUTSTR(chartran(pstr)); wl(); PUTSTR(chartran(pstr)); strcpy(pstr, (char *)"\xC0"); strncat(pstr, hLine_str(76), 255); strncat(pstr, (char *)"\xD9\r\n", 255); PUTSTR(chartran(pstr)); free(temp); chartran_close(); Enter(1); Pause(); }
void rs(void) { strncat(pstr, colour_str(DARKGRAY, BLACK), 255); strncat(pstr, (char *)"\xB3\r\n", 255); }
/* * Display last callers screen. */ void LastCallers(char *OpData) { FILE *fp; int LineCount = 5, count = 0; char lstr[201], *sFileName, *Heading; struct lastcallers lcall; struct lastcallershdr lcallhdr; sFileName = calloc(PATH_MAX, sizeof(char)); Heading = calloc(81, sizeof(char)); if (utf8) chartran_init((char *)"CP437", (char *)"UTF-8", 'B'); strcpy(lstr, clear_str()); PUTSTR(chartran(lstr)); snprintf(sFileName, PATH_MAX, "%s/etc/lastcall.data", getenv("FTND_ROOT")); if ((fp = fopen(sFileName,"r")) == NULL) WriteError("$LastCallers: Can't open %s", sFileName); else { fread(&lcallhdr, sizeof(lcallhdr), 1, fp); strcpy(lstr, colour_str(WHITE, BLACK)); /* Todays callers to */ snprintf(Heading, 81, "%s%s", (char *) Language(84), CFG.bbs_name); strncat(lstr, Center_str(Heading), 200); PUTSTR(chartran(lstr)); strcpy(lstr, colour_str(LIGHTRED, BLACK)); strncat(lstr, Center_str(hLine_str(strlen(Heading))), 200); PUTSTR(chartran(lstr)); Enter(1); /* # User Name Device timeOn Calls Location */ strcpy(lstr, poutCR_str(LIGHTGREEN, BLACK, (char *) Language(85))); PUTSTR(chartran(lstr)); strcpy(lstr, colour_str(GREEN, BLACK)); strncat(lstr, fLine_str(cols -1), 200); PUTSTR(chartran(lstr)); while (fread(&lcall, lcallhdr.recsize, 1, fp) == 1) { if (!lcall.Hidden) { count++; strcpy(lstr, colour_str(WHITE, BLACK)); snprintf(Heading, 80, "%-5d", count); strncat(lstr, Heading, 200); strncat(lstr, colour_str(LIGHTCYAN, BLACK), 200); if ((strcasecmp(OpData, "/H")) == 0) { if ((strcmp(lcall.Handle, "") != 0 && *(lcall.Handle) != ' ')) snprintf(Heading, 80, "%-20s", lcall.Handle); else snprintf(Heading, 80, "%-20s", lcall.UserName); } else if (strcasecmp(OpData, "/U") == 0) { snprintf(Heading, 80, "%-20s", lcall.Name); } else { snprintf(Heading, 80, "%-20s", lcall.UserName); } strncat(lstr, Heading, 200); snprintf(Heading, 80, "%-8s", lcall.Device); strncat(lstr, pout_str(LIGHTBLUE, BLACK, Heading), 200); snprintf(Heading, 80, "%-8s", lcall.TimeOn); strncat(lstr, pout_str(LIGHTMAGENTA, BLACK, Heading), 200); snprintf(Heading, 80, "%-7d", lcall.Calls); strncat(lstr, pout_str(YELLOW, BLACK, Heading), 200); snprintf(Heading, 80, "%-32s", lcall.Location); strncat(lstr, pout_str(LIGHTRED, BLACK, Heading), 200); PUTSTR(chartran(lstr)); Enter(1); LineCount++; if (LineCount == (rows -2)) { Pause(); LineCount = 0; } } /* End of check if user is hidden */ } strcpy(lstr, colour_str(GREEN, BLACK)); strncat(lstr, fLine_str(cols -1), 200); PUTSTR(chartran(lstr)); fclose(fp); Enter(1); Pause(); } free(sFileName); free(Heading); chartran_close(); }