mirror of
https://github.com/fish-shell/fish-shell.git
synced 2026-05-24 14:01:15 -03:00
remove some wcstring -> wchar_t* -> wcstring conversions
Mostly related to usage _(L"foo"), keeping in mind the _ macro does a wcstring().c_str() already. And a smattering of other trivial micro-optimizations certain to not help tangibly.
This commit is contained in:
@@ -545,8 +545,8 @@ void builtin_get_names(std::vector<completion_t> *list) {
|
||||
}
|
||||
|
||||
/// Return a one-line description of the specified builtin.
|
||||
wcstring builtin_get_desc(const wcstring &name) {
|
||||
wcstring result;
|
||||
const wchar_t *builtin_get_desc(const wcstring &name) {
|
||||
const wchar_t *result;
|
||||
const builtin_data_t *builtin = builtin_lookup(name);
|
||||
if (builtin) {
|
||||
result = _(builtin->desc);
|
||||
|
||||
@@ -83,7 +83,7 @@ proc_status_t builtin_run(parser_t &parser, int job_pgrp, wchar_t **argv, io_str
|
||||
|
||||
wcstring_list_t builtin_get_names();
|
||||
void builtin_get_names(std::vector<completion_t> *list);
|
||||
wcstring builtin_get_desc(const wcstring &b);
|
||||
const wchar_t *builtin_get_desc(const wcstring &b);
|
||||
|
||||
/// Support for setting and removing transient command lines. This is used by
|
||||
/// 'complete -C' in order to make the commandline builtin operate on the string
|
||||
|
||||
@@ -448,8 +448,7 @@ static int validate_arg(parser_t &parser, const argparse_cmd_opts_t &opts, optio
|
||||
if (is_long_flag) {
|
||||
vars.set_one(var_name_prefix + L"name", ENV_LOCAL, opt_spec->long_flag);
|
||||
} else {
|
||||
vars.set_one(var_name_prefix + L"name", ENV_LOCAL,
|
||||
wcstring(1, opt_spec->short_flag).c_str());
|
||||
vars.set_one(var_name_prefix + L"name", ENV_LOCAL, wcstring(1, opt_spec->short_flag));
|
||||
}
|
||||
vars.set_one(var_name_prefix + L"value", ENV_LOCAL, woptarg);
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ static void builtin_complete_add2(const wchar_t *cmd, int cmd_type, const wchar_
|
||||
comp, desc, flags);
|
||||
}
|
||||
|
||||
if (old_opt.empty() && gnu_opt.empty() && std::wcslen(short_opt) == 0) {
|
||||
if (old_opt.empty() && gnu_opt.empty() && short_opt[0] == L'\0') {
|
||||
complete_add(cmd, cmd_type, wcstring(), option_type_args_only, result_mode, condition, comp,
|
||||
desc, flags);
|
||||
}
|
||||
|
||||
@@ -129,7 +129,7 @@ static const wchar_t *math_get_arg(int *argidx, wchar_t **argv, wcstring *storag
|
||||
return math_get_arg_argv(argidx, argv);
|
||||
}
|
||||
|
||||
static wcstring math_describe_error(te_error_t& error) {
|
||||
static const wchar_t *math_describe_error(te_error_t& error) {
|
||||
if (error.position == 0) return L"NO ERROR?!?";
|
||||
|
||||
switch(error.type) {
|
||||
@@ -210,7 +210,7 @@ static int evaluate_expression(const wchar_t *cmd, parser_t &parser, io_streams_
|
||||
streams.out.push_back(L'\n');
|
||||
}
|
||||
} else {
|
||||
streams.err.append_format(L"%ls: Error: %ls\n", cmd, math_describe_error(error).c_str());
|
||||
streams.err.append_format(L"%ls: Error: %ls\n", cmd, math_describe_error(error));
|
||||
streams.err.append_format(L"'%ls'\n", expression.c_str());
|
||||
streams.err.append_format(L"%*ls%ls\n", error.position - 1, L" ",L"^");
|
||||
retval = STATUS_CMD_ERROR;
|
||||
|
||||
@@ -1008,13 +1008,13 @@ bool regex_replacer_t::replace_matches(const wcstring &arg) {
|
||||
}
|
||||
}
|
||||
|
||||
wcstring outstr(output, outlen);
|
||||
bool rc = true;
|
||||
if (pcre2_rc < 0) {
|
||||
string_error(streams, _(L"%ls: Regular expression substitute error: %ls\n"), argv0,
|
||||
pcre2_strerror(pcre2_rc).c_str());
|
||||
rc = false;
|
||||
} else {
|
||||
wcstring outstr(output, outlen);
|
||||
bool replacement_occurred = pcre2_rc > 0;
|
||||
if (!opts.quiet && (!opts.filter || replacement_occurred)) {
|
||||
streams.out.append(outstr);
|
||||
|
||||
@@ -1484,8 +1484,7 @@ static bool unescape_string_internal(const wchar_t *const input, const size_t in
|
||||
if (unescape_special && input_position == 0 &&
|
||||
!std::wcscmp(input, PROCESS_EXPAND_SELF_STR)) {
|
||||
to_append_or_none = PROCESS_EXPAND_SELF;
|
||||
input_position +=
|
||||
std::wcslen(PROCESS_EXPAND_SELF_STR) - 1; // skip over 'self' part.
|
||||
input_position += PROCESS_EXPAND_SELF_STR_LEN - 1; // skip over 'self's
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -508,7 +508,7 @@ static void parse_cmd_string(const wcstring &str, wcstring *path, wcstring *cmd,
|
||||
const environment_t &vars) {
|
||||
if (!path_get_path(str, path, vars)) {
|
||||
/// Use the empty string as the 'path' for commands that can not be found.
|
||||
*path = L"";
|
||||
path->clear();
|
||||
}
|
||||
|
||||
// Make sure the path is not included in the command.
|
||||
@@ -1150,8 +1150,8 @@ bool completer_t::complete_variable(const wcstring &str, size_t start_offset) {
|
||||
auto var = vars.get(env_name);
|
||||
if (!var) continue;
|
||||
|
||||
wcstring value = expand_escape_variable(*var);
|
||||
if (this->type() != COMPLETE_AUTOSUGGEST) {
|
||||
wcstring value = expand_escape_variable(*var);
|
||||
desc = format_string(COMPLETE_VAR_DESC_VAL, value.c_str());
|
||||
}
|
||||
}
|
||||
@@ -1493,7 +1493,7 @@ void completer_t::perform() {
|
||||
bool cursor_in_whitespace =
|
||||
!plain_statement.location_in_or_at_end_of_source_range(pos);
|
||||
if (cursor_in_whitespace) {
|
||||
current_argument = L"";
|
||||
current_argument.clear();
|
||||
previous_argument = matching_arg;
|
||||
} else {
|
||||
current_argument = matching_arg;
|
||||
|
||||
@@ -481,7 +481,7 @@ static void update_fish_color_support(const environment_t &vars) {
|
||||
debug(2, L"256 color support enabled for TERM=%ls", term.c_str());
|
||||
} else if (term.find(L"xterm") != wcstring::npos) {
|
||||
// Assume that all 'xterm's can handle 256, except for Terminal.app from Snow Leopard
|
||||
wcstring term_program, term_version;
|
||||
wcstring term_program;
|
||||
if (auto tp = vars.get(L"TERM_PROGRAM")) term_program = tp->as_string();
|
||||
if (auto tpv = vars.get(L"TERM_PROGRAM_VERSION")) {
|
||||
if (term_program == L"Apple_Terminal" &&
|
||||
@@ -821,7 +821,7 @@ static void handle_fish_history_change(const wcstring &op, const wcstring &var_n
|
||||
env_stack_t &vars) {
|
||||
UNUSED(op);
|
||||
UNUSED(var_name);
|
||||
reader_change_history(history_session_id(vars).c_str());
|
||||
reader_change_history(history_session_id(vars));
|
||||
}
|
||||
|
||||
static void handle_function_path_change(const wcstring &op, const wcstring &var_name,
|
||||
|
||||
@@ -102,6 +102,7 @@ enum expand_error_t {
|
||||
|
||||
/// The string represented by PROCESS_EXPAND_SELF
|
||||
#define PROCESS_EXPAND_SELF_STR L"%self"
|
||||
#define PROCESS_EXPAND_SELF_STR_LEN 5
|
||||
|
||||
/// Perform various forms of expansion on in, such as tilde expansion (\~USER becomes the users home
|
||||
/// directory), variable expansion (\$VAR_NAME becomes the value of the environment variable
|
||||
|
||||
@@ -2668,7 +2668,7 @@ static void test_complete() {
|
||||
do_test((completions.at(1).flags & COMPLETE_NO_SPACE) != 0);
|
||||
|
||||
// Test wraps.
|
||||
do_test(comma_join(complete_get_wrap_targets(L"wrapper1")) == L"");
|
||||
do_test(comma_join(complete_get_wrap_targets(L"wrapper1")).empty());
|
||||
complete_add_wrapper(L"wrapper1", L"wrapper2");
|
||||
do_test(comma_join(complete_get_wrap_targets(L"wrapper1")) == L"wrapper2");
|
||||
complete_add_wrapper(L"wrapper2", L"wrapper3");
|
||||
@@ -2679,7 +2679,7 @@ static void test_complete() {
|
||||
do_test(comma_join(complete_get_wrap_targets(L"wrapper2")) == L"wrapper3");
|
||||
do_test(comma_join(complete_get_wrap_targets(L"wrapper3")) == L"wrapper1");
|
||||
complete_remove_wrapper(L"wrapper1", L"wrapper2");
|
||||
do_test(comma_join(complete_get_wrap_targets(L"wrapper1")) == L"");
|
||||
do_test(comma_join(complete_get_wrap_targets(L"wrapper1")).empty());
|
||||
do_test(comma_join(complete_get_wrap_targets(L"wrapper2")) == L"wrapper3");
|
||||
do_test(comma_join(complete_get_wrap_targets(L"wrapper3")) == L"wrapper1");
|
||||
}
|
||||
|
||||
@@ -371,7 +371,7 @@ static size_t trim_leading_spaces(std::string &str) {
|
||||
|
||||
static bool extract_prefix_and_unescape_yaml(std::string *key, std::string *value,
|
||||
const std::string &line) {
|
||||
size_t where = line.find(":");
|
||||
size_t where = line.find(':');
|
||||
if (where != std::string::npos) {
|
||||
key->assign(line, 0, where);
|
||||
|
||||
@@ -1868,7 +1868,7 @@ wcstring history_session_id(const environment_t &vars) {
|
||||
if (var) {
|
||||
wcstring session_id = var->as_string();
|
||||
if (session_id.empty()) {
|
||||
result = L"";
|
||||
result.clear();
|
||||
} else if (session_id == L"default") {
|
||||
; // using the default value
|
||||
} else if (valid_var_name(session_id)) {
|
||||
|
||||
@@ -234,7 +234,7 @@ void outputter_t::set_color(rgb_color_t c, rgb_color_t c2) {
|
||||
if (c == c2) c = (c2 == rgb_color_t::white()) ? rgb_color_t::black() : rgb_color_t::white();
|
||||
}
|
||||
|
||||
if ((enter_bold_mode != 0) && (std::strlen(enter_bold_mode) > 0)) {
|
||||
if (enter_bold_mode && enter_bold_mode[0] != '\0') {
|
||||
if (bg_set && !last_bg_set) {
|
||||
// Background color changed and is set, so we enter bold mode to make reading easier.
|
||||
// This means bold mode is _always_ on when the background color is set.
|
||||
@@ -295,7 +295,7 @@ void outputter_t::set_color(rgb_color_t c, rgb_color_t c2) {
|
||||
}
|
||||
|
||||
// Lastly, we set bold, underline, italics, dim, and reverse modes correctly.
|
||||
if (is_bold && !was_bold && enter_bold_mode && std::strlen(enter_bold_mode) > 0 && !bg_set) {
|
||||
if (is_bold && !was_bold && enter_bold_mode && enter_bold_mode[0] != '\0' && !bg_set) {
|
||||
// The unconst cast is for NetBSD's benefit. DO NOT REMOVE!
|
||||
writembs_nofail(*this, tparm((char *)enter_bold_mode));
|
||||
was_bold = is_bold;
|
||||
@@ -310,27 +310,27 @@ void outputter_t::set_color(rgb_color_t c, rgb_color_t c2) {
|
||||
}
|
||||
was_underline = is_underline;
|
||||
|
||||
if (was_italics && !is_italics && enter_italics_mode && std::strlen(enter_italics_mode) > 0) {
|
||||
if (was_italics && !is_italics && enter_italics_mode && enter_italics_mode[0] != '\0') {
|
||||
writembs_nofail(*this, exit_italics_mode);
|
||||
was_italics = is_italics;
|
||||
}
|
||||
|
||||
if (!was_italics && is_italics && enter_italics_mode && std::strlen(enter_italics_mode) > 0) {
|
||||
if (!was_italics && is_italics && enter_italics_mode && enter_italics_mode[0] != '\0') {
|
||||
writembs_nofail(*this, enter_italics_mode);
|
||||
was_italics = is_italics;
|
||||
}
|
||||
|
||||
if (is_dim && !was_dim && enter_dim_mode && std::strlen(enter_dim_mode) > 0) {
|
||||
if (is_dim && !was_dim && enter_dim_mode && enter_dim_mode[0] != '\0') {
|
||||
writembs_nofail(*this, enter_dim_mode);
|
||||
was_dim = is_dim;
|
||||
}
|
||||
|
||||
if (is_reverse && !was_reverse) {
|
||||
// Some terms do not have a reverse mode set, so standout mode is a fallback.
|
||||
if (enter_reverse_mode && std::strlen(enter_reverse_mode) > 0) {
|
||||
if (enter_reverse_mode && enter_reverse_mode[0] != '\0') {
|
||||
writembs_nofail(*this, enter_reverse_mode);
|
||||
was_reverse = is_reverse;
|
||||
} else if (enter_standout_mode && std::strlen(enter_standout_mode) > 0) {
|
||||
} else if (enter_standout_mode && enter_standout_mode[0] != '\0') {
|
||||
writembs_nofail(*this, enter_standout_mode);
|
||||
was_reverse = is_reverse;
|
||||
}
|
||||
|
||||
@@ -691,7 +691,7 @@ void parse_ll_t::report_tokenizer_error(const tok_t &tok) {
|
||||
parse_error_code_t parse_error_code = parse_error_from_tokenizer_error(tok.error);
|
||||
this->parse_error_at_location(tok.offset, tok.length, tok.offset + tok.error_offset,
|
||||
parse_error_code, L"%ls",
|
||||
tokenizer_get_error_message(tok.error).c_str());
|
||||
tokenizer_get_error_message(tok.error));
|
||||
}
|
||||
|
||||
void parse_ll_t::parse_error_unexpected_token(const wchar_t *expected, parse_token_t token) {
|
||||
|
||||
@@ -17,7 +17,8 @@
|
||||
#include "tokenizer.h"
|
||||
#include "wutil.h" // IWYU pragma: keep
|
||||
|
||||
wcstring tokenizer_get_error_message(tokenizer_error_t err) {
|
||||
// _(s) is already wgettext(s).c_str(), so let's not convert back to wcstring
|
||||
const wchar_t * tokenizer_get_error_message(tokenizer_error_t err) {
|
||||
switch (err) {
|
||||
case tokenizer_error_t::none:
|
||||
return L"";
|
||||
@@ -47,7 +48,7 @@ wcstring tokenizer_get_error_message(tokenizer_error_t err) {
|
||||
return _(L"Unexpected ')' found, expecting '}'");
|
||||
}
|
||||
assert(0 && "Unexpected tokenizer error");
|
||||
return NULL;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
// Whether carets redirect stderr.
|
||||
|
||||
@@ -61,7 +61,7 @@ enum class tokenizer_error_t {
|
||||
};
|
||||
|
||||
/// Get the error message for an error \p err.
|
||||
wcstring tokenizer_get_error_message(tokenizer_error_t err);
|
||||
const wchar_t *tokenizer_get_error_message(tokenizer_error_t err);
|
||||
|
||||
struct tok_t {
|
||||
// The type of the token.
|
||||
|
||||
@@ -336,7 +336,7 @@ bool wildcard_match(const wcstring &str, const wcstring &wc, bool leading_dots_f
|
||||
/// \param stat_res The result of calling stat on the file
|
||||
/// \param buf The struct buf output of calling stat on the file
|
||||
/// \param err The errno value after a failed stat call on the file.
|
||||
static wcstring file_get_desc(const wcstring &filename, int lstat_res, const struct stat &lbuf,
|
||||
static const wchar_t *file_get_desc(const wcstring &filename, int lstat_res, const struct stat &lbuf,
|
||||
int stat_res, const struct stat &buf, int err) {
|
||||
if (lstat_res) {
|
||||
return COMPLETE_FILE_DESC;
|
||||
@@ -929,14 +929,12 @@ int wildcard_expand_string(const wcstring &wc, const wcstring &working_directory
|
||||
// Check for a leading slash. If we find one, we have an absolute path: the prefix is empty, the
|
||||
// base dir is /, and the wildcard is the remainder. If we don't find one, the prefix is the
|
||||
// working directory, the base dir is empty.
|
||||
wcstring prefix, base_dir, effective_wc;
|
||||
wcstring prefix = L"", base_dir = L"", effective_wc;
|
||||
if (string_prefixes_string(L"/", wc)) {
|
||||
prefix = L"";
|
||||
base_dir = L"/";
|
||||
effective_wc = wc.substr(1);
|
||||
} else {
|
||||
prefix = working_directory;
|
||||
base_dir = L"";
|
||||
effective_wc = wc;
|
||||
}
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ static owning_lock<std::unordered_map<wcstring, wcstring>> wgettext_map;
|
||||
bool wreaddir_resolving(DIR *dir, const wcstring &dir_path, wcstring &out_name, bool *out_is_dir) {
|
||||
struct dirent *result = readdir(dir);
|
||||
if (!result) {
|
||||
out_name = L"";
|
||||
out_name.clear();
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -85,7 +85,7 @@ bool wreaddir_resolving(DIR *dir, const wcstring &dir_path, wcstring &out_name,
|
||||
bool wreaddir(DIR *dir, wcstring &out_name) {
|
||||
struct dirent *result = readdir(dir);
|
||||
if (!result) {
|
||||
out_name = L"";
|
||||
out_name.clear();
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user