=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/awk/main.c,v retrieving revision 1.16 retrieving revision 1.17 diff -c -r1.16 -r1.17 *** src/usr.bin/awk/main.c 2010/06/13 17:58:19 1.16 --- src/usr.bin/awk/main.c 2011/09/28 19:27:18 1.17 *************** *** 1,4 **** ! /* $OpenBSD: main.c,v 1.16 2010/06/13 17:58:19 millert Exp $ */ /**************************************************************** Copyright (C) Lucent Technologies 1997 All Rights Reserved --- 1,4 ---- ! /* $OpenBSD: main.c,v 1.17 2011/09/28 19:27:18 millert Exp $ */ /**************************************************************** Copyright (C) Lucent Technologies 1997 All Rights Reserved *************** *** 23,29 **** THIS SOFTWARE. ****************************************************************/ ! const char *version = "version 20100523"; #define DEBUG #include --- 23,29 ---- THIS SOFTWARE. ****************************************************************/ ! const char *version = "version 20110810"; #define DEBUG #include *************** *** 40,45 **** --- 40,46 ---- extern char *__progname; int dbg = 0; + Awkfloat srand_seed = 1; char *cmdname; /* gets argv[0] for error messages */ extern FILE *yyin; /* lex input file */ char *lexprog; /* points to program argument if it exists */ *************** *** 69,74 **** --- 70,76 ---- exit(1); } signal(SIGFPE, fpecatch); + yyin = NULL; symtab = makesymtab(NSYMTAB); while (argc > 1 && argv[1][0] == '-' && argv[1][1] != '\0') { *************** *** 83,97 **** safe = 1; break; case 'f': /* next argument is program filename */ ! argc--; ! argv++; ! if (npfile >= MAX_PFILE - 1) ! FATAL("too many -f options"); ! if (argc <= 1) ! FATAL("no program filename"); ! if (npfile >= MAX_PFILE - 1) ! FATAL("too many -f options"); ! pfile[npfile++] = argv[1]; break; case 'F': /* set field separator */ if (argv[1][2] != 0) { /* arg is -Fsomething */ --- 85,102 ---- safe = 1; break; case 'f': /* next argument is program filename */ ! if (argv[1][2] != 0) { /* arg is -fsomething */ ! if (npfile >= MAX_PFILE - 1) ! FATAL("too many -f options"); ! pfile[npfile++] = &argv[1][2]; ! } else { /* arg is -f something */ ! argc--; argv++; ! if (argc <= 1) ! FATAL("no program filename"); ! if (npfile >= MAX_PFILE - 1) ! FATAL("too many -f options"); ! pfile[npfile++] = argv[1]; ! } break; case 'F': /* set field separator */ if (argv[1][2] != 0) { /* arg is -Fsomething */ *************** *** 110,119 **** WARNING("field separator FS is empty"); break; case 'v': /* -v a=1 to be done NOW. one -v for each */ ! if (argv[1][2] == '\0' && --argc > 1 && isclvar((++argv)[1])) ! setclvar(argv[1]); ! else if (argv[1][2] != '\0') ! setclvar(&argv[1][2]); break; case 'd': dbg = atoi(&argv[1][2]); --- 115,134 ---- WARNING("field separator FS is empty"); break; case 'v': /* -v a=1 to be done NOW. one -v for each */ ! if (argv[1][2] != 0) { /* arg is -vsomething */ ! if (isclvar(&argv[1][2])) ! setclvar(&argv[1][2]); ! else ! FATAL("invalid -v option argument: %s", &argv[1][2]); ! } else { /* arg is -v something */ ! argc--; argv++; ! if (argc <= 1) ! FATAL("no variable name"); ! if (isclvar(argv[1])) ! setclvar(argv[1]); ! else ! FATAL("invalid -v option argument: %s", argv[1]); ! } break; case 'd': dbg = atoi(&argv[1][2]);