int main (int argc, char *argv[]) { int i; char buf[1024]; SLPreprocess_Type pt; SLprep_open_prep (&pt); SLdefine_for_ifdef ("UNIX"); /* super cheap getopts */ for (i = 1; i < argc; i++) { char *p = argv[i]; if (*p++ != '-') break; if (*p == '-') break; if (*p == 'D') { SLdefine_for_ifdef (p + 1); continue; } while (*p) { switch (*p) { case 'B': pt.flags |= (SLPREP_BLANK_LINES_OK); break; case 'C': pt.flags |= (SLPREP_COMMENT_LINES_OK); break; case 'c': if (p[1]) pt.comment_char = *++p; break; case 'p': if (p[1]) pt.preprocess_char = *++p; break; default: fprintf (stderr, "unknown flag '%c'\n", *p); break; } p++; } } while (NULL != fgets (buf, sizeof (buf) - 1, stdin)) { if (SLprep_line_ok (buf, &pt)) fputs (buf, stdout); } SLprep_close_prep (&pt); return 0; }
int slrn_read_score_file (char *file) { Score_Context_Type sc; int status; if (Group_Score_Root != NULL) { free_group_scores (); } free_group_chain (); while (Scorefile_Names != NULL) { Scorefile_Name_Type *next = Scorefile_Names->next; slrn_free ((char *) Scorefile_Names->filename); slrn_free ((char *) Scorefile_Names); Scorefile_Names = next; } sc.today = get_today (); sc.score = 0; sc.start_new_group = 1; sc.gnt_not_flag = 0; sc.start_new_score = 0; sc.score_has_expired = 0; sc.pscore_flags = 0; sc.pst = NULL; sc.group[0] = '*'; sc.group[1] = 0; (void) SLprep_open_prep (&sc.pt); status = read_score_file_internal (file, &sc); SLprep_close_prep (&sc.pt); if (status == -1) Slrn_Apply_Score = 0; else Slrn_Apply_Score = 1; return status; }