Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utgpu!water!watmath!clyde!rutgers!mit-eddie!bloom-beacon!oberon!cit-vax!ucla-cs!zen!ucbcad!ames!amdcad!sun!pitstop!sundc!seismo!uunet!rsalz From: rsalz@uunet.UUCP Newsgroups: comp.sources.unix,comp.sources.bugs Subject: REPOST v11i081: Missing file from Jove update, Patch1 Message-ID: <1993@uunet.UU.NET> Date: Wed, 30-Sep-87 19:51:02 EDT Article-I.D.: uunet.1993 Posted: Wed Sep 30 19:51:02 1987 Date-Received: Sat, 3-Oct-87 01:24:14 EDT Sender: rsalz@uunet.UU.NET Lines: 228 Approved: rs@uunet.UU.NET Xref: utgpu comp.sources.unix:211 comp.sources.bugs:317 Submitted-by: jpayne@cs.rochester.edu Posting-number: Volume 11, Issue 81 Archive-name: jove.pch/patch1 [ We let this one slip by. Sorry, folks. --r$ ] #! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh argcount.c <<'END_OF_argcount.c' X/************************************************************************ X * This program is Copyright (C) 1986 by Jonathan Payne. JOVE is * X * provided to you without charge, and with no warranty. You may give * X * away copies of JOVE, including sources, provided that this notice is * X * included in all the files. * X ************************************************************************/ X X#include "jove.h" X#include X Xprivate int arg_supplied_p, X arg_count; X Xarg_type() X{ X return arg_supplied_p; X} X Xset_is_an_arg(there_is) X{ X arg_supplied_p = there_is; X} X Xset_arg_value(n) X{ X arg_supplied_p = YES; X arg_count = n; X} X Xnegate_arg_value() X{ X arg_count = -arg_count; X} X Xclr_arg_value() X{ X arg_supplied_p = NO; X arg_count = 1; X} X X/* return whether there is currently a numeric argument */ Xis_an_arg() X{ X return (arg_supplied_p != NO); X} X X/* return the numeric argument */ Xarg_value() X{ X return arg_count; X} X X/* called by C-U to gather a numeric argument, either C-U's or digits, X but not both */ XTimesFour() X{ X quad_numeric_arg(); X} X X/* This initializes the numeric argument to 1 and starts multiplying X by 4 (the magic number Stallman came up with). It is an error to X invoke quad_numeric_arg() interactively (via TimesFour()), because X it uses the LastKeyStruck variable to know what character signals X to multiply again (in the loop). */ Xprivate Xquad_numeric_arg() X{ X int oldc = LastKeyStruck, X newc, X narg_count, X slow; X X slow = 0; X arg_supplied_p = YES; X arg_count = 1; X this_cmd = ARG_CMD; X do { X if ((narg_count = arg_count * 4) != 0) X arg_count = narg_count; X if (!slow) X newc = waitchar(&slow); X else X newc = getch(); X if (isdigit(newc) || newc == '-') { X arg_supplied_p = NO; X gather_numeric_argument(newc); X return; X } X if (slow) X message(key_strokes); X } while (newc == oldc); X Ungetc(newc); X} X Xprivate Xgather_numeric_argument(c) X{ X int sign = 0; X static int digited; X int slow = 0; X X if (!isdigit(c) && c != '-') X complain((char *) 0); X if (arg_supplied_p == NO) { /* if we just got here */ X arg_count = 0; /* start over */ X digited = NO; X } else if (arg_supplied_p == YES_NODIGIT) { X sign = (arg_count < 0) ? -1 : 1; X arg_count = 0; X } X X if (!sign) X sign = (arg_count < 0) ? -1 : 1; X if (sign == -1) X arg_count = -arg_count; X if (c == '-') { X sign = -sign; X goto goread; X } X for (;;) { X if (slow) X message(key_strokes); X if (isdigit(c)) { X arg_count = (arg_count * 10) + (c - '0'); X digited = YES; X } else { X if (digited) X arg_supplied_p = YES; X else { X arg_count = 1; X if (arg_supplied_p == NO) X arg_supplied_p = YES_NODIGIT; X } X arg_count *= sign; X this_cmd = ARG_CMD; X Ungetc(c); X return; X } Xgoread: if (!slow) X c = waitchar(&slow); X else { X add_mess(NullStr); X c = getch(); X } X } X} X XDigit() X{ X gather_numeric_argument(LastKeyStruck); X} X XDigit0() X{ X gather_numeric_argument('0'); X} X XDigit1() X{ X gather_numeric_argument('1'); X} X XDigit2() X{ X gather_numeric_argument('2'); X} X XDigit3() X{ X gather_numeric_argument('3'); X} X XDigit4() X{ X gather_numeric_argument('4'); X} X XDigit5() X{ X gather_numeric_argument('5'); X} X XDigit6() X{ X gather_numeric_argument('6'); X} X XDigit7() X{ X gather_numeric_argument('7'); X} X XDigit8() X{ X gather_numeric_argument('8'); X} X XDigit9() X{ X gather_numeric_argument('9'); X} END_OF_argcount.c if test 3367 -ne `wc -c