Skip to content
  • Duy Nguyen's avatar
    add parse_pathspec() that converts cmdline args to struct pathspec · 87323bda
    Duy Nguyen authored and Junio C Hamano's avatar Junio C Hamano committed
    
    
    Currently to fill a struct pathspec, we do:
    
       const char **paths;
       paths = get_pathspec(prefix, argv);
       ...
       init_pathspec(&pathspec, paths);
    
    "paths" can only carry bare strings, which loses information from
    command line arguments such as pathspec magic or the prefix part's
    length for each argument.
    
    parse_pathspec() is introduced to combine the two calls into one. The
    plan is gradually replace all get_pathspec() and init_pathspec() with
    parse_pathspec(). get_pathspec() now becomes a thin wrapper of
    parse_pathspec().
    
    parse_pathspec() allows the caller to reject the pathspec magics that
    it does not support. When a new pathspec magic is introduced, we can
    enable it per command after making sure that all underlying code has no
    problem with the new magic.
    
    "flags" parameter is currently unused. But it would allow callers to
    pass certain instructions to parse_pathspec, for example forcing
    literal pathspec when no magic is used.
    
    With the introduction of parse_pathspec, there are now two functions
    that can initialize struct pathspec: init_pathspec and
    parse_pathspec. Any semantic changes in struct pathspec must be
    reflected in both functions. init_pathspec() will be phased out in
    favor of parse_pathspec().
    
    Signed-off-by: default avatarNguyễn Thái Ngọc Duy <pclouds@gmail.com>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    87323bda