[svn-commits] seanbright: trunk r397 - in /trunk: ./ test/

SVN commits to the Digium repositories svn-commits at lists.digium.com
Wed Nov 5 10:14:17 CST 2008


Author: seanbright
Date: Thu Oct  9 10:22:21 2008
New Revision: 397

URL: http://svn.digium.com/view/menuselect?view=rev&rev=397
Log:
Let dependencies, conflicts, and usable items specify display names and
update the front-ends to use them.

Modified:
    trunk/menuselect.c
    trunk/menuselect.h
    trunk/menuselect_curses.c
    trunk/menuselect_gtk.c
    trunk/menuselect_newt.c
    trunk/test/menuselect-tree

Modified: trunk/menuselect.c
URL: http://svn.digium.com/view/menuselect/trunk/menuselect.c?view=diff&rev=397&r1=396&r2=397
==============================================================================
--- trunk/menuselect.c (original)
+++ trunk/menuselect.c Thu Oct  9 10:22:21 2008
@@ -206,9 +206,9 @@
 	menu = mxmlFindElement(tree->root, tree->root, "menu", NULL, NULL, MXML_DESCEND);
 	if ((tmp = mxmlElementGetAttr(menu, "name")))
 		menu_name = tmp;
-	for (cur = mxmlFindElement(menu, menu, "category", NULL, NULL, MXML_DESCEND);
+	for (cur = mxmlFindElement(menu, menu, "category", NULL, NULL, MXML_DESCEND_FIRST);
 	     cur;
-	     cur = mxmlFindElement(cur, menu, "category", NULL, NULL, MXML_DESCEND))
+	     cur = mxmlFindElement(cur, menu, "category", NULL, NULL, MXML_NO_DESCEND))
 	{
 		struct category *cat;
 		struct category *newcat;
@@ -235,9 +235,9 @@
 		if ((tmp = mxmlElementGetAttr(cur, "remove_on_change")))
 			cat->remove_on_change = tmp;
 
-		for (cur2 = mxmlFindElement(cur, cur, "member", NULL, NULL, MXML_DESCEND);
+		for (cur2 = mxmlFindElement(cur, cur, "member", NULL, NULL, MXML_DESCEND_FIRST);
 		     cur2;
-		     cur2 = mxmlFindElement(cur2, cur, "member", NULL, NULL, MXML_DESCEND))
+		     cur2 = mxmlFindElement(cur2, cur, "member", NULL, NULL, MXML_NO_DESCEND))
 		{
 			if (!(mem = calloc(1, sizeof(*mem))))
 				return -1;
@@ -254,46 +254,70 @@
 			if (cur3 && cur3->child)
 				mem->defaultenabled = cur3->child->value.opaque;
 			
-			for (cur3 = mxmlFindElement(cur2, cur2, "depend", NULL, NULL, MXML_DESCEND);
+			for (cur3 = mxmlFindElement(cur2, cur2, "depend", NULL, NULL, MXML_DESCEND_FIRST);
 			     cur3 && cur3->child;
-			     cur3 = mxmlFindElement(cur3, cur2, "depend", NULL, NULL, MXML_DESCEND))
+			     cur3 = mxmlFindElement(cur3, cur2, "depend", NULL, NULL, MXML_NO_DESCEND))
 			{
 				if (!(dep = calloc(1, sizeof(*dep)))) {
 					free_member(mem);
 					return -1;
 				}
+				if ((tmp = mxmlElementGetAttr(cur3, "name"))) {
+					if (!strlen_zero(tmp)) {
+						dep->name = tmp;
+					}
+				}				
 				if (!strlen_zero(cur3->child->value.opaque)) {
-					dep->name = cur3->child->value.opaque;
+					dep->displayname = cur3->child->value.opaque;
+					if (!dep->name) {
+						dep->name = dep->displayname;
+					}
 					AST_LIST_INSERT_TAIL(&mem->deps, dep, list);
 				} else
 					free(dep);
 			}
 
-			for (cur3 = mxmlFindElement(cur2, cur2, "conflict", NULL, NULL, MXML_DESCEND);
+			for (cur3 = mxmlFindElement(cur2, cur2, "conflict", NULL, NULL, MXML_DESCEND_FIRST);
 			     cur3 && cur3->child;
-			     cur3 = mxmlFindElement(cur3, cur2, "conflict", NULL, NULL, MXML_DESCEND))
+			     cur3 = mxmlFindElement(cur3, cur2, "conflict", NULL, NULL, MXML_NO_DESCEND))
 			{
 				if (!(cnf = calloc(1, sizeof(*cnf)))) {
 					free_member(mem);
 					return -1;
 				}
+				if ((tmp = mxmlElementGetAttr(cur3, "name"))) {
+					if (!strlen_zero(tmp)) {
+						cnf->name = tmp;
+					}
+				}
 				if (!strlen_zero(cur3->child->value.opaque)) {
-					cnf->name = cur3->child->value.opaque;
+					cnf->displayname = cur3->child->value.opaque;
+					if (!cnf->name) {
+						cnf->name = cnf->displayname;
+					}					
 					AST_LIST_INSERT_TAIL(&mem->conflicts, cnf, list);
 				} else
 					free(cnf);
 			}
 
-			for (cur3 = mxmlFindElement(cur2, cur2, "use", NULL, NULL, MXML_DESCEND);
+			for (cur3 = mxmlFindElement(cur2, cur2, "use", NULL, NULL, MXML_DESCEND_FIRST);
 			     cur3 && cur3->child;
-			     cur3 = mxmlFindElement(cur3, cur2, "use", NULL, NULL, MXML_DESCEND))
+			     cur3 = mxmlFindElement(cur3, cur2, "use", NULL, NULL, MXML_NO_DESCEND))
 			{
 				if (!(use = calloc(1, sizeof(*use)))) {
 					free_member(mem);
 					return -1;
 				}
+				if ((tmp = mxmlElementGetAttr(cur3, "name"))) {
+					if (!strlen_zero(tmp)) {
+						use->name = tmp;
+					}
+				}
 				if (!strlen_zero(cur3->child->value.opaque)) {
-					use->name = cur3->child->value.opaque;
+					use->displayname = cur3->child->value.opaque;
+					if (!use->name) {
+						use->name = use->displayname;
+					}
 					AST_LIST_INSERT_TAIL(&mem->uses, use, list);
 				} else
 					free(use);

Modified: trunk/menuselect.h
URL: http://svn.digium.com/view/menuselect/trunk/menuselect.h?view=diff&rev=397&r1=396&r2=397
==============================================================================
--- trunk/menuselect.h (original)
+++ trunk/menuselect.h Thu Oct  9 10:22:21 2008
@@ -37,6 +37,8 @@
 struct depend {
 	/*! the name of the dependency */
 	const char *name;
+	/*! the display name of the dependency */
+	const char *displayname;
 	/*! if this dependency is a member, not an external object */
 	struct member *member;
 	/*! for linking */
@@ -46,6 +48,8 @@
 struct conflict {
 	/*! the name of the conflict */
 	const char *name;
+	/*! the display name of the conflict */
+	const char *displayname;
 	/*! if this conflict is a member, not an external object */
 	const struct member *member;
 	/*! for linking */
@@ -55,6 +59,8 @@
 struct use {
 	/*! the name of the used package */
 	const char *name;
+	/*! the display name of the used package */
+	const char *displayname;
 	/*! if this dependency is a member, not an external object */
 	struct member *member;
 	/*! for linking */

Modified: trunk/menuselect_curses.c
URL: http://svn.digium.com/view/menuselect/trunk/menuselect_curses.c?view=diff&rev=397&r1=396&r2=397
==============================================================================
--- trunk/menuselect_curses.c (original)
+++ trunk/menuselect_curses.c Thu Oct  9 10:22:21 2008
@@ -195,7 +195,7 @@
 		wmove(menu, end - start + 3, max_x / 2 - 16);
 		strcpy(buf, "Depends on: ");
 		AST_LIST_TRAVERSE(&mem->deps, dep, list) {
-			strncat(buf, dep->name, sizeof(buf) - strlen(buf) - 1);
+			strncat(buf, dep->displayname, sizeof(buf) - strlen(buf) - 1);
 			strncat(buf, dep->member ? "(M)" : "(E)", sizeof(buf) - strlen(buf) - 1);
 			if (AST_LIST_NEXT(dep, list))
 				strncat(buf, ", ", sizeof(buf) - strlen(buf) - 1);
@@ -206,7 +206,7 @@
 		wmove(menu, end - start + 4, max_x / 2 - 16);
 		strcpy(buf, "Can use: ");
 		AST_LIST_TRAVERSE(&mem->uses, use, list) {
-			strncat(buf, use->name, sizeof(buf) - strlen(buf) - 1);
+			strncat(buf, use->displayname, sizeof(buf) - strlen(buf) - 1);
 			strncat(buf, use->member ? "(M)" : "(E)", sizeof(buf) - strlen(buf) - 1);
 			if (AST_LIST_NEXT(use, list))
 				strncat(buf, ", ", sizeof(buf) - strlen(buf) - 1);
@@ -217,7 +217,7 @@
 		wmove(menu, end - start + 5, max_x / 2 - 16);
 		strcpy(buf, "Conflicts with: ");
 		AST_LIST_TRAVERSE(&mem->conflicts, con, list) {
-			strncat(buf, con->name, sizeof(buf) - strlen(buf) - 1);
+			strncat(buf, con->displayname, sizeof(buf) - strlen(buf) - 1);
 			strncat(buf, con->member ? "(M)" : "(E)", sizeof(buf) - strlen(buf) - 1);
 			if (AST_LIST_NEXT(con, list))
 				strncat(buf, ", ", sizeof(buf) - strlen(buf) - 1);

Modified: trunk/menuselect_gtk.c
URL: http://svn.digium.com/view/menuselect/trunk/menuselect_gtk.c?view=diff&rev=397&r1=396&r2=397
==============================================================================
--- trunk/menuselect_gtk.c (original)
+++ trunk/menuselect_gtk.c Thu Oct  9 10:22:21 2008
@@ -273,18 +273,18 @@
 			struct conflict *cnf;
 
 			AST_LIST_TRAVERSE(&mem->deps, dep, list) {
-				strncat(dep_buf, dep->name, sizeof(dep_buf) - strlen(dep_buf) - 1);
+				strncat(dep_buf, dep->displayname, sizeof(dep_buf) - strlen(dep_buf) - 1);
 				strncat(dep_buf, dep->member ? "(M)" : "(E)", sizeof(dep_buf) - strlen(dep_buf) - 1);
 				if (AST_LIST_NEXT(dep, list))
 					strncat(dep_buf, ", ", sizeof(dep_buf) - strlen(dep_buf) - 1);
 			}
 			AST_LIST_TRAVERSE(&mem->uses, use, list) {
-				strncat(use_buf, use->name, sizeof(use_buf) - strlen(use_buf) - 1);
+				strncat(use_buf, use->displayname, sizeof(use_buf) - strlen(use_buf) - 1);
 				if (AST_LIST_NEXT(use, list))
 					strncat(use_buf, ", ", sizeof(use_buf) - strlen(use_buf) - 1);
 			}
 			AST_LIST_TRAVERSE(&mem->conflicts, cnf, list) {
-				strncat(cnf_buf, cnf->name, sizeof(cnf_buf) - strlen(cnf_buf) - 1);
+				strncat(cnf_buf, cnf->displayname, sizeof(cnf_buf) - strlen(cnf_buf) - 1);
 				strncat(cnf_buf, cnf->member ? "(M)" : "(E)", sizeof(cnf_buf) - strlen(cnf_buf) - 1);
 				if (AST_LIST_NEXT(cnf, list))
 					strncat(cnf_buf, ", ", sizeof(cnf_buf) - strlen(cnf_buf) - 1);

Modified: trunk/menuselect_newt.c
URL: http://svn.digium.com/view/menuselect/trunk/menuselect_newt.c?view=diff&rev=397&r1=396&r2=397
==============================================================================
--- trunk/menuselect_newt.c (original)
+++ trunk/menuselect_newt.c Thu Oct  9 10:22:21 2008
@@ -105,7 +105,7 @@
 	} else {
 		strcpy(buffer, "");
 		AST_LIST_TRAVERSE(&mem->deps, dep, list) {
-			strncat(buffer, dep->name, sizeof(buffer) - strlen(buffer) - 1);
+			strncat(buffer, dep->displayname, sizeof(buffer) - strlen(buffer) - 1);
 			strncat(buffer, dep->member ? "(M)" : "(E)", sizeof(buffer) - strlen(buffer) - 1);
 			if (AST_LIST_NEXT(dep, list))
 				strncat(buffer, ", ", sizeof(buffer) - strlen(buffer) - 1);
@@ -118,7 +118,7 @@
 	} else {
 		strcpy(buffer, "");
 		AST_LIST_TRAVERSE(&mem->uses, uses, list) {
-			strncat(buffer, uses->name, sizeof(buffer) - strlen(buffer) - 1);
+			strncat(buffer, uses->displayname, sizeof(buffer) - strlen(buffer) - 1);
 			if (AST_LIST_NEXT(uses, list))
 				strncat(buffer, ", ", sizeof(buffer) - strlen(buffer) - 1);
 		}
@@ -130,7 +130,7 @@
 	} else {
 		strcpy(buffer, "");
 		AST_LIST_TRAVERSE(&mem->conflicts, con, list) {
-			strncat(buffer, con->name, sizeof(buffer) - strlen(buffer) - 1);
+			strncat(buffer, con->displayname, sizeof(buffer) - strlen(buffer) - 1);
 			strncat(buffer, con->member ? "(M)" : "(E)", sizeof(buffer) - strlen(buffer) - 1);
 			if (AST_LIST_NEXT(con, list))
 				strncat(buffer, ", ", sizeof(buffer) - strlen(buffer) - 1);

Modified: trunk/test/menuselect-tree
URL: http://svn.digium.com/view/menuselect/trunk/test/menuselect-tree?view=diff&rev=397&r1=396&r2=397
==============================================================================
--- trunk/test/menuselect-tree (original)
+++ trunk/test/menuselect-tree Thu Oct  9 10:22:21 2008
@@ -22,13 +22,13 @@
 <member name="app_controlplayback" displayname="Control Playback Application" remove_on_change="apps/app_controlplayback.o apps/app_controlplayback.so">
 </member>
 <member name="app_dahdibarge" displayname="Barge in on DAHDI channel application" remove_on_change="apps/app_dahdibarge.o apps/app_dahdibarge.so">
-	<depend>dahdi</depend>
+	<depend name="dahdi">DAHDI</depend>
 </member>
 <member name="app_dahdiras" displayname="DAHDI ISDN Remote Access Server" remove_on_change="apps/app_dahdiras.o apps/app_dahdiras.so">
-	<depend>dahdi</depend>
+	<depend name="dahdi">DAHDI</depend>
 </member>
 <member name="app_dahdiscan" displayname="Scan DAHDI channels application" remove_on_change="apps/app_dahdiscan.o apps/app_dahdiscan.so">
-	<depend>dahdi</depend>
+	<depend name="dahdi">DAHDI</depend>
 </member>
 <member name="app_db" displayname="Database Access Functions" remove_on_change="apps/app_db.o apps/app_db.so">
 </member>
@@ -58,7 +58,7 @@
 <member name="app_festival" displayname="Simple Festival Interface" remove_on_change="apps/app_festival.o apps/app_festival.so">
 </member>
 <member name="app_flash" displayname="Flash channel application" remove_on_change="apps/app_flash.o apps/app_flash.so">
-	<depend>dahdi</depend>
+	<depend name="dahdi">DAHDI</depend>
 </member>
 <member name="app_followme" displayname="Find-Me/Follow-Me Application" remove_on_change="apps/app_followme.o apps/app_followme.so">
 	<depend>chan_local</depend>
@@ -76,7 +76,7 @@
 </member>
 <member name="app_jack" displayname="JACK Interface" remove_on_change="apps/app_jack.o apps/app_jack.so">
 	<depend>jack</depend>
-	<depend>resample</depend>
+	<depend name="resample">libresample</depend>
 </member>
 <member name="app_macro" displayname="Extension Macros" remove_on_change="apps/app_macro.o apps/app_macro.so">
 </member>
@@ -101,7 +101,7 @@
 	<depend>ssl</depend>
 </member>
 <member name="app_page" displayname="Page Multiple Phones" remove_on_change="apps/app_page.o apps/app_page.so">
-	<depend>dahdi</depend>
+	<depend name="dahdi">DAHDI</depend>
 	<depend>app_meetme</depend>
 </member>
 <member name="app_parkandannounce" displayname="Call Parking and Announce Application" remove_on_change="apps/app_parkandannounce.o apps/app_parkandannounce.so">
@@ -122,7 +122,7 @@
 <member name="app_record" displayname="Trivial Record Application" remove_on_change="apps/app_record.o apps/app_record.so">
 </member>
 <member name="app_rpt" displayname="Radio Repeater/Remote Base Application" remove_on_change="apps/app_rpt.o apps/app_rpt.so">
-	<depend>dahdi</depend>
+	<depend name="dahdi">DAHDI</depend>
 	<depend>tonezone</depend>
 	<defaultenabled>no</defaultenabled>
 </member>
@@ -175,7 +175,7 @@
 </category>
 <category name="MENUSELECT_CDR" displayname="Call Detail Recording" remove_on_change="cdr/modules.link">
 <member name="cdr_adaptive_odbc" displayname="Adaptive ODBC CDR backend" remove_on_change="cdr/cdr_adaptive_odbc.o cdr/cdr_adaptive_odbc.so">
-	<depend>unixodbc</depend>
+	<depend name="unixODBC">unixodbc</depend>
 </member>
 <member name="cdr_csv" displayname="Comma Separated Values CDR Backend" remove_on_change="cdr/cdr_csv.o cdr/cdr_csv.so">
 </member>
@@ -184,11 +184,11 @@
 <member name="cdr_manager" displayname="Asterisk Manager Interface CDR Backend" remove_on_change="cdr/cdr_manager.o cdr/cdr_manager.so">
 </member>
 <member name="cdr_odbc" displayname="ODBC CDR Backend" remove_on_change="cdr/cdr_odbc.o cdr/cdr_odbc.so">
-	<depend>unixodbc</depend>
-	<depend>ltdl</depend>
+	<depend name="unixodbc">unixODBC</depend>
+	<depend name="ltdl">libtool-ltdl</depend>
 </member>
 <member name="cdr_pgsql" displayname="PostgreSQL CDR Backend" remove_on_change="cdr/cdr_pgsql.o cdr/cdr_pgsql.so">
-	<depend>pgsql</depend>
+	<depend name="pgsql">PostgreSQL</depend>
 </member>
 <member name="cdr_radius" displayname="RADIUS CDR Backend" remove_on_change="cdr/cdr_radius.o cdr/cdr_radius.so">
 	<depend>radius</depend>
@@ -200,7 +200,7 @@
 	<depend>sqlite</depend>
 </member>
 <member name="cdr_tds" displayname="FreeTDS CDR Backend" remove_on_change="cdr/cdr_tds.o cdr/cdr_tds.so">
-	<depend>freetds</depend>
+	<depend name="freetds">FreeTDS</depend>
 </member>
 </category>
 <category name="MENUSELECT_CHANNELS" displayname="Channel Drivers" remove_on_change="channels/modules.link">
@@ -215,7 +215,7 @@
 </member>
 <member name="chan_dahdi" displayname="DAHDI Telephony" remove_on_change="channels/chan_dahdi.o channels/chan_dahdi.so">
 	<depend>res_smdi</depend>
-	<depend>dahdi</depend>
+	<depend name="dahdi">DAHDI</depend>
 	<depend>tonezone</depend>
 	<use>pri</use>
 	<use>ss7</use>
@@ -282,7 +282,7 @@
 <member name="codec_a_mu" displayname="A-law and Mulaw direct Coder/Decoder" remove_on_change="codecs/codec_a_mu.o codecs/codec_a_mu.so">
 </member>
 <member name="codec_dahdi" displayname="Generic DAHDI Transcoder Codec Translator" remove_on_change="codecs/codec_dahdi.o codecs/codec_dahdi.so">
-	<depend>dahdi</depend>
+	<depend name="dahdi">DAHDI</depend>
 </member>
 <member name="codec_g722" displayname="ITU G.722-64kbps G722 Transcoder" remove_on_change="codecs/codec_g722.o codecs/codec_g722.so">
 </member>
@@ -517,7 +517,7 @@
 <member name="res_speech" displayname="Generic Speech Recognition API" remove_on_change="res/res_speech.o res/res_speech.so">
 </member>
 <member name="res_timing_dahdi" displayname="DAHDI Timing Interface" remove_on_change="res/res_timing_dahdi.o res/res_timing_dahdi.so">
-	<depend>dahdi</depend>
+	<depend name="dahdi">DAHDI</depend>
 </member>
 <member name="res_timing_pthread" displayname="pthread Timing Interface" remove_on_change="res/res_timing_pthread.o res/res_timing_pthread.so">
 </member>




More information about the svn-commits mailing list