about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--Src/makepro.awk8
-rw-r--r--Src/utils.c4
3 files changed, 13 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 70b521324..65fca2bfd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2006-08-04  Peter Stephenson  <pws@csr.com>
 
+	* 22585: makepro.awk, Src/utils.c: zsh.exports was missing
+	VA_ALIST declarations and some multibyte-related stuff.
+
 	* 22584: Frank Terbeck: Completion/Unix/Type/_tar_archive: even
 	GNU tar should complete uncompressed .tar files.
 
diff --git a/Src/makepro.awk b/Src/makepro.awk
index 5def40203..0498c1545 100644
--- a/Src/makepro.awk
+++ b/Src/makepro.awk
@@ -91,6 +91,7 @@ BEGIN {
     # Handle each declarator.
     if (match(line, /VA_ALIST/)) {
 	# Already has VARARGS handling.
+
 	# Put parens etc. back
 	gsub(/@[{]/, "((", line)
 	gsub(/@}/, "))", line)
@@ -105,6 +106,13 @@ BEGIN {
 	if(locality ~ /E/)
 	    dtype = "extern " dtype
 
+	if (match(line, /[_0-9A-Za-z]+\(VA_ALIST/))
+	  dnam = substr(line, RSTART, RLENGTH-9)
+
+	# If this is exported, add it to the exported symbol list.
+	if (exported)
+	    printf "X%s\n", dnam
+
 	printf "%s%s %s\n", locality, dtype, line
     } else {
 	while(match(line, /^[^,]*,/)) {
diff --git a/Src/utils.c b/Src/utils.c
index 21b722f6a..0dcf4e59b 100644
--- a/Src/utils.c
+++ b/Src/utils.c
@@ -3877,7 +3877,7 @@ mb_width(const char *s)
  */
 
 /**/
-int
+mod_export int
 mb_metacharlenconv(const char *s, wint_t *wcp)
 {
     char inchar;
@@ -3980,7 +3980,7 @@ mb_metastrlen(char *ptr)
 /* Simple replacement for mb_metacharlenconv */
 
 /**/
-int
+mod_export int
 metacharlenconv(char *x, int *c)
 {
     if (*x == Meta) {