summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--Src/glob.c7
2 files changed, 9 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 5ad19074f..23580ff0f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2007-10-22  Peter Stephenson  <pws@csr.com>
+
+	* 24006: Src/glob.c: (F) glob qualifier needs to unmetafy.
+
 2007-10-21  Clint Adams  <clint@zsh.org>
 
 	* 24005: Src/Modules/curses.c: enforce min/max arguments on zcurses
diff --git a/Src/glob.c b/Src/glob.c
index d95eced35..b703926a9 100644
--- a/Src/glob.c
+++ b/Src/glob.c
@@ -326,7 +326,8 @@ insert(char *s, int checked)
 	    /* Reject the file if the function returned zero *
 	     * and the sense was positive (sense&1 == 0), or *
 	     * vice versa.                                   */
-	    if ((!((qn->func) (news, bp, qn->data, qn->sdata)) ^ qn->sense) & 1) {
+	    if ((!((qn->func) (news, bp, qn->data, qn->sdata))
+		 ^ qn->sense) & 1) {
 		/* Try next alternative, or return if there are no more */
 		if (!(qo = qo->or)) {
 		    unqueue_signals();
@@ -3254,6 +3255,8 @@ qualnonemptydir(char *name, struct stat *buf, UNUSED(off_t days), UNUSED(char *s
 {
     DIR *dirh;
     struct dirent *de;
+    int unamelen;
+    char *uname = unmetafy(dupstring(name), &unamelen);
 
     if (!S_ISDIR(buf->st_mode))
 	return 0;
@@ -3261,7 +3264,7 @@ qualnonemptydir(char *name, struct stat *buf, UNUSED(off_t days), UNUSED(char *s
     if (buf->st_nlink > 2)
 	return 1;
 
-    if (!(dirh = opendir(name)))
+    if (!(dirh = opendir(uname)))
 	return 0;
 
     while ((de = readdir(dirh))) {