[Asterisk-cvs] asterisk file.c,1.51.2.3,1.51.2.4

russell at lists.digium.com russell at lists.digium.com
Mon May 30 23:33:33 CDT 2005


Update of /usr/cvsroot/asterisk
In directory mongoose.digium.com:/tmp/cvs-serv17212

Modified Files:
      Tag: v1-0
	file.c 
Log Message:
find sound files that are in the language directory itself (bug #4399)


Index: file.c
===================================================================
RCS file: /usr/cvsroot/asterisk/file.c,v
retrieving revision 1.51.2.3
retrieving revision 1.51.2.4
diff -u -d -r1.51.2.3 -r1.51.2.4
--- file.c	1 Apr 2005 03:13:38 -0000	1.51.2.3
+++ file.c	31 May 2005 03:36:45 -0000	1.51.2.4
@@ -714,23 +714,31 @@
 			*c = '\0';
 			postfix = c+1;
 			prefix = tmp;
+			snprintf(filename2, sizeof(filename2), "%s/%s/%s", prefix, preflang, postfix);
 		} else {
 			postfix = tmp;
 			prefix="";
+			snprintf(filename2, sizeof(filename2), "%s/%s", preflang, postfix);
 		}
-		snprintf(filename2, sizeof(filename2), "%s/%s/%s", prefix, preflang, postfix);
 		res = ast_filehelper(filename2, NULL, fmt, ACTION_EXISTS);
 		if (res < 1) {
 			char *stringp=NULL;
 			strncpy(lang2, preflang, sizeof(lang2)-1);
 			stringp=lang2;
 			strsep(&stringp, "_");
+			/* If language is a specific locality of a language (like es_MX), strip the locality and try again */
 			if (strcmp(lang2, preflang)) {
-				snprintf(filename2, sizeof(filename2), "%s/%s/%s", prefix, lang2, postfix);
+				if (ast_strlen_zero(prefix)) {
+					snprintf(filename2, sizeof(filename2), "%s/%s", lang2, postfix);
+				} else {
+					snprintf(filename2, sizeof(filename2), "%s/%s/%s", prefix, lang2, postfix);
+				}
 				res = ast_filehelper(filename2, NULL, fmt, ACTION_EXISTS);
 			}
 		}
 	}
+
+	/* Fallback to no language (usually winds up being American English) */
 	if (res < 1) {
 		res = ast_filehelper(filename, NULL, fmt, ACTION_EXISTS);
 	}




More information about the svn-commits mailing list