Author: abartlet
Date: 2006-01-06 02:50:46 +0000 (Fri, 06 Jan 2006)
New Revision: 12731

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

Log:
Simplify and re-implemenet support for --parameter-name=foo
--service-name=bar in testparm.

Andrew Bartlett

Modified:
   branches/SAMBA_4_0/source/param/loadparm.c
   branches/SAMBA_4_0/source/utils/testparm.c


Changeset:
Modified: branches/SAMBA_4_0/source/param/loadparm.c
===================================================================
--- branches/SAMBA_4_0/source/param/loadparm.c  2006-01-06 02:28:36 UTC (rev 
12730)
+++ branches/SAMBA_4_0/source/param/loadparm.c  2006-01-06 02:50:46 UTC (rev 
12731)
@@ -2231,40 +2231,31 @@
 BOOL lp_dump_a_parameter(int snum, char *parm_name, FILE * f, BOOL isGlobal)
 {
        service * pService = ServicePtrs[snum];
-       int i, result = False;
        parm_class p_class;
        unsigned flag = 0;
-
+       struct parm_struct *parm;
+       void *ptr;
        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].class == p_class || parm_table[i].flags & 
flag) &&
-                   parm_table[i].ptr &&
-                   (*parm_table[i].label != '-') &&
-                   (i == 0 || (parm_table[i].ptr != parm_table[i - 1].ptr))) 
-               {
-                       void *ptr;
-
-                       if (isGlobal)
-                               ptr = parm_table[i].ptr;
-                       else
-                               ptr = ((char *)pService) +
-                                       PTR_DIFF(parm_table[i].ptr, &sDefault);
-
-                       print_parameter(&parm_table[i],
-                                       ptr, f);
-                       fprintf(f, "\n");
-                       result = True;
-                       break;
-               }
+       parm = lp_parm_struct(parm_name);
+       if (!parm) {
+               return False;
        }
-
-       return result;
+       
+       if (isGlobal)
+               ptr = parm->ptr;
+       else
+               ptr = ((char *)pService) +
+                       PTR_DIFF(parm->ptr, &sDefault);
+       
+       print_parameter(parm,
+                       ptr, f);
+       fprintf(f, "\n");
+       return True;
 }
 
 /***************************************************************************

Modified: branches/SAMBA_4_0/source/utils/testparm.c
===================================================================
--- branches/SAMBA_4_0/source/utils/testparm.c  2006-01-06 02:28:36 UTC (rev 
12730)
+++ branches/SAMBA_4_0/source/utils/testparm.c  2006-01-06 02:50:46 UTC (rev 
12731)
@@ -215,7 +215,7 @@
                                        lp_dump_one(stdout, show_defaults, s);
                                }
                        } else {
-                               ret = lp_dump_a_parameter(s, parameter_name, 
stdout, isGlobal);
+                               ret = !lp_dump_a_parameter(s, parameter_name, 
stdout, isGlobal);
                        }
                } else {
                        lp_dump(stdout, show_defaults, lp_numservices());

Reply via email to