summaryrefslogtreecommitdiff
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) {