Author: lmuelle
Date: 2006-04-02 21:12:23 +0000 (Sun, 02 Apr 2006)
New Revision: 14869

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

Log:
Allow to dump a paramatrical option.

Flaw: We print an empty line if the paramatrical option is not defined
in the requested section.

Modified:
   branches/SAMBA_3_0/source/param/loadparm.c
   trunk/source/param/loadparm.c


Changeset:
Modified: branches/SAMBA_3_0/source/param/loadparm.c
===================================================================
--- branches/SAMBA_3_0/source/param/loadparm.c  2006-04-02 19:45:42 UTC (rev 
14868)
+++ branches/SAMBA_3_0/source/param/loadparm.c  2006-04-02 21:12:23 UTC (rev 
14869)
@@ -3880,13 +3880,31 @@
        int i, result = False;
        parm_class p_class;
        unsigned flag = 0;
+       fstring local_parm_name;
+       char *parm_opt;
 
+       /* check for parametrical option */
+       fstrcpy( local_parm_name, parm_name);
+       parm_opt = strchr( local_parm_name, ':');
+
+       if (parm_opt) {
+               *parm_opt = '\0';
+               parm_opt++;
+               if (strlen(parm_opt)) {
+                       printf( "%s\n", lp_parm_const_string( snum,
+                               local_parm_name, parm_opt, ""));
+                       result = True;
+               }
+               return result;
+       }
+
+       /* check for a key and print the value */
        if (isGlobal) {
                p_class = P_GLOBAL;
                flag = FLAG_GLOBAL;
        } else
                p_class = P_LOCAL;
-       
+
        for (i = 0; parm_table[i].label; i++) {
                if (strwicmp(parm_table[i].label, parm_name) == 0 &&
                    (parm_table[i].p_class == p_class || parm_table[i].flags & 
flag) &&

Modified: trunk/source/param/loadparm.c
===================================================================
--- trunk/source/param/loadparm.c       2006-04-02 19:45:42 UTC (rev 14868)
+++ trunk/source/param/loadparm.c       2006-04-02 21:12:23 UTC (rev 14869)
@@ -3880,13 +3880,31 @@
        int i, result = False;
        parm_class p_class;
        unsigned flag = 0;
+       fstring local_parm_name;
+       char *parm_opt;
 
+       /* check for parametrical option */
+       fstrcpy( local_parm_name, parm_name);
+       parm_opt = strchr( local_parm_name, ':');
+
+       if (parm_opt) {
+               *parm_opt = '\0';
+               parm_opt++;
+               if (strlen(parm_opt)) {
+                       printf( "%s\n", lp_parm_const_string( snum,
+                               local_parm_name, parm_opt, ""));
+                       result = True;
+               }
+               return result;
+       }
+
+       /* check for a key and print the value */
        if (isGlobal) {
                p_class = P_GLOBAL;
                flag = FLAG_GLOBAL;
        } else
                p_class = P_LOCAL;
-       
+
        for (i = 0; parm_table[i].label; i++) {
                if (strwicmp(parm_table[i].label, parm_name) == 0 &&
                    (parm_table[i].p_class == p_class || parm_table[i].flags & 
flag) &&

Reply via email to