zorba-coders team mailing list archive
-
zorba-coders team
-
Mailing list archive
-
Message #01144
[Merge] lp:~zorba-coders/zorba/file_regex into lp:zorba
Gabriel Petrovay has proposed merging lp:~zorba-coders/zorba/file_regex into lp:zorba.
Requested reviews:
Paul J. Lucas (paul-lucas)
Related bugs:
Bug #855709 in Zorba: "Construction of invalid regular expression"
https://bugs.launchpad.net/zorba/+bug/855709
For more details, see:
https://code.launchpad.net/~zorba-coders/zorba/file_regex/+merge/79543
Corrected incorrect regular expressions in the file module.
--
https://code.launchpad.net/~zorba-coders/zorba/file_regex/+merge/79543
Your team Zorba Coders is subscribed to branch lp:zorba.
=== modified file 'modules/org/expath/ns/file.xq'
--- modules/org/expath/ns/file.xq 2011-08-17 23:28:19 +0000
+++ modules/org/expath/ns/file.xq 2011-10-17 12:06:20 +0000
@@ -730,20 +730,25 @@
declare function file:base-name($path as xs:string) as xs:string
{
let $delim := file:directory-separator()
+ let $escapedDelim :=
+ if ($delim eq "/") then
+ $delim
+ else
+ fn:concat("\", $delim)
let $normalized-file :=
let $n := file:prepare-for-dirname-and-base-name($path)
- return if ($delim eq "\" and fn:matches($n, "^[a-zA-Z]:$")) then
- concat($n, "\")
- else $n
+ return if ($delim eq "\" and fn:matches($n, "^[a-zA-Z]:$")) then
+ fn:concat($n, "\")
+ else $n
return
- if (matches($path, concat("^\", $delim, "+$"))) then
+ if (fn:matches($path, fn:concat("^", $escapedDelim, "+$"))) then
""
- else if (file:directory-separator() eq '\' and matches($path, "^[a-zA-Z]:\\?$")) then
+ else if ($delim eq "\" and fn:matches($path, "^[a-zA-Z]:\\?$")) then
""
else if ($path eq "") then
"."
else
- replace($normalized-file, concat("^.*\", $delim), '')
+ fn:replace($normalized-file, fn:concat("^.*", $escapedDelim), "")
};
(:~
@@ -786,20 +791,25 @@
declare function file:dir-name($path as xs:string) as xs:string
{
let $delim := file:directory-separator()
+ let $escapedDelim :=
+ if ($delim eq "/") then
+ $delim
+ else
+ fn:concat("\", $delim)
let $normalized-file := file:prepare-for-dirname-and-base-name($path)
return
- if (fn:matches($path, concat("^\", $delim, "+$"))) then
+ if (fn:matches($path, fn:concat("^", $escapedDelim, "+$"))) then
$delim
else if ($normalized-file eq $delim) then
$delim
- else if (file:directory-separator() eq '\' and fn:matches($path, "^[a-zA-Z]:\\$")) then
+ else if ($delim eq "\" and fn:matches($path, "^[a-zA-Z]:\\$")) then
$path
- else if (file:directory-separator() eq '\' and fn:matches($normalized-file, "^[a-zA-Z]:$")) then
+ else if ($delim eq "\" and fn:matches($normalized-file, "^[a-zA-Z]:$")) then
fn:concat($normalized-file, '\')
else if ($path eq "") then
"."
- else if (fn:matches($normalized-file, fn:concat("\", $delim))) then
- fn:replace($normalized-file, fn:concat('^(.*)\', $delim,'.*'), '$1')
+ else if (fn:matches($normalized-file, $escapedDelim)) then
+ fn:replace($normalized-file, fn:concat("^(.*)", $escapedDelim, ".*"), "$1")
else
"."
};
@@ -812,11 +822,16 @@
declare %private function file:prepare-for-dirname-and-base-name($path as xs:string) as xs:string
{
let $delim := file:directory-separator()
+ let $escapedDelim :=
+ if ($delim eq "/") then
+ $delim
+ else
+ fn:concat("\", $delim)
let $normalize-path := file:path-to-native($path)
let $normalized :=
if ($normalize-path eq $delim) then
$normalize-path
else
- fn:replace($normalize-path, fn:concat("\", $delim, '+$'), '')
+ fn:replace($normalize-path, fn:concat($escapedDelim, "+$"), "")
return $normalized
};
Follow ups
-
[Merge] lp:~zorba-coders/zorba/file_regex into lp:zorba
From: noreply, 2011-10-18
-
[Merge] lp:~zorba-coders/zorba/file_regex into lp:zorba
From: Zorba Build Bot, 2011-10-18
-
[Merge] lp:~zorba-coders/zorba/file_regex into lp:zorba
From: Zorba Build Bot, 2011-10-18
-
[Merge] lp:~zorba-coders/zorba/file_regex into lp:zorba
From: Gabriel Petrovay, 2011-10-18
-
Re: [Merge] lp:~zorba-coders/zorba/file_regex into lp:zorba
From: Gabriel Petrovay, 2011-10-18
-
[Merge] lp:~zorba-coders/zorba/file_regex into lp:zorba
From: Zorba Build Bot, 2011-10-17
-
Re: [Merge] lp:~zorba-coders/zorba/file_regex into lp:zorba
From: Zorba Build Bot, 2011-10-17
-
[Merge] lp:~zorba-coders/zorba/file_regex into lp:zorba
From: Zorba Build Bot, 2011-10-17
-
[Merge] lp:~zorba-coders/zorba/file_regex into lp:zorba
From: Zorba Build Bot, 2011-10-17
-
[Merge] lp:~zorba-coders/zorba/file_regex into lp:zorba
From: Paul J. Lucas, 2011-10-17
-
Re: [Merge] lp:~zorba-coders/zorba/file_regex into lp:zorba
From: Paul J. Lucas, 2011-10-17
-
[Merge] lp:~zorba-coders/zorba/file_regex into lp:zorba
From: Zorba Build Bot, 2011-10-17
-
Re: [Merge] lp:~zorba-coders/zorba/file_regex into lp:zorba
From: Zorba Build Bot, 2011-10-17
-
[Merge] lp:~zorba-coders/zorba/file_regex into lp:zorba
From: Zorba Build Bot, 2011-10-17
-
[Merge] lp:~zorba-coders/zorba/file_regex into lp:zorba
From: Zorba Build Bot, 2011-10-17
-
[Merge] lp:~zorba-coders/zorba/file_regex into lp:zorba
From: Paul J. Lucas, 2011-10-17
-
Re: [Merge] lp:~zorba-coders/zorba/file_regex into lp:zorba
From: Matthias Brantner, 2011-10-17