]> andersk Git - moira.git/blame - clients/mmoira/forms.awk
Abstracted the canonicalization of volume names (afs_vname)
[moira.git] / clients / mmoira / forms.awk
CommitLineData
45df431b 1# $Header$
2
f6fdc1a4 3BEGIN { numfields = 0; numforms = 0;
45df431b 4 printf("/* This file is machine generated, do not edit. */");
5 printf("\n#include <Xm/Text.h>\n");
04077a7d 6 printf("#include \"mmoira.h\"\n\n");
45df431b 7 }
8
9/^;/ { next }
10NF == 0 { next }
11NF == 1 && $1 == "or" { next }
12
f6fdc1a4 13$1 == "{" { formname = sprintf("form%d", numforms);
04077a7d 14 formrealname = $2;
f6fdc1a4 15 numforms++;
45df431b 16 instructions = $3;
17 for (i = 4; i <= NF; i++)
18 instructions = sprintf("%s %s", instructions, $i);
19 next
20 }
21
22$1 == "}" { printf("static UserPrompt *%s_fields[] = {\n", formname);
23 for (i = 0; i < numfields; i++)
24 printf("\t&%s_fld%d,\n", formname, i);
25 printf("\t(UserPrompt *)NULL\n};\n");
f6fdc1a4 26 printf("static EntryForm %s = {\n\t\"%s\",\n", \
04077a7d 27 formname, formrealname);
45df431b 28 printf("\t\"%s\",\n\t%s_fields\n};\n", \
29 instructions, formname);
30 numfields = 0;
31 next
32 }
33
34$NF == "s" || $NF == "S" \
35 { printf("static UserPrompt %s_fld%d = { \"", \
36 formname, numfields);
37 for (i = 1; i < NF; i++) printf("%s ", $i);
38 printf("\", FT_STRING };\n");
39 numfields++;
40 next
41 }
42
43$NF == "b" || $NF == "B" \
44 { printf("static UserPrompt %s_fld%d = { \"", \
45 formname, numfields);
46 for (i = 1; i < NF; i++) printf("%s ", $i);
47 printf("\", FT_BOOLEAN };\n");
48 numfields++;
49 next
50 }
51
52$NF == "k" || $NF == "K" \
53 { printf("static UserPrompt %s_fld%d = { \"", \
54 formname, numfields);
55 for (i = 1; i < NF; i++) printf("%s ", $i);
56 printf("\", FT_KEYWORD };\n");
57 numfields++;
58 next
59 }
60
61 { printf("forms syntax error on line %d of file %s:\n%s\n", \
62 NR, FILENAME, $0);
63 exit 1
64 }
f6fdc1a4 65
66END {
67 printf("EntryForm *MoiraForms[] = {\n");
68 for (i = 0; i < numforms; i++)
69 printf("\t&form%d,\n", i);
04077a7d 70 printf("\t(EntryForm *)NULL,\n};\n");
f6fdc1a4 71 }
This page took 0.065966 seconds and 5 git commands to generate.