[
https://issues.apache.org/jira/browse/COUCHDB-85?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12609183#action_12609183
]
Li Zhengji commented on COUCHDB-85:
-----------------------------------
Please review my resolution.
all_databases() ->
{ok, Root} = gen_server:call(couch_server, get_root),
DbNameStart = string:len(Root) + 1,
Filenames =
filelib:fold_files(Root, "^[a-z0-9\\_\\$()\\+\\-]*[\\.]couch$", true,
fun(Filename, AccIn) ->
case string:substr(Filename, DbNameStart) of
[$/ | RelativeFilename] -> ok;
RelativeFilename -> ok
end,
[filename:rootname(RelativeFilename, ".couch") | AccIn]
end, []),
{ok, Filenames}.
> couch_server:all_databases() does not work on file name case-insensitive OS,
> such as Windows.
> ---------------------------------------------------------------------------------------------
>
> Key: COUCHDB-85
> URL: https://issues.apache.org/jira/browse/COUCHDB-85
> Project: CouchDB
> Issue Type: Bug
> Components: Database Core
> Affects Versions: 0.8
> Environment: Windows XP, Erlang/OTP R12B-3
> Reporter: Li Zhengji
> Original Estimate: 2h
> Remaining Estimate: 2h
>
> "Filename -- Root": the "--" here will not work as we want obviously. For
> example, Filename = "e:/aa.couch", Root = "E:/", then (Filename -- Root) =
> "eaa.couch". Not to say "/" and "\" on Windows.
> "--" should not be used here. The simple way to do this would be:
> delete(FileName, 1, length(Root)).
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.