Author: jelmer
Date: 2007-08-04 13:12:35 +0000 (Sat, 04 Aug 2007)
New Revision: 24170

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=24170

Log:
Add support for some more constructions.
Support UTF-16 encoded files.

Modified:
   branches/4.0-regwrite/
   branches/4.0-regwrite/source/lib/policy/config.mk
   branches/4.0-regwrite/source/lib/policy/dumpadm.c
   branches/4.0-regwrite/source/lib/policy/parse_adm.y


Changeset:

Property changes on: branches/4.0-regwrite
___________________________________________________________________
Name: bzr:revision-info
   - timestamp: Sat 2007-01-13 20:54:31.888999939 +0100
committer: Jelmer Vernooij <[EMAIL PROTECTED]>
properties: 
        branch-nick: 4.0-regwrite
        rebase-of: [EMAIL PROTECTED]

   + timestamp: Sat 2007-01-13 20:55:55.779000044 +0100
committer: Jelmer Vernooij <[EMAIL PROTECTED]>
properties: 
        branch-nick: 4.0-regwrite
        rebase-of: [EMAIL PROTECTED]

Name: bzr:revision-id:v3-trunk0
   - 11140 [EMAIL PROTECTED]
11142 [EMAIL PROTECTED]

   + 11140 [EMAIL PROTECTED]
11142 [EMAIL PROTECTED]
11143 [EMAIL PROTECTED]


Modified: branches/4.0-regwrite/source/lib/policy/config.mk
===================================================================
--- branches/4.0-regwrite/source/lib/policy/config.mk   2007-08-04 13:12:29 UTC 
(rev 24169)
+++ branches/4.0-regwrite/source/lib/policy/config.mk   2007-08-04 13:12:35 UTC 
(rev 24170)
@@ -1,6 +1,7 @@
 [LIBRARY::LIBPOLICY]
 CFLAGS = -Iheimdal/lib/roken
-OBJ_FILES = lex.o parse_adm.o
+OBJ_FILES = lex.o parse_adm.o 
+PRIVATE_DEPENDENCIES = CHARSET
 
 lib/policy/lex.c: lib/policy/lex.l
        @echo "Building $< with $(LEX)"
@@ -8,4 +9,4 @@
 
 [BINARY::dumpadm]
 OBJ_FILES = dumpadm.o
-PRIVATE_DEPENDENCIES = LIBPOLICY
+PRIVATE_DEPENDENCIES = LIBPOLICY LIBPOPT LIBSAMBA-CONFIG LIBTALLOC 
LIBSAMBA-UTIL

Modified: branches/4.0-regwrite/source/lib/policy/dumpadm.c
===================================================================
--- branches/4.0-regwrite/source/lib/policy/dumpadm.c   2007-08-04 13:12:29 UTC 
(rev 24169)
+++ branches/4.0-regwrite/source/lib/policy/dumpadm.c   2007-08-04 13:12:35 UTC 
(rev 24170)
@@ -19,17 +19,36 @@
 */
 
 #include "includes.h"
-#include "lib/policy/parse_adm.h"
+#include "lib/popt/popt.h"
+#include "lib/policy/adm.h"
 
-extern FILE *yyin;
-
-extern void yyparse(void);
-
 int main(int argc, char **argv) 
 {
-       yyin = fopen("foo.adm", "r");
-       if (yyin == NULL)
-               return -1;
+       BOOL ret = True;
+       poptContext pc;
+       struct poptOption long_options[] = {
+               POPT_AUTOHELP
+               { 0, 0, 0, 0 }
+       };
+       
+       pc = poptGetContext(argv[0], argc, (const char **)argv, long_options, 
0);
+       
+       poptSetOtherOptionHelp(pc, "<ADM-FILE> ...");
 
-       yyparse();
+       while ((poptGetNextOpt(pc) != -1)) 
+
+       if(!poptPeekArg(pc)) { 
+               poptPrintUsage(pc, stderr, 0);
+               exit(1);
+       }
+       
+       while (poptPeekArg(pc)) {
+               const char *name = poptGetArg(pc);
+
+               adm_read_file(name);
+       }
+
+       poptFreeContext(pc);
+
+       return ret;
 }

Modified: branches/4.0-regwrite/source/lib/policy/parse_adm.y
===================================================================
--- branches/4.0-regwrite/source/lib/policy/parse_adm.y 2007-08-04 13:12:29 UTC 
(rev 24169)
+++ branches/4.0-regwrite/source/lib/policy/parse_adm.y 2007-08-04 13:12:35 UTC 
(rev 24170)
@@ -45,10 +45,10 @@
 %token NAME
 %token VALUE
 %token NUMERIC EDITTEXT TEXT DROPDOWNLIST CHECKBOX
-%token MIN MAX DEFAULT
+%token MINIMUM MAXIMUM DEFAULT
 %token END
 %token ACTIONLIST
-%token DELETE
+%token DEL
 %token SUPPORTED
 %token <text> LITERAL
 %token <integer> INTEGER
@@ -81,26 +81,24 @@
 categoryitems: categoryitem categoryitems | /* empty */ ;
 
 policy: POLICY string policyitems END POLICY;
+policyitem: explain | keyname | valuename | valueon | valueoff | min | max | 
defaultvalue | supported | part;
+policyitems: policyitem policyitems | /* empty */;
 
-policyitems: part policyitems | definition policyitems | /* empty */;
-
-definition: keyname | valuename | valueon | valueoff | explain | min | max | 
defaultvalue | supported;
-
 valuetype: NUMERIC | EDITTEXT | TEXT | DROPDOWNLIST | CHECKBOX;
 
 part: PART string valuetype partitems END PART;
 
 spin: SPIN INTEGER;
 
-partitem: definition | itemlist | REQUIRED | spin;
+partitem: keyname | valuename | valueon | valueoff | min | max | defaultvalue 
| itemlist | REQUIRED | spin;
 partitems: partitem partitems | /* empty */;
 
-min: MIN INTEGER;
-max: MAX INTEGER;
+min: MINIMUM INTEGER;
+max: MAXIMUM INTEGER;
 defaultvalue: DEFAULT INTEGER;
 
 explain: EXPLAIN string;
-value: NUMERIC INTEGER | DELETE;
+value: DEL | NUMERIC INTEGER;
 
 valueon: VALUEON value;
 valueoff: VALUEOFF value;
@@ -118,7 +116,7 @@
 supported: SUPPORTED string;
 
 actionlist: ACTIONLIST actions END ACTIONLIST;
-actions: valuename actions | /* empty */;
+actions: valuename actions | itemvalue actions | /* empty */;
 
 variable: LITERAL EQUALS LITERAL;
 variables: variable variables | /* empty */;

Reply via email to