[ 
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.

Reply via email to