static void ask_params(void) { if (!*search_str) { char buffer[512], *s = buffer; ddprintf("%s", errstr[TS_STRING_PROMPT]); buffer[0] = 0; if (!Prompt(buffer, 512, 0)) return; quoted2plain(&s, search_str); if (!*search_str) { ddprintf("%s", errstr[TS_CANCEL]); return; } } if (pattern_type < 2) shrink_spaces(search_str); }
static int simple_search(int num) { int fd, retcode; struct stat st; char fname[PATH_MAX + 1], *contents; snprintf(fname, PATH_MAX + 1, "%s/messages/base%3.3d/msg%5.5d", conference()->conf.CONF_PATH, current_msgbase->MSGBASE_NUMBER, num); if ((fd = open(fname, O_RDONLY)) == -1) return 0; fstat(fd, &st); contents = (char *) xmalloc(st.st_size + 1); contents[st.st_size] = 0; read(fd, contents, st.st_size); close(fd); if (pattern_type < 2) shrink_spaces(contents); retcode = strstr(contents, search_str) != NULL; free(contents); return retcode; }
int main (int argc, char *argv[]) { FILE *fp; int space_count; int script_type; char buf[10024], convo[10024], convo_nick[124], convo_nick_prev[124]; char *str_ptr; //vflag = 1; if (argc < 2) { exit (-1); } fp = fopen (argv[1], "r"); if (!fp) exit (-1); while (1) { _memset (buf, 0, sizeof (buf)); if (fgets (buf, sizeof (buf) - 10, fp) == NULL) break; _strstrip_nl (buf); if(vflag) printf(":::rawbuf=[%s]\n",buf); for (space_count = 0; space_count < strlen (buf); space_count++) { if (buf[space_count] != ' ') break; } if (space_count > 7) { if (script_type == SCRIPT_NOCONVO) { if(vflag) { puts(":::type=NOCONVO, setting=INCONVO"); } script_type = SCRIPT_INCONVO; str_ptr = buf; if (str_ptr) { if (str_allcaps (_eat_whitespace(str_ptr))) { if(vflag) puts(":::ALL_CAPS"); _memset (convo_nick, 0, sizeof (convo_nick)); strlcpy_buf (convo_nick, str_ptr, sizeof (convo_nick) - 1); } } } else { strlcat_buf (convo, buf, sizeof (convo) - 1); } } else { if (script_type == SCRIPT_INCONVO) { /* write buf out */ if (convo[0]) { fill_brackets (convo); fill_brackets (convo_nick); shrink_spaces (convo); shrink_all_spaces (convo_nick); //puts("---"); if(!strcasecmp(convo_nick_prev, convo_nick) && str_allcaps(_eat_whitespace(convo_nick))) { printf(" %s", _eat_whitespace(convo)); } else { _memset(convo_nick_prev,0,sizeof(convo_nick_prev)); strlcpy_buf(convo_nick_prev, convo_nick, sizeof(convo_nick_prev)-1); if(str_allcaps(_eat_whitespace(convo_nick))){ printf ("\n%s:%s", _eat_whitespace (convo_nick), _eat_whitespace (convo)); } } } } if(vflag) puts(":::type=INCONVO, setting=NOCONVO);"); script_type = SCRIPT_NOCONVO; _memset (&convo, 0, sizeof (convo)); continue; } } return 0; }