mirror of
https://github.com/fish-shell/fish-shell
synced 2024-11-10 15:14:44 +00:00
Revert "Re-implement macro to constexpr transition"
This reverts commit 3d8f98c395
.
In addition to the issues mentioned on the GitHub page for this commit,
it also broke the CentOS 7 build.
Note one can locally test the CentOS 7 build via:
./docker/docker_run_tests.sh ./docker/centos7.Dockerfile
This commit is contained in:
parent
4ffcbe3526
commit
5f4583b52d
37 changed files with 116 additions and 115 deletions
|
@ -17,7 +17,7 @@
|
|||
#include "wutil.h" // IWYU pragma: keep
|
||||
|
||||
/// The time before we'll recheck an autoloaded file.
|
||||
const int kAutoloadStalenessInterval = 15;
|
||||
static const int kAutoloadStalenessInterval = 15;
|
||||
|
||||
/// Represents a file that we might want to autoload.
|
||||
namespace {
|
||||
|
|
|
@ -224,8 +224,7 @@ static maybe_t<int> builtin_generic(parser_t &parser, io_streams_t &streams, con
|
|||
|
||||
// How many bytes we read() at once.
|
||||
// Since this is just for counting, it can be massive.
|
||||
constexpr int COUNT_CHUNK_SIZE = 512 * 256;
|
||||
|
||||
#define COUNT_CHUNK_SIZE (512 * 256)
|
||||
/// Implementation of the builtin count command, used to count the number of arguments sent to it.
|
||||
static maybe_t<int> builtin_count(parser_t &parser, io_streams_t &streams, const wchar_t **argv) {
|
||||
UNUSED(parser);
|
||||
|
@ -414,7 +413,7 @@ static constexpr builtin_data_t builtin_datas[] = {
|
|||
};
|
||||
ASSERT_SORTED_BY_NAME(builtin_datas);
|
||||
|
||||
constexpr int BUILTIN_COUNT = sizeof builtin_datas / sizeof *builtin_datas;
|
||||
#define BUILTIN_COUNT (sizeof builtin_datas / sizeof *builtin_datas)
|
||||
|
||||
/// Look up a builtin_data_t for a specified builtin
|
||||
///
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
#include "../wutil.h" // IWYU pragma: keep
|
||||
|
||||
// The maximum number of points after the decimal that we'll print.
|
||||
constexpr int kDefaultScale = 6;
|
||||
static constexpr int kDefaultScale = 6;
|
||||
|
||||
// The end of the range such that every integer is representable as a double.
|
||||
// i.e. this is the first value such that x + 1 == x (or == x + 2, depending on rounding mode).
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
// How many bytes we read() at once.
|
||||
// We use PATH_MAX here so we always get at least one path,
|
||||
// and so we can automatically detect NULL-separated input.
|
||||
constexpr int PATH_CHUNK_SIZE = PATH_MAX;
|
||||
#define PATH_CHUNK_SIZE PATH_MAX
|
||||
|
||||
static void path_error(io_streams_t &streams, const wchar_t *fmt, ...) {
|
||||
streams.err.append(L"path ");
|
||||
|
|
|
@ -247,7 +247,7 @@ static int read_interactive(parser_t &parser, wcstring &buff, int nchars, bool s
|
|||
/// Bash uses 128 bytes for its chunk size. Very informal testing I did suggested that a smaller
|
||||
/// chunk size performed better. However, we're going to use the bash value under the assumption
|
||||
/// they've done more extensive testing.
|
||||
constexpr int READ_CHUNK_SIZE = 128;
|
||||
#define READ_CHUNK_SIZE 128
|
||||
|
||||
/// Read from the fd in chunks until we see newline or null, as requested, is seen. This is only
|
||||
/// used when the fd is seekable (so not from a tty or pipe) and we're not reading a specific number
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
// Empirically determined.
|
||||
// This is probably down to some pipe buffer or some such,
|
||||
// but too small means we need to call `read(2)` and str2wcstring a lot.
|
||||
constexpr int STRING_CHUNK_SIZE = 1024;
|
||||
#define STRING_CHUNK_SIZE 1024
|
||||
|
||||
namespace {
|
||||
|
||||
|
|
|
@ -81,7 +81,7 @@ static const struct resource_t resource_arr[] = {
|
|||
|
||||
/// This is likely to be the same as RLIMIT_INFINITY, but it shouldn't get used
|
||||
/// in the same context (that is, compared to the result of a getrlimit call).
|
||||
constexpr int RLIMIT_UNKNOWN = -1;
|
||||
#define RLIMIT_UNKNOWN -1
|
||||
|
||||
/// Get the implicit multiplication factor for the specified resource limit.
|
||||
static int get_multiplier(int what) {
|
||||
|
|
|
@ -1372,7 +1372,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 += const_strlen(PROCESS_EXPAND_SELF_STR) - 1; // skip over 'self's
|
||||
input_position += PROCESS_EXPAND_SELF_STR_LEN - 1; // skip over 'self's
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
36
src/common.h
36
src/common.h
|
@ -55,34 +55,34 @@
|
|||
#endif
|
||||
|
||||
// Common string type.
|
||||
using wcstring = std::wstring;
|
||||
using wcstring_list_t = std::vector<wcstring>;
|
||||
typedef std::wstring wcstring;
|
||||
typedef std::vector<wcstring> wcstring_list_t;
|
||||
|
||||
struct termsize_t;
|
||||
|
||||
// Highest legal ASCII value.
|
||||
constexpr wchar_t ASCII_MAX = 127U;
|
||||
#define ASCII_MAX 127u
|
||||
|
||||
// Highest legal 16-bit Unicode value.
|
||||
constexpr wchar_t UCS2_MAX = 0xFFFF;
|
||||
#define UCS2_MAX 0xFFFFu
|
||||
|
||||
// Highest legal byte value.
|
||||
constexpr wchar_t BYTE_MAX = 0xFF;
|
||||
#define BYTE_MAX 0xFFu
|
||||
|
||||
// Unicode BOM value.
|
||||
constexpr wchar_t UTF8_BOM_WCHAR = 0xFEFF;
|
||||
#define UTF8_BOM_WCHAR 0xFEFFu
|
||||
|
||||
// Use Unicode "noncharacters" for internal characters as much as we can. This
|
||||
// gives us 32 "characters" for internal use that we can guarantee should not
|
||||
// appear in our input stream. See http://www.unicode.org/faq/private_use.html.
|
||||
constexpr wchar_t RESERVED_CHAR_BASE = static_cast<wchar_t>(0xFDD0);
|
||||
constexpr wchar_t RESERVED_CHAR_END = static_cast<wchar_t>(0xFDF0);
|
||||
#define RESERVED_CHAR_BASE static_cast<wchar_t>(0xFDD0)
|
||||
#define RESERVED_CHAR_END static_cast<wchar_t>(0xFDF0)
|
||||
// Split the available noncharacter values into two ranges to ensure there are
|
||||
// no conflicts among the places we use these special characters.
|
||||
constexpr wchar_t EXPAND_RESERVED_BASE = RESERVED_CHAR_BASE;
|
||||
constexpr wchar_t EXPAND_RESERVED_END = (EXPAND_RESERVED_BASE + 16);
|
||||
constexpr wchar_t WILDCARD_RESERVED_BASE = EXPAND_RESERVED_END;
|
||||
constexpr wchar_t WILDCARD_RESERVED_END = (WILDCARD_RESERVED_BASE + 16);
|
||||
#define EXPAND_RESERVED_BASE RESERVED_CHAR_BASE
|
||||
#define EXPAND_RESERVED_END (EXPAND_RESERVED_BASE + 16)
|
||||
#define WILDCARD_RESERVED_BASE EXPAND_RESERVED_END
|
||||
#define WILDCARD_RESERVED_END (WILDCARD_RESERVED_BASE + 16)
|
||||
// Make sure the ranges defined above don't exceed the range for noncharacters.
|
||||
// This is to make sure we didn't do something stupid in subdividing the
|
||||
// Unicode range for our needs.
|
||||
|
@ -102,8 +102,8 @@ constexpr wchar_t WILDCARD_RESERVED_END = (WILDCARD_RESERVED_BASE + 16);
|
|||
// Note: We don't use the highest 8 bit range (0xF800 - 0xF8FF) because we know
|
||||
// of at least one use of a codepoint in that range: the Apple symbol (0xF8FF)
|
||||
// on Mac OS X. See http://www.unicode.org/faq/private_use.html.
|
||||
constexpr wchar_t ENCODE_DIRECT_BASE = static_cast<wchar_t>(0xF600);
|
||||
constexpr wchar_t ENCODE_DIRECT_END = (ENCODE_DIRECT_BASE + 256);
|
||||
#define ENCODE_DIRECT_BASE static_cast<wchar_t>(0xF600)
|
||||
#define ENCODE_DIRECT_END (ENCODE_DIRECT_BASE + 256)
|
||||
|
||||
// NAME_MAX is not defined on Solaris
|
||||
#if !defined(NAME_MAX)
|
||||
|
@ -140,7 +140,7 @@ enum {
|
|||
UNESCAPE_INCOMPLETE = 1 << 1, // allow incomplete escape sequences
|
||||
UNESCAPE_NO_BACKSLASHES = 1 << 2, // don't handle backslash escapes
|
||||
};
|
||||
using unescape_flags_t = unsigned int;
|
||||
typedef unsigned int unescape_flags_t;
|
||||
|
||||
// Flags for the escape_string() function. These are only applicable when the escape style is
|
||||
// "script" (i.e., STRING_STYLE_SCRIPT).
|
||||
|
@ -156,7 +156,7 @@ enum {
|
|||
/// Replace nonprintable control characters with Unicode symbols.
|
||||
ESCAPE_SYMBOLIC = 1 << 3
|
||||
};
|
||||
using escape_flags_t = unsigned int;
|
||||
typedef unsigned int escape_flags_t;
|
||||
|
||||
/// A user-visible job ID.
|
||||
using job_id_t = int;
|
||||
|
@ -300,7 +300,7 @@ std::string wcs2string(const wchar_t *in, size_t len);
|
|||
void wcs2string_appending(const wchar_t *in, size_t len, std::string *receiver);
|
||||
|
||||
// Check if we are running in the test mode, where we should suppress error output
|
||||
constexpr const wchar_t TESTS_PROGRAM_NAME[] = L"(ignore)";
|
||||
#define TESTS_PROGRAM_NAME L"(ignore)"
|
||||
bool should_suppress_stderr_for_tests();
|
||||
|
||||
/// Branch prediction hints. Idea borrowed from Linux kernel. Just used for asserts.
|
||||
|
@ -637,7 +637,7 @@ enum {
|
|||
|
||||
// Custom hash function used by unordered_map/unordered_set when key is const
|
||||
#ifndef CONST_WCSTRING_HASH
|
||||
#define CONST_WCSTRING_HASH
|
||||
#define CONST_WCSTRING_HASH 1
|
||||
namespace std {
|
||||
template <>
|
||||
struct hash<const wcstring> {
|
||||
|
|
|
@ -27,7 +27,7 @@ struct completion_mode_t {
|
|||
};
|
||||
|
||||
/// Character that separates the completion and description on programmable completions.
|
||||
constexpr char PROG_COMPLETE_SEP = L'\t';
|
||||
#define PROG_COMPLETE_SEP L'\t'
|
||||
|
||||
class parser_t;
|
||||
|
||||
|
|
16
src/env.cpp
16
src/env.cpp
|
@ -38,19 +38,19 @@
|
|||
#include "wutil.h" // IWYU pragma: keep
|
||||
|
||||
/// Some configuration path environment variables.
|
||||
constexpr const wchar_t FISH_DATADIR_VAR[] = L"__fish_data_dir";
|
||||
constexpr const wchar_t FISH_SYSCONFDIR_VAR[] = L"__fish_sysconf_dir";
|
||||
constexpr const wchar_t FISH_HELPDIR_VAR[] = L"__fish_help_dir";
|
||||
constexpr const wchar_t FISH_BIN_DIR[] = L"__fish_bin_dir";
|
||||
constexpr const wchar_t FISH_CONFIG_DIR[] = L"__fish_config_dir";
|
||||
constexpr const wchar_t FISH_USER_DATA_DIR[] = L"__fish_user_data_dir";
|
||||
#define FISH_DATADIR_VAR L"__fish_data_dir"
|
||||
#define FISH_SYSCONFDIR_VAR L"__fish_sysconf_dir"
|
||||
#define FISH_HELPDIR_VAR L"__fish_help_dir"
|
||||
#define FISH_BIN_DIR L"__fish_bin_dir"
|
||||
#define FISH_CONFIG_DIR L"__fish_config_dir"
|
||||
#define FISH_USER_DATA_DIR L"__fish_user_data_dir"
|
||||
|
||||
/// At init, we read all the environment variables from this array.
|
||||
extern char **environ;
|
||||
|
||||
/// The character used to delimit path and non-path variables in exporting and in string expansion.
|
||||
constexpr wchar_t PATH_ARRAY_SEP = L':';
|
||||
constexpr wchar_t NONPATH_ARRAY_SEP = L' ';
|
||||
static constexpr wchar_t PATH_ARRAY_SEP = L':';
|
||||
static constexpr wchar_t NONPATH_ARRAY_SEP = L' ';
|
||||
|
||||
bool curses_initialized = false;
|
||||
|
||||
|
|
|
@ -55,16 +55,16 @@
|
|||
#endif // Haiku
|
||||
|
||||
/// Error message.
|
||||
constexpr const wchar_t PARSE_ERR[] = L"Unable to parse universal variable message: '%ls'";
|
||||
#define PARSE_ERR L"Unable to parse universal variable message: '%ls'"
|
||||
|
||||
/// Small note about not editing ~/.fishd manually. Inserted at the top of all .fishd files.
|
||||
constexpr const char SAVE_MSG[] = "# This file contains fish universal variable definitions.\n";
|
||||
#define SAVE_MSG "# This file contains fish universal variable definitions.\n"
|
||||
|
||||
/// Version for fish 3.0
|
||||
#define UVARS_VERSION_3_0 "3.0"
|
||||
|
||||
// Maximum file size we'll read.
|
||||
constexpr size_t k_max_read_size = 16 * 1024 * 1024;
|
||||
static constexpr size_t k_max_read_size = 16 * 1024 * 1024;
|
||||
|
||||
// Fields used in fish 2.x uvars.
|
||||
namespace fish2x_uvars {
|
||||
|
@ -211,11 +211,11 @@ static bool append_file_entry(env_var_t::env_var_flags_t flags, const wcstring &
|
|||
}
|
||||
|
||||
/// Encoding of a null string.
|
||||
constexpr const wchar_t ENV_NULL[] = L"\x1d";
|
||||
static const wchar_t *const ENV_NULL = L"\x1d";
|
||||
|
||||
/// Character used to separate arrays in universal variables file.
|
||||
/// This is 30, the ASCII record separator.
|
||||
constexpr const wchar_t UVAR_ARRAY_SEP = 0x1e;
|
||||
static const wchar_t UVAR_ARRAY_SEP = 0x1e;
|
||||
|
||||
/// Decode a serialized universal variable value into a list.
|
||||
static wcstring_list_t decode_serialized(const wcstring &val) {
|
||||
|
@ -869,7 +869,7 @@ void env_universal_t::parse_message_2x_internal(const wcstring &msgstr, var_tabl
|
|||
}
|
||||
|
||||
/// Maximum length of hostname. Longer hostnames are truncated.
|
||||
constexpr int HOSTNAME_LEN = 255;
|
||||
#define HOSTNAME_LEN 255
|
||||
|
||||
/// Function to get an identifier based on the hostname.
|
||||
bool get_hostname_identifier(wcstring &result) {
|
||||
|
@ -898,8 +898,8 @@ class universal_notifier_shmem_poller_t final : public universal_notifier_t {
|
|||
uint32_t universal_variable_seed;
|
||||
};
|
||||
|
||||
constexpr int SHMEM_MAGIC_NUMBER = 0xF154;
|
||||
constexpr int SHMEM_VERSION_CURRENT = 1000;
|
||||
#define SHMEM_MAGIC_NUMBER 0xF154
|
||||
#define SHMEM_VERSION_CURRENT 1000
|
||||
|
||||
private:
|
||||
long long last_change_time{0};
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
struct io_streams_t;
|
||||
|
||||
/// The process id that is used to match any process id.
|
||||
constexpr int EVENT_ANY_PID = 0;
|
||||
#define EVENT_ANY_PID 0
|
||||
|
||||
/// Enumeration of event types.
|
||||
enum class event_type_t {
|
||||
|
|
|
@ -39,9 +39,9 @@
|
|||
|
||||
/// Characters which make a string unclean if they are the first character of the string. See \c
|
||||
/// expand_is_clean().
|
||||
constexpr const wchar_t UNCLEAN_FIRST[] = L"~%";
|
||||
#define UNCLEAN_FIRST L"~%"
|
||||
/// Unclean characters. See \c expand_is_clean().
|
||||
constexpr const wchar_t UNCLEAN[] = L"$*?\\\"'({})";
|
||||
#define UNCLEAN L"$*?\\\"'({})"
|
||||
|
||||
static void remove_internal_separator(wcstring *s, bool conv);
|
||||
|
||||
|
|
|
@ -133,7 +133,8 @@ struct expand_result_t {
|
|||
};
|
||||
|
||||
/// The string represented by PROCESS_EXPAND_SELF
|
||||
constexpr const wchar_t PROCESS_EXPAND_SELF_STR[] = L"%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
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
#include "iothread.h"
|
||||
#include "wutil.h"
|
||||
|
||||
constexpr uint64_t kUsecPerMsec = 1000;
|
||||
static constexpr uint64_t kUsecPerMsec = 1000;
|
||||
|
||||
fd_monitor_t::fd_monitor_t() = default;
|
||||
|
||||
|
|
|
@ -19,9 +19,9 @@
|
|||
|
||||
// The first fd in the "high range." fds below this are allowed to be used directly by users in
|
||||
// redirections, e.g. >&3
|
||||
constexpr int k_first_high_fd = 10;
|
||||
constexpr uint64_t kUsecPerMsec = 1000;
|
||||
constexpr uint64_t kUsecPerSec [[gnu::unused]] = 1000 * kUsecPerMsec;
|
||||
const int k_first_high_fd = 10;
|
||||
static constexpr uint64_t kUsecPerMsec = 1000;
|
||||
static constexpr uint64_t kUsecPerSec [[gnu::unused]] = 1000 * kUsecPerMsec;
|
||||
|
||||
void autoclose_fd_t::close() {
|
||||
if (fd_ < 0) return;
|
||||
|
|
|
@ -56,7 +56,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
|||
|
||||
// The number of spaces per indent isn't supposed to be configurable.
|
||||
// See discussion at https://github.com/fish-shell/fish-shell/pull/6790
|
||||
constexpr int SPACES_PER_INDENT = 4;
|
||||
#define SPACES_PER_INDENT 4
|
||||
|
||||
static bool dump_parse_tree = false;
|
||||
static int ret = 0;
|
||||
|
|
|
@ -121,11 +121,11 @@ static bool should_test_function(const char *func_name, bool default_on = true)
|
|||
}
|
||||
|
||||
/// The number of tests to run.
|
||||
constexpr int ESCAPE_TEST_COUNT = 100000;
|
||||
#define ESCAPE_TEST_COUNT 100000
|
||||
/// The average length of strings to unescape.
|
||||
constexpr int ESCAPE_TEST_LENGTH = 100;
|
||||
#define ESCAPE_TEST_LENGTH 100
|
||||
/// The highest character number of character to try and escape.
|
||||
constexpr int ESCAPE_TEST_CHAR = 4000;
|
||||
#define ESCAPE_TEST_CHAR 4000
|
||||
|
||||
/// Number of encountered errors.
|
||||
static int err_count = 0;
|
||||
|
@ -3928,8 +3928,8 @@ static void test_undo() {
|
|||
do_test(line.text() == L"abc");
|
||||
}
|
||||
|
||||
constexpr int UVARS_PER_THREAD = 8;
|
||||
constexpr const wchar_t UVARS_TEST_PATH[] = L"test/fish_uvars_test/varsfile.txt";
|
||||
#define UVARS_PER_THREAD 8
|
||||
#define UVARS_TEST_PATH L"test/fish_uvars_test/varsfile.txt"
|
||||
|
||||
static int test_universal_helper(int x) {
|
||||
callback_data_list_t callbacks;
|
||||
|
|
|
@ -550,7 +550,7 @@ static void color_string_internal(const wcstring &buffstr, highlight_spec_t base
|
|||
|
||||
// Hacky support for %self which must be an unquoted literal argument.
|
||||
if (buffstr == PROCESS_EXPAND_SELF_STR) {
|
||||
std::fill_n(colors, const_strlen(PROCESS_EXPAND_SELF_STR), highlight_role_t::operat);
|
||||
std::fill_n(colors, std::wcslen(PROCESS_EXPAND_SELF_STR), highlight_role_t::operat);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -52,21 +52,21 @@
|
|||
// Newlines are replaced by \n. Backslashes are replaced by \\.
|
||||
|
||||
// This is the history session ID we use by default if the user has not set env var fish_history.
|
||||
constexpr const wchar_t DFLT_FISH_HISTORY_SESSION_ID[] = L"fish";
|
||||
#define DFLT_FISH_HISTORY_SESSION_ID L"fish"
|
||||
|
||||
// When we rewrite the history, the number of items we keep.
|
||||
constexpr int HISTORY_SAVE_MAX = 1024 * 256;
|
||||
#define HISTORY_SAVE_MAX (1024 * 256)
|
||||
|
||||
// Default buffer size for flushing to the history file.
|
||||
constexpr int HISTORY_OUTPUT_BUFFER_SIZE = 64 * 1024;
|
||||
#define HISTORY_OUTPUT_BUFFER_SIZE (64 * 1024)
|
||||
|
||||
// The file access mode we use for creating history files
|
||||
constexpr int history_file_mode = 0600;
|
||||
static constexpr int history_file_mode = 0600;
|
||||
|
||||
// How many times we retry to save
|
||||
// Saving may fail if the file is modified in between our opening
|
||||
// the file and taking the lock
|
||||
constexpr int max_save_tries = 1024;
|
||||
static constexpr int max_save_tries = 1024;
|
||||
|
||||
namespace {
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
#include "wutil.h" // IWYU pragma: keep
|
||||
|
||||
/// A name for our own key mapping for nul.
|
||||
constexpr const wchar_t k_nul_mapping_name[] = L"nul";
|
||||
static const wchar_t *k_nul_mapping_name = L"nul";
|
||||
|
||||
/// Struct representing a keybinding. Returned by input_get_mappings.
|
||||
struct input_mapping_t {
|
||||
|
@ -72,7 +72,7 @@ struct terminfo_mapping_t {
|
|||
terminfo_mapping_t(const wchar_t *name, std::string s) : name(name), seq(std::move(s)) {}
|
||||
};
|
||||
|
||||
constexpr size_t input_function_count = R_END_INPUT_FUNCTIONS;
|
||||
static constexpr size_t input_function_count = R_END_INPUT_FUNCTIONS;
|
||||
|
||||
/// Input function metadata. This list should be kept in sync with the key code list in
|
||||
/// input_common.h.
|
||||
|
|
|
@ -14,8 +14,8 @@
|
|||
#include "input_common.h"
|
||||
#include "maybe.h"
|
||||
|
||||
constexpr wchar_t FISH_BIND_MODE_VAR[] = L"fish_bind_mode";
|
||||
constexpr wchar_t DEFAULT_BIND_MODE[]= L"default";
|
||||
#define FISH_BIND_MODE_VAR L"fish_bind_mode"
|
||||
#define DEFAULT_BIND_MODE L"default"
|
||||
|
||||
class event_queue_peeker_t;
|
||||
class parser_t;
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
/// Time in milliseconds to wait for another byte to be available for reading
|
||||
/// after \x1B is read before assuming that escape key was pressed, and not an
|
||||
/// escape sequence.
|
||||
constexpr int WAIT_ON_ESCAPE_DEFAULT = 30;
|
||||
#define WAIT_ON_ESCAPE_DEFAULT 30
|
||||
static int wait_on_escape_ms = WAIT_ON_ESCAPE_DEFAULT;
|
||||
|
||||
input_event_queue_t::input_event_queue_t(int in) : in_(in) {}
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
#define NOCLOB_ERROR _(L"The file '%ls' already exists")
|
||||
|
||||
/// Base open mode to pass to calls to open.
|
||||
constexpr int OPEN_MASK = 0666;
|
||||
#define OPEN_MASK 0666
|
||||
|
||||
/// Provide the fd monitor used for background fillthread operations.
|
||||
static fd_monitor_t &fd_monitor() {
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
#include "maybe.h"
|
||||
|
||||
/// We just define a thread limit of 1024.
|
||||
constexpr int IO_MAX_THREADS = 1024;
|
||||
#define IO_MAX_THREADS 1024
|
||||
|
||||
// iothread has a thread pool. Sometimes there's no work to do, but extant threads wait around for a
|
||||
// while (on a condition variable) in case new work comes soon. However condition variables are not
|
||||
|
@ -29,9 +29,9 @@ constexpr int IO_MAX_THREADS = 1024;
|
|||
// See https://github.com/google/sanitizers/issues/1259
|
||||
// When using TSan, disable the wait-around feature.
|
||||
#ifdef FISH_TSAN_WORKAROUNDS
|
||||
constexpr int IO_WAIT_FOR_WORK_DURATION_MS = 0;
|
||||
#define IO_WAIT_FOR_WORK_DURATION_MS 0
|
||||
#else
|
||||
constexpr int IO_WAIT_FOR_WORK_DURATION_MS = 500;
|
||||
#define IO_WAIT_FOR_WORK_DURATION_MS 500
|
||||
#endif
|
||||
|
||||
using void_function_t = std::function<void()>;
|
||||
|
|
|
@ -30,16 +30,16 @@ using comp_t = pager_t::comp_t;
|
|||
using comp_info_list_t = std::vector<comp_t>;
|
||||
|
||||
/// The minimum width (in characters) the terminal must to show completions at all.
|
||||
constexpr int PAGER_MIN_WIDTH = 16;
|
||||
#define PAGER_MIN_WIDTH 16
|
||||
|
||||
/// Minimum height to show completions
|
||||
constexpr int PAGER_MIN_HEIGHT = 4;
|
||||
#define PAGER_MIN_HEIGHT 4
|
||||
|
||||
/// The maximum number of columns of completion to attempt to fit onto the screen.
|
||||
constexpr int PAGER_MAX_COLS = 6;
|
||||
#define PAGER_MAX_COLS 6
|
||||
|
||||
/// Width of the search field.
|
||||
constexpr int PAGER_SEARCH_FIELD_WIDTH = 12;
|
||||
#define PAGER_SEARCH_FIELD_WIDTH 12
|
||||
|
||||
/// Text we use for the search field.
|
||||
#define SEARCH_FIELD_PROMPT _(L"search: ")
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
|
||||
struct termsize_t;
|
||||
|
||||
constexpr size_t PAGER_SELECTION_NONE = static_cast<size_t>(-1);
|
||||
#define PAGER_SELECTION_NONE static_cast<size_t>(-1)
|
||||
|
||||
/// Represents rendering from the pager.
|
||||
class page_rendering_t {
|
||||
|
@ -56,11 +56,11 @@ enum class selection_motion_t {
|
|||
};
|
||||
|
||||
// The space between adjacent completions.
|
||||
constexpr const wchar_t PAGER_SPACER_STRING[] = L" ";
|
||||
constexpr int PAGER_SPACER_STRING_WIDTH = const_strlen(PAGER_SPACER_STRING);
|
||||
#define PAGER_SPACER_STRING L" "
|
||||
#define PAGER_SPACER_STRING_WIDTH 2
|
||||
|
||||
// How many rows we will show in the "initial" pager.
|
||||
constexpr int PAGER_UNDISCLOSED_MAX_ROWS = 4;
|
||||
#define PAGER_UNDISCLOSED_MAX_ROWS 4
|
||||
|
||||
class pager_t {
|
||||
size_t available_term_width{0};
|
||||
|
|
|
@ -189,13 +189,13 @@ struct parse_error_t {
|
|||
wcstring describe_with_prefix(const wcstring &src, const wcstring &prefix, bool is_interactive,
|
||||
bool skip_caret) const;
|
||||
};
|
||||
using parse_error_list_t = std::vector<parse_error_t>;
|
||||
typedef std::vector<parse_error_t> parse_error_list_t;
|
||||
|
||||
wcstring token_type_user_presentable_description(parse_token_type_t type,
|
||||
parse_keyword_t keyword = parse_keyword_t::none);
|
||||
|
||||
// Special source_start value that means unknown.
|
||||
constexpr size_t SOURCE_LOCATION_UNKNOWN = static_cast<size_t>(-1);
|
||||
#define SOURCE_LOCATION_UNKNOWN (static_cast<size_t>(-1))
|
||||
|
||||
/// Helper function to offset error positions by the given amount. This is used when determining
|
||||
/// errors in a substring of a larger source buffer.
|
||||
|
@ -209,7 +209,7 @@ enum class pipeline_position_t : uint8_t {
|
|||
};
|
||||
|
||||
/// Maximum number of function calls.
|
||||
constexpr int FISH_MAX_STACK_DEPTH = 128;
|
||||
#define FISH_MAX_STACK_DEPTH 128
|
||||
|
||||
/// Error message on a function that calls itself immediately.
|
||||
#define INFINITE_FUNC_RECURSION_ERR_MSG \
|
||||
|
|
|
@ -43,7 +43,7 @@
|
|||
#define TIME_IN_PIPELINE_ERR_MSG _(L"The 'time' command may only be at the beginning of a pipeline")
|
||||
|
||||
/// Maximum length of a variable name to show in error reports before truncation
|
||||
constexpr int var_err_len = 16;
|
||||
static constexpr int var_err_len = 16;
|
||||
|
||||
int parse_util_lineno(const wcstring &str, size_t offset) {
|
||||
// Return the line number of position offset, starting with 1.
|
||||
|
|
|
@ -10,14 +10,15 @@
|
|||
|
||||
#include "common.h"
|
||||
|
||||
constexpr int CMD_LEN = 1024;
|
||||
constexpr char HELP_ERR[] = "Could not show help message\n";
|
||||
#define CMD_LEN 1024
|
||||
|
||||
#define HELP_ERR "Could not show help message\n"
|
||||
|
||||
void print_help(const char *c, int fd) {
|
||||
char cmd[CMD_LEN];
|
||||
int printed = snprintf(cmd, CMD_LEN, "fish -c '__fish_print_help %s >&%d'", c, fd);
|
||||
|
||||
if (printed < CMD_LEN && system(cmd) == -1) {
|
||||
write_loop(2, HELP_ERR, const_strlen(HELP_ERR));
|
||||
write_loop(2, HELP_ERR, std::strlen(HELP_ERR));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -83,47 +83,47 @@
|
|||
|
||||
// Name of the variable that tells how long it took, in milliseconds, for the previous
|
||||
// interactive command to complete.
|
||||
constexpr const wchar_t ENV_CMD_DURATION[] = L"CMD_DURATION";
|
||||
#define ENV_CMD_DURATION L"CMD_DURATION"
|
||||
|
||||
/// Maximum length of prefix string when printing completion list. Longer prefixes will be
|
||||
/// ellipsized.
|
||||
constexpr int PREFIX_MAX_LEN = 9;
|
||||
#define PREFIX_MAX_LEN 9
|
||||
|
||||
/// A simple prompt for reading shell commands that does not rely on fish specific commands, meaning
|
||||
/// it will work even if fish is not installed. This is used by read_i.
|
||||
constexpr const wchar_t DEFAULT_PROMPT[] = L"echo -n \"$USER@$hostname $PWD \"'> '";
|
||||
#define DEFAULT_PROMPT L"echo -n \"$USER@$hostname $PWD \"'> '"
|
||||
|
||||
/// The name of the function that prints the fish prompt.
|
||||
constexpr const wchar_t LEFT_PROMPT_FUNCTION_NAME[] = L"fish_prompt";
|
||||
#define LEFT_PROMPT_FUNCTION_NAME L"fish_prompt"
|
||||
|
||||
/// The name of the function that prints the fish right prompt (RPROMPT).
|
||||
constexpr const wchar_t RIGHT_PROMPT_FUNCTION_NAME[] = L"fish_right_prompt";
|
||||
#define RIGHT_PROMPT_FUNCTION_NAME L"fish_right_prompt"
|
||||
|
||||
/// The name of the function to use in place of the left prompt if we're in the debugger context.
|
||||
constexpr const wchar_t DEBUG_PROMPT_FUNCTION_NAME[] = L"fish_breakpoint_prompt";
|
||||
#define DEBUG_PROMPT_FUNCTION_NAME L"fish_breakpoint_prompt"
|
||||
|
||||
/// The name of the function for getting the input mode indicator.
|
||||
constexpr const wchar_t MODE_PROMPT_FUNCTION_NAME[] = L"fish_mode_prompt";
|
||||
#define MODE_PROMPT_FUNCTION_NAME L"fish_mode_prompt"
|
||||
|
||||
/// The default title for the reader. This is used by reader_readline.
|
||||
constexpr const wchar_t DEFAULT_TITLE[] = L"echo (status current-command) \" \" $PWD";
|
||||
#define DEFAULT_TITLE L"echo (status current-command) \" \" $PWD"
|
||||
|
||||
/// The maximum number of characters to read from the keyboard without repainting. Note that this
|
||||
/// readahead will only occur if new characters are available for reading, fish will never block for
|
||||
/// more input without repainting.
|
||||
constexpr size_t READAHEAD_MAX = 256;
|
||||
static constexpr size_t READAHEAD_MAX = 256;
|
||||
|
||||
/// When tab-completing with a wildcard, we expand the wildcard up to this many results.
|
||||
/// If expansion would exceed this many results, beep and do nothing.
|
||||
constexpr size_t TAB_COMPLETE_WILDCARD_MAX_EXPANSION = 256;
|
||||
static const size_t TAB_COMPLETE_WILDCARD_MAX_EXPANSION = 256;
|
||||
|
||||
/// A mode for calling the reader_kill function. In this mode, the new string is appended to the
|
||||
/// current contents of the kill buffer.
|
||||
constexpr int KILL_APPEND = 0;
|
||||
#define KILL_APPEND 0
|
||||
|
||||
/// A mode for calling the reader_kill function. In this mode, the new string is prepended to the
|
||||
/// current contents of the kill buffer.
|
||||
constexpr int KILL_PREPEND = 1;
|
||||
#define KILL_PREPEND 1
|
||||
|
||||
enum class jump_direction_t { forward, backward };
|
||||
enum class jump_precision_t { till, to };
|
||||
|
@ -169,7 +169,7 @@ static operation_context_t get_bg_context(const std::shared_ptr<environment_t> &
|
|||
/// typed. But we do not want it to block forever - e.g. it may hang on determining if an arbitrary
|
||||
/// argument is a path. This is how long we'll wait (in milliseconds) before giving up and
|
||||
/// performing a no-io syntax highlighting. See #7418, #5912.
|
||||
constexpr long kHighlightTimeoutForExecutionMs = 250;
|
||||
static constexpr long kHighlightTimeoutForExecutionMs = 250;
|
||||
|
||||
/// Get the debouncer for autosuggestions and background highlighting.
|
||||
/// These are deliberately leaked to avoid shutdown dtor registration.
|
||||
|
|
|
@ -45,7 +45,7 @@
|
|||
#include "termsize.h"
|
||||
|
||||
/// The number of characters to indent new blocks.
|
||||
constexpr uint32_t INDENT_STEP = 4U;
|
||||
#define INDENT_STEP 4u
|
||||
|
||||
/// RAII class to begin and end buffering around an outputter.
|
||||
namespace {
|
||||
|
|
|
@ -26,17 +26,17 @@ enum class token_type_t : uint8_t {
|
|||
|
||||
/// Flag telling the tokenizer to accept incomplete parameters, i.e. parameters with mismatching
|
||||
/// parenthesis, etc. This is useful for tab-completion.
|
||||
constexpr int TOK_ACCEPT_UNFINISHED = 1;
|
||||
#define TOK_ACCEPT_UNFINISHED 1
|
||||
|
||||
/// Flag telling the tokenizer not to remove comments. Useful for syntax highlighting.
|
||||
constexpr int TOK_SHOW_COMMENTS = 2;
|
||||
#define TOK_SHOW_COMMENTS 2
|
||||
|
||||
/// Ordinarily, the tokenizer ignores newlines following a newline, or a semicolon. This flag tells
|
||||
/// the tokenizer to return each of them as a separate END.
|
||||
constexpr int TOK_SHOW_BLANK_LINES = 4;
|
||||
#define TOK_SHOW_BLANK_LINES 4
|
||||
|
||||
/// Make an effort to continue after an error.
|
||||
constexpr int TOK_CONTINUE_AFTER_ERROR = 8;
|
||||
#define TOK_CONTINUE_AFTER_ERROR 8
|
||||
|
||||
using tok_flags_t = unsigned int;
|
||||
|
||||
|
|
10
src/utf8.cpp
10
src/utf8.cpp
|
@ -24,12 +24,12 @@
|
|||
|
||||
#include "common.h"
|
||||
|
||||
constexpr uint8_t _NXT = 0x80;
|
||||
constexpr uint8_t _SEQ2 = 0xc0;
|
||||
constexpr uint8_t _SEQ3 = 0xe0;
|
||||
constexpr uint8_t _SEQ4 = 0xf0;
|
||||
#define _NXT 0x80
|
||||
#define _SEQ2 0xc0
|
||||
#define _SEQ3 0xe0
|
||||
#define _SEQ4 0xf0
|
||||
|
||||
constexpr wchar_t _BOM = 0xfeff;
|
||||
#define _BOM 0xfeff
|
||||
|
||||
// We can tweak the following typedef to allow us to simulate Windows-style 16 bit wchar's on Unix.
|
||||
using utf8_wchar_t = wchar_t;
|
||||
|
|
|
@ -22,8 +22,8 @@
|
|||
|
||||
#include <string>
|
||||
|
||||
constexpr int UTF8_IGNORE_ERROR = 0x01;
|
||||
constexpr int UTF8_SKIP_BOM = 0x02;
|
||||
#define UTF8_IGNORE_ERROR 0x01
|
||||
#define UTF8_SKIP_BOM 0x02
|
||||
|
||||
/// Convert a string between UTF8 and UCS-2/4 (depending on size of wchar_t). Returns true if
|
||||
/// successful, storing the result of the conversion in *result*.
|
||||
|
|
|
@ -176,7 +176,7 @@ struct dir_t {
|
|||
};
|
||||
|
||||
#ifndef HASH_FILE_ID
|
||||
#define HASH_FILE_ID
|
||||
#define HASH_FILE_ID 1
|
||||
namespace std {
|
||||
template <>
|
||||
struct hash<file_id_t> {
|
||||
|
|
Loading…
Reference in a new issue