=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/rcs/rcsdiff.c,v retrieving revision 1.17 retrieving revision 1.18 diff -c -r1.17 -r1.18 *** src/usr.bin/rcs/rcsdiff.c 2005/11/21 16:20:29 1.17 --- src/usr.bin/rcs/rcsdiff.c 2005/11/22 15:00:06 1.18 *************** *** 1,4 **** ! /* $OpenBSD: rcsdiff.c,v 1.17 2005/11/21 16:20:29 xsa Exp $ */ /* * Copyright (c) 2005 Joris Vink * All rights reserved. --- 1,4 ---- ! /* $OpenBSD: rcsdiff.c,v 1.18 2005/11/22 15:00:06 xsa Exp $ */ /* * Copyright (c) 2005 Joris Vink * All rights reserved. *************** *** 40,45 **** --- 40,47 ---- static int rcsdiff_file(RCSFILE *, RCSNUM *, const char *); static int rcsdiff_rev(RCSFILE *, RCSNUM *, RCSNUM *, const char *); + static int kflag = RCS_KWEXP_ERR; + int rcsdiff_main(int argc, char **argv) { *************** *** 54,65 **** strlcpy(diffargs, "diff", sizeof(diffargs)); ! while ((ch = rcs_getopt(argc, argv, "cnqr:uVx:")) != -1) { switch (ch) { case 'c': strlcat(diffargs, " -c", sizeof(diffargs)); diff_format = D_CONTEXT; break; case 'n': strlcat(diffargs, " -n", sizeof(diffargs)); diff_format = D_RCSDIFF; --- 56,76 ---- strlcpy(diffargs, "diff", sizeof(diffargs)); ! while ((ch = rcs_getopt(argc, argv, "ck:nqr:uVx:")) != -1) { switch (ch) { case 'c': strlcat(diffargs, " -c", sizeof(diffargs)); diff_format = D_CONTEXT; break; + case 'k': + kflag = rcs_kflag_get(rcs_optarg); + if (RCS_KWEXP_INVAL(kflag)) { + cvs_log(LP_ERR, + "invalid RCS keyword expansion mode"); + (usage)(); + exit(1); + } + break; case 'n': strlcat(diffargs, " -n", sizeof(diffargs)); diff_format = D_RCSDIFF; *************** *** 118,125 **** frev = rev; if (verbose == 1) { ! printf("%s\n", RCS_DIFF_DIV); ! printf("RCS file: %s\n", fpath); } diff_file = argv[i]; --- 129,136 ---- frev = rev; if (verbose == 1) { ! fprintf(stderr, "%s\n", RCS_DIFF_DIV); ! fprintf(stderr, "RCS file: %s\n", fpath); } diff_file = argv[i]; *************** *** 148,154 **** rcsdiff_usage(void) { fprintf(stderr, ! "usage: rcsdiff [-cnquV] [-rrev1 [-rrev2]] file ...\n"); } static int --- 159,165 ---- rcsdiff_usage(void) { fprintf(stderr, ! "usage: rcsdiff [-cnquV] [-kmode] [-rrev1 [-rrev2]] file ...\n"); } static int *************** *** 166,173 **** rcsnum_tostr(rev, rbuf, sizeof(rbuf)); if (verbose == 1) { ! printf("retrieving revision %s\n", rbuf); ! printf("%s -r%s %s\n", diffargs, rbuf, filename); } if ((b1 = rcs_getrev(rfp, rev)) == NULL) { --- 177,184 ---- rcsnum_tostr(rev, rbuf, sizeof(rbuf)); if (verbose == 1) { ! fprintf(stderr, "retrieving revision %s\n", rbuf); ! fprintf(stderr, "%s -r%s %s\n", diffargs, rbuf, filename); } if ((b1 = rcs_getrev(rfp, rev)) == NULL) { *************** *** 225,231 **** rcsnum_tostr(rev2, rbuf2, sizeof(rbuf2)); if (verbose == 1) ! printf("retrieving revision %s\n", rbuf2); if ((b2 = rcs_getrev(rfp, rev2)) == NULL) { cvs_log(LP_ERR, "failed to retrieve revision"); --- 236,242 ---- rcsnum_tostr(rev2, rbuf2, sizeof(rbuf2)); if (verbose == 1) ! fprintf(stderr, "retrieving revision %s\n", rbuf2); if ((b2 = rcs_getrev(rfp, rev2)) == NULL) { cvs_log(LP_ERR, "failed to retrieve revision"); *************** *** 233,239 **** } if (verbose == 1) ! printf("%s -r%s -r%s %s\n", diffargs, rbuf1, rbuf2, filename); strlcpy(path1, rcs_tmpdir, sizeof(path1)); strlcat(path1, "/diff1.XXXXXXXXXX", sizeof(path1)); --- 244,251 ---- } if (verbose == 1) ! fprintf(stderr, ! "%s -r%s -r%s %s\n", diffargs, rbuf1, rbuf2, filename); strlcpy(path1, rcs_tmpdir, sizeof(path1)); strlcat(path1, "/diff1.XXXXXXXXXX", sizeof(path1));