ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/cv/mgflib/mgfilt.c
(Generate patch)

Comparing ray/src/cv/mgflib/mgfilt.c (file contents):
Revision 1.1 by greg, Tue Jun 21 14:45:45 1994 UTC vs.
Revision 1.5 by greg, Wed Nov 22 12:23:26 1995 UTC

# Line 1 | Line 1
1 < /* Copyright (c) 1994 Regents of the University of California */
1 > /* Copyright (c) 1995 Regents of the University of California */
2  
3   #ifndef lint
4   static char SCCSid[] = "$SunId$ LBL";
# Line 11 | Line 11 | static char SCCSid[] = "$SunId$ LBL";
11   #include <stdio.h>
12   #include "parser.h"
13  
14 +                                /* Number of entities for major versions */
15 + short   nentlist[MG_VMAJOR] = MG_NELIST;
16  
17 +
18   int
19   put_entity(ac, av)              /* general output routine */
20   register int    ac;
# Line 25 | Line 28 | register char  **av;
28   }
29  
30  
31 < main(argc, argv)        /* arguments are understood entities */
31 > main(argc, argv)        /* first argument is understood entities, comma-sep. */
32   int     argc;
33 < char    **argv;
33 > char    *argv[];
34   {
35 +        char    *cp1, *cp2;
36          int     i, en;
37  
38 <        for (i = 1; i < argc; i++) {
39 <                en = mg_entity(argv[i]);
40 <                if (en < 0) {
41 <                        fprintf(stderr, "%s: %s: no such entity\n",
42 <                                        argv[0], argv[i]);
38 >        if (argc < 2) {
39 >                fprintf(stderr,
40 >                        "Usage: %s { version | entity,list } [file ..]\n",
41 >                                argv[0]);
42 >                exit(1);
43 >        }
44 >        if (isint(argv[1])) {
45 >                i = atoi(argv[1]);
46 >                if (i < 1 | i > MG_VMAJOR) {
47 >                        fprintf(stderr, "%s: bad version number: %d\n",
48 >                                        argv[0], i);
49                          exit(1);
50                  }
51 <                mg_ehand[en] = put_entity;
52 <        }
51 >                for (en = nentlist[i-1]; en--; )
52 >                        mg_ehand[en] = put_entity;
53 >                mg_ehand[MG_E_INCLUDE] = NULL;          /* expand include's */
54 >        } else
55 >                for (cp1 = cp2 = argv[1]; *cp1; cp1 = cp2) {
56 >                        while (*cp2) {
57 >                                if (*cp2 == ',') {
58 >                                        *cp2++ = '\0';
59 >                                        break;
60 >                                }
61 >                                cp2++;
62 >                        }
63 >                        en = mg_entity(cp1);
64 >                        if (en < 0) {
65 >                                fprintf(stderr, "%s: %s: no such entity\n",
66 >                                                argv[0], cp1);
67 >                                exit(1);
68 >                        }
69 >                        mg_ehand[en] = put_entity;
70 >                }
71          mg_init();
72 <        en = mg_load((char *)NULL);
73 <        exit(en != MG_OK);
72 >        if (argc < 3) {
73 >                if (mg_load((char *)NULL) != MG_OK)
74 >                        exit(1);
75 >                if (mg_nunknown)
76 >                        printf("%s %s: %u unknown entities on input\n",
77 >                                        mg_ename[MG_E_COMMENT],
78 >                                        argv[0], mg_nunknown);
79 >                exit(0);
80 >        }
81 >        for (i = 2; i < argc; i++) {
82 >                if (mg_load(argv[i]) != MG_OK)
83 >                        exit(1);
84 >                if (mg_nunknown) {
85 >                        printf("%s %s: %u unknown entities\n",
86 >                                        mg_ename[MG_E_COMMENT],
87 >                                        argv[i], mg_nunknown);
88 >                        mg_nunknown = 0;
89 >                }
90 >        }
91 >        exit(0);
92   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines