diff --git a/images/apple/PLASMA2-SYS.PO b/images/apple/PLASMA2-SYS.PO index f25a27a..189caf9 100755 Binary files a/images/apple/PLASMA2-SYS.PO and b/images/apple/PLASMA2-SYS.PO differ diff --git a/src/libsrc/apple/matchfiles.pla b/src/libsrc/apple/matchfiles.pla index 98f69e0..69c2afe 100644 --- a/src/libsrc/apple/matchfiles.pla +++ b/src/libsrc/apple/matchfiles.pla @@ -6,17 +6,21 @@ var dirbuf // Match next section of source and expression // def matchNext(src, srcofst, exp, expofst) - if ^src >= srcofst and ^exp >= expofst + if ^exp >= expofst when exp->[expofst] is '*' // Multi-char wildcard - if matchNext(src, srcofst + 1, exp, expofst + 1) + if matchNext(src, srcofst, exp, expofst + 1) // Match zero wild chars + return TRUE + elsif ^src >= srcofst and matchNext(src, srcofst + 1, exp, expofst) // Match more wild chars return TRUE fin - return matchNext(src, srcofst + 1, exp, expofst) is '?' // Single char wildcard - return matchNext(src, srcofst + 1, exp, expofst + 1) + if ^src >= srcofst + return matchNext(src, srcofst + 1, exp, expofst + 1) + fin + return FALSE otherwise // verbatim match - if src->[srcofst] == exp->[expofst] + if ^src >= srcofst and src->[srcofst] == exp->[expofst] return matchNext(src, srcofst + 1, exp, expofst + 1) fin return FALSE