svn commit: samba r14869 - branches/SAMBA_3_0/source/param trunk/source/param

lmuelle at samba.org lmuelle at samba.org
Sun Apr 2 21:12:24 GMT 2006


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) &&



More information about the samba-cvs mailing list