Filenames with spaces; output beside the input file; warning fixes (from dev c08eb1bbfa4c)
- Filenames may contain spaces: quote on the command line; filename lists use a standalone "/" separator; unseparated names that do not exist are rejoined into names that do (announced); leading ~ expands. - Without -o, output is written to the input file's directory; -o fully specifies the output directory and basename. - "Word not parsed" warnings now appear without -v, only for text that survives removal, with correct line numbers. - New tst/filename_test.sh regression suite. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
12
mac/file.h
12
mac/file.h
@@ -17,6 +17,18 @@ std::string relative_pathname(const std::string& filename, const std::string& ba
|
||||
fs::path relative_to_cwd(const fs::path& input);
|
||||
|
||||
bool file_exists(const std::string& pathname, bool error_if_not=false, bool is_directory=false);
|
||||
|
||||
// Filenames may contain spaces. A filename LIST in a flat string or an
|
||||
// argument vector is separated by a standalone "/" token (whitespace on both
|
||||
// sides; never a legal input filename -- "/" alone is the root directory).
|
||||
// Without a separator, whitespace-split tokens that do not name existing
|
||||
// files are greedily rejoined with their neighbors into names that do (the
|
||||
// rescue is announced). A leading "~/" (or bare "~") expands to $HOME.
|
||||
std::string expand_tilde(const std::string& path);
|
||||
std::vector<std::string> group_filename_tokens(
|
||||
const std::vector<std::string>& tokens, const std::string& base_dir="");
|
||||
std::vector<std::string> resolve_filename_list(
|
||||
const std::string& text, const std::string& base_dir="");
|
||||
std::string string_from_file(const std::string& pathname, bool strip_surrounding_whitespace=false);
|
||||
void string_to_file(const std::string& pathname, std::string contents);
|
||||
std::vector<std::string> get_files_in_directory(const std::string& dir);
|
||||
|
||||
Reference in New Issue
Block a user