/*****************************************************************/ /* functions for the #help command */ /*****************************************************************/ #include <ctype.h> #include "tintin.h" #include <stdlib.h> void help_command(arg) char *arg; { FILE *myfile; char *cptr, text[80], line[80], temp_ch, filestring[300]; #if COMPRESSED_HELP char sysfile[BUFFER_SIZE]; #endif int tmp,flag, counter; flag=TRUE; if (!strncmp(DEFAULT_FILE_DIR, "HOME", 4)) sprintf(filestring, "%s/.tt_help.txt", getenv("HOME")); else sprintf(filestring, "%s/.tt_help.txt", DEFAULT_FILE_DIR); #if COMPRESSED_HELP sprintf(sysfile, "%s %s", DEFAULT_EXPANSION_STR, filestring); system(sysfile); #endif if((myfile=fopen(filestring, "r"))==NULL) { tintin_puts2("#Help text not found, no help available.", NULL); prompt(NULL); return; } if (*arg) { sprintf(text, "~%s", arg); cptr=text; while (*++cptr) { *cptr=toupper(*cptr); } while (flag) { fgets(line, sizeof(line), myfile); if (*line=='~') { if (*(line+1)=='*') { tintin_puts2("#Sorry, no help on that word.", (struct session *)NULL); flag=FALSE; } else if(is_abrev(text,line)) { counter=0; while (flag) { fgets(line, sizeof(line), myfile); if (*line=='~') flag=FALSE; else { *(line+strlen(line)-1)='\0'; tintin_puts2(line, (struct session *)NULL); } if (flag && (counter++>23)) { alarm(0); tintin_puts2("[ -- Press a key to continue -- ]", (struct session *)NULL); getchar(); alarm(1); counter=0; } } } } } } else { while(flag) { fgets(line, sizeof(line), myfile); if (*line=='~') flag=FALSE; else { *(line+strlen(line)-1)='\0'; tintin_puts2(line, (struct session *)NULL); } } } prompt(NULL); fclose(myfile); #if COMPRESSED_HELP sprintf(sysfile, "%s %s", DEFAULT_COMPRESSION_STR, filestring); system(sysfile); #endif }