=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/cvs/rcsparse.c,v retrieving revision 1.2 retrieving revision 1.3 diff -c -r1.2 -r1.3 *** src/usr.bin/cvs/rcsparse.c 2010/10/20 06:51:26 1.2 --- src/usr.bin/cvs/rcsparse.c 2010/10/20 19:53:53 1.3 *************** *** 1,4 **** ! /* $OpenBSD: rcsparse.c,v 1.2 2010/10/20 06:51:26 tobias Exp $ */ /* * Copyright (c) 2010 Tobias Stoeckmann * --- 1,4 ---- ! /* $OpenBSD: rcsparse.c,v 1.3 2010/10/20 19:53:53 tobias Exp $ */ /* * Copyright (c) 2010 Tobias Stoeckmann * *************** *** 78,84 **** size_t rp_tlen; struct rcs_delta *rp_delta; - FILE *rp_file; int rp_lineno; int rp_msglineno; int rp_token; --- 78,83 ---- *************** *** 230,239 **** pdp->rp_token = -1; pdp->rp_lineno = 1; pdp->rp_msglineno = 1; ! if ((pdp->rp_file = fdopen(rfp->rf_fd, "r")) == NULL) { ! xfree(pdp); ! return (1); ! } /* ditch the strict lock */ rfp->rf_flags &= ~RCS_SLOCK; rfp->rf_pdata = pdp; --- 229,235 ---- pdp->rp_token = -1; pdp->rp_lineno = 1; pdp->rp_msglineno = 1; ! /* ditch the strict lock */ rfp->rf_flags &= ~RCS_SLOCK; rfp->rf_pdata = pdp; *************** *** 343,350 **** pdp = rfp->rf_pdata; - if (pdp->rp_file != NULL) - (void)fclose(pdp->rp_file); if (pdp->rp_buf != NULL) xfree(pdp->rp_buf); if (pdp->rp_token == RCS_TYPE_REVISION) --- 339,344 ---- *************** *** 850,862 **** *bp = '\0'; for (;;) { ! c = getc(pdp->rp_file); if (c == '@') { ! c = getc(pdp->rp_file); if (c == EOF) { return (EOF); } else if (c != '@') { ! ungetc(c, pdp->rp_file); break; } } --- 844,856 ---- *bp = '\0'; for (;;) { ! c = getc(rfp->rf_file); if (c == '@') { ! c = getc(rfp->rf_file); if (c == EOF) { return (EOF); } else if (c != '@') { ! ungetc(c, rfp->rf_file); break; } } *************** *** 905,913 **** c = EOF; do { pre = c; ! c = getc(pdp->rp_file); if (c == EOF) { ! if (ferror(pdp->rp_file)) { rcsparse_warnx(rfp, "error during parsing"); return (0); } --- 899,907 ---- c = EOF; do { pre = c; ! c = getc(rfp->rf_file); if (c == EOF) { ! if (ferror(rfp->rf_file)) { rcsparse_warnx(rfp, "error during parsing"); return (0); } *************** *** 924,930 **** switch (c) { case '@': ret = rcsparse_string(rfp, allowed); ! if (ret == EOF && ferror(pdp->rp_file)) { rcsparse_warnx(rfp, "error during parsing"); return (0); } --- 918,924 ---- switch (c) { case '@': ret = rcsparse_string(rfp, allowed); ! if (ret == EOF && ferror(rfp->rf_file)) { rcsparse_warnx(rfp, "error during parsing"); return (0); } *************** *** 966,972 **** for (;;) { if (c == EOF) { ! if (ferror(pdp->rp_file)) rcsparse_warnx(rfp, "error during parsing"); else rcsparse_warnx(rfp, "unexpected end of file"); --- 960,966 ---- for (;;) { if (c == EOF) { ! if (ferror(rfp->rf_file)) rcsparse_warnx(rfp, "error during parsing"); else rcsparse_warnx(rfp, "unexpected end of file"); *************** *** 976,982 **** RBUF_PUTC(c); ! c = getc(pdp->rp_file); if (isspace(c)) { if (c == '\n') --- 970,976 ---- RBUF_PUTC(c); ! c = getc(rfp->rf_file); if (isspace(c)) { if (c == '\n') *************** *** 984,990 **** RBUF_PUTC('\0'); break; } else if (c == ';' || c == ':' || c == ',') { ! ungetc(c, pdp->rp_file); RBUF_PUTC('\0'); break; } else if (!isgraph(c)) { --- 978,984 ---- RBUF_PUTC('\0'); break; } else if (c == ';' || c == ':' || c == ',') { ! ungetc(c, rfp->rf_file); RBUF_PUTC('\0'); break; } else if (!isgraph(c)) {