mirror of
https://github.com/fish-shell/fish-shell
synced 2025-01-11 20:48:49 +00:00
add better support for IWYU and fix things
Remove the "make iwyu" build target. Move the functionality into the recently introduced lint.fish script. Fix a lot, but not all, of the include-what-you-use errors. Specifically, it fixes all of the IWYU errors on my OS X server but only removes some of them on my Ubuntu 14.04 server. Fixes #2957
This commit is contained in:
parent
daa217f533
commit
1f06e5f0b9
104 changed files with 685 additions and 533 deletions
|
@ -1,9 +1,27 @@
|
||||||
|
|
||||||
# Guidelines For Developers
|
# Guidelines For Developers
|
||||||
|
|
||||||
This document provides guidelines for making changes to the fish-shell project. This includes rules for how to format the code, naming conventions, etc. It also includes recommended best practices such as creating a Travis-CI account so you can verify your changes pass all the tests before making a pull-request.
|
This document provides guidelines for making changes to the fish-shell project. This includes rules for how to format the code, naming conventions, etc. It also includes recommended best practices such as creating a Travis-CI account so you can verify your changes pass all the tests before making a pull-request.
|
||||||
|
|
||||||
See the bottom of this document for help on installing the linting and style reformatting tools discussed in the following sections.
|
See the bottom of this document for help on installing the linting and style reformatting tools discussed in the following sections.
|
||||||
|
|
||||||
|
Fish source should limit the C++ features it uses to those available in C++03. That allows fish to use a few components from [C++TR1](https://en.wikipedia.org/wiki/C%2B%2B_Technical_Report_1) such as `shared_ptr`. It also allows fish to be built and run on OS X Snow Leopard (released in 2009); the oldest OS X release we still support.
|
||||||
|
|
||||||
|
## Include What You Use
|
||||||
|
|
||||||
|
You should not depend on symbols being visible to a `*.cpp` module from `#include` statements inside another header file. In other words if your module does `#include "common.h"` and that header does `#include "signal.h"` your module should pretend that sub-include is not present. It should instead directly `#include "signal.h"` if it needs any symbol from that header. That makes the actual dependencies much clearer. It also makes it easy to modify the headers included by a specific header file without having to worry that will break any module (or header) that includes a particular header.
|
||||||
|
|
||||||
|
To help enforce this rule the `make lint` (and `make lint-all`) command will run the [include-what-you-use](http://include-what-you-use.org/) tool. The IWYU you project is on [github](https://github.com/include-what-you-use/include-what-you-use).
|
||||||
|
|
||||||
|
To install the tool on OS X you'll need to add a [formula](https://github.com/jasonmp85/homebrew-iwyu) then install it:
|
||||||
|
|
||||||
|
```
|
||||||
|
brew tap jasonmp85/iwyu
|
||||||
|
brew install iwyu
|
||||||
|
```
|
||||||
|
|
||||||
|
On Ubuntu you can install it via `sudo apt-get install iwyu`.
|
||||||
|
|
||||||
## Lint Free Code
|
## Lint Free Code
|
||||||
|
|
||||||
Automated analysis tools like cppcheck and oclint can point out potential bugs. They also help ensure the code has a consistent style and that it avoids patterns that tend to confuse people.
|
Automated analysis tools like cppcheck and oclint can point out potential bugs. They also help ensure the code has a consistent style and that it avoids patterns that tend to confuse people.
|
||||||
|
|
12
Makefile.in
12
Makefile.in
|
@ -859,19 +859,11 @@ depend:
|
||||||
cp config.h /tmp/fish_make_depend/
|
cp config.h /tmp/fish_make_depend/
|
||||||
mv $(subst obj/,/tmp/fish_make_depend/src/,$(FISH_ALL_OBJS:.o=.cpp)) /tmp/fish_make_depend/
|
mv $(subst obj/,/tmp/fish_make_depend/src/,$(FISH_ALL_OBJS:.o=.cpp)) /tmp/fish_make_depend/
|
||||||
cd /tmp/fish_make_depend && \
|
cd /tmp/fish_make_depend && \
|
||||||
makedepend -f$(CURDIR)/Makefile.in -pobj/ -Y -Isrc *.cpp
|
makedepend -f$(CURDIR)/Makefile.in -pobj/ -Y -Isrc *.cpp
|
||||||
rm -Rf /tmp/fish_make_depend
|
rm -Rf /tmp/fish_make_depend
|
||||||
./config.status
|
./config.status
|
||||||
.PHONY: depend
|
.PHONY: depend
|
||||||
|
|
||||||
# Include What You Use
|
|
||||||
iwyu:
|
|
||||||
# Requires the --keep-going flag as it always returns 1
|
|
||||||
# Can't set MAKEFLAGS on a target-specific basic
|
|
||||||
$(MAKE) -k _iwyu CXX=include-what-you-use
|
|
||||||
_iwyu: clean $(PROGRAMS)
|
|
||||||
.PHONY: iwyu _iwyu
|
|
||||||
|
|
||||||
# Lint the code. This only deals with C++ files.
|
# Lint the code. This only deals with C++ files.
|
||||||
lint:
|
lint:
|
||||||
build_tools/lint.fish $(CXX) $(CXXFLAGS)
|
build_tools/lint.fish $(CXX) $(CXXFLAGS)
|
||||||
|
@ -894,7 +886,7 @@ style-all:
|
||||||
# Restore the source tree to the state right after extracting a tarball.
|
# Restore the source tree to the state right after extracting a tarball.
|
||||||
distclean: clean
|
distclean: clean
|
||||||
$(MAKE) -C $(PCRE2_DIR) distclean || true
|
$(MAKE) -C $(PCRE2_DIR) distclean || true
|
||||||
rm -f config.status config.log config.h Makefile
|
rm -f config.status config.log config.h Makefile osx/config.h
|
||||||
.PHONY: distclean
|
.PHONY: distclean
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -13,9 +13,9 @@ Detailed user documentation is available by running `help` within fish, and also
|
||||||
|
|
||||||
## Building
|
## Building
|
||||||
|
|
||||||
fish is written in a sane subset of C++98, with a few components from C++TR1. It builds successfully with g++ 4.2 or later, and with clang. It also will build as C++11.
|
Fish can be built using a C++11 environment but only requires C++03. It builds successfully with g++ 4.2 or later, and with clang. This allows fish to run on older systems such as OS X Snow Leopard (released in 2009).
|
||||||
|
|
||||||
fish can be built using autotools or Xcode. autoconf 2.60 or later is required to build from git versions, but is not required for releases.
|
Fish can be built using autotools or Xcode. autoconf 2.60 or later is required to build from git versions, but is not required for releases.
|
||||||
|
|
||||||
fish depends on a curses implementation, such as ncurses. The headers and libraries are required for building.
|
fish depends on a curses implementation, such as ncurses. The headers and libraries are required for building.
|
||||||
|
|
||||||
|
|
17
build_tools/iwyu.linux.imp
Normal file
17
build_tools/iwyu.linux.imp
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
# Map file for the include-what-you-use tool on Linux.
|
||||||
|
[
|
||||||
|
{ include: ["<bits/fcntl-linux.h>", "private", "<fcntl.h>", "public"] },
|
||||||
|
{ include: ["<bits/mman-linux.h>", "private", "<sys/mman.h>", "public"] },
|
||||||
|
{ include: ["<bits/socket-linux.h>", "private", "<sys/socket.h>", "public"] },
|
||||||
|
{ include: ["<bits/socket_type.h>", "private", "<sys/socket.h>", "public"] },
|
||||||
|
{ include: ["<bits/local_lim.h>", "private", "<limits.h>", "public"] },
|
||||||
|
{ include: ["<tr1/memory>", "public", "<memory>", "public"] },
|
||||||
|
{ include: ["<features.h>", "public", "<stdio.h>", "public"] },
|
||||||
|
{ include: ["<features.h>", "public", "<stddef.h>", "public"] },
|
||||||
|
{ include: ["<features.h>", "public", "<unistd.h>", "public"] },
|
||||||
|
|
||||||
|
{ symbol: ["size_t", "private", "<unistd.h>", "public"] },
|
||||||
|
{ symbol: ["size_t", "private", "<stddef.h>", "public"] },
|
||||||
|
{ symbol: ["size_t", "private", "<stdlib.h>", "public"] },
|
||||||
|
{ symbol: ["uint64_t", "private", "<sys/types.h>", "public"] },
|
||||||
|
]
|
97
build_tools/iwyu.osx.imp
Normal file
97
build_tools/iwyu.osx.imp
Normal file
|
@ -0,0 +1,97 @@
|
||||||
|
# Map file for the include-what-you-use tool on OS X. For some reason
|
||||||
|
# the version installed by HomeBrew doesn't have useful mappings for the
|
||||||
|
# system provided private headers.
|
||||||
|
[
|
||||||
|
{ include: ["<sys/_pthread/_pthread_once_t.h>", "private", "<pthread.h>", "public"] },
|
||||||
|
{ include: ["<sys/_pthread/_pthread_mutex_t.h>", "private", "<pthread.h>", "public"] },
|
||||||
|
{ include: ["<sys/_pthread/_pthread_rwlock_t.h>", "private", "<pthread.h>", "public"] },
|
||||||
|
{ include: ["<sys/_pthread/_pthread_mutexattr_t.h>", "private", "<pthread.h>", "public"] },
|
||||||
|
{ include: ["<sys/_pthread/_pthread_cond_t.h>", "private", "<pthread.h>", "public"] },
|
||||||
|
{ include: ["<sys/_pthread/_pthread_t.h>", "private", "<pthread.h>", "public"] },
|
||||||
|
{ include: ["<sys/_pthread/_pthread_key_t.h>", "private", "<pthread.h>", "public"] },
|
||||||
|
{ include: ["<sys/_types/_posix_vdisable.h>", "private", "<pthread.h>", "public"] },
|
||||||
|
{ include: ["<sys/_types/_time_t.h>", "private", "<time.h>", "public"] },
|
||||||
|
{ include: ["<sys/_types/_suseconds_t.h>", "private", "<time.h>", "public"] },
|
||||||
|
{ include: ["<sys/_types/_suseconds_t.h>", "private", "<sys/types.h>", "public"] },
|
||||||
|
{ include: ["<sys/errno.h>", "private", "<errno.h>", "public"] },
|
||||||
|
{ include: ["<sys/unistd.h>", "private", "<unistd.h>", "public"] },
|
||||||
|
{ include: ["<_wctype.h>", "private", "<wctype.h>", "public"] },
|
||||||
|
{ include: ["<sys/fcntl.h>", "private", "<fcntl.h>", "public"] },
|
||||||
|
{ include: ["<sys/_types/_seek_set.h>", "private", "<fcntl.h>", "public"] },
|
||||||
|
{ include: ["<sys/_types/_mbstate_t.h>", "private", "<wchar.h>", "public"] },
|
||||||
|
{ include: ["<iosfwd>", "private", "<string>", "public"] },
|
||||||
|
{ include: ["<sys/_types/_s_ifmt.h>", "private", "<sys/types.h>", "public"] },
|
||||||
|
{ include: ["<sys/_types/_size_t.h>", "private", "<sys/types.h>", "public"] },
|
||||||
|
{ include: ["<sys/_types/_size_t.h>", "private", "<stdlib.h>", "public"] },
|
||||||
|
{ include: ["<sys/_types/_mode_t.h>", "private", "<sys/types.h>", "public"] },
|
||||||
|
{ include: ["<sys/_types/_pid_t.h>", "private", "<sys/types.h>", "public"] },
|
||||||
|
{ include: ["<sys/_types/_fd_def.h>", "private", "<sys/types.h>", "public"] },
|
||||||
|
{ include: ["<sys/_types/_fd_isset.h>", "private", "<sys/types.h>", "public"] },
|
||||||
|
{ include: ["<sys/_types/_fd_set.h>", "private", "<sys/types.h>", "public"] },
|
||||||
|
{ include: ["<sys/_types/_fd_zero.h>", "private", "<sys/types.h>", "public"] },
|
||||||
|
{ include: ["<sys/_types/_timeval.h>", "private", "<sys/types.h>", "public"] },
|
||||||
|
{ include: ["<sys/_types/_uid_t.h>", "private", "<sys/types.h>", "public"] },
|
||||||
|
{ include: ["<_types/_intmax_t.h>", "private", "<sys/types.h>", "public"] },
|
||||||
|
{ include: ["<_types/_uintmax_t.h>", "private", "<sys/types.h>", "public"] },
|
||||||
|
{ include: ["<_types/_uint8_t.h>", "private", "<sys/types.h>", "public"] },
|
||||||
|
{ include: ["<sys/_types/_int32_t.h>", "private", "<sys/types.h>", "public"] },
|
||||||
|
{ include: ["<_types/_uint64_t.h>", "private", "<sys/types.h>", "public"] },
|
||||||
|
{ include: ["<sys/_types/_uintptr_t.h>", "private", "<sys/types.h>", "public"] },
|
||||||
|
{ include: ["<sys/_types/_dev_t.h>", "private", "<sys/types.h>", "public"] },
|
||||||
|
{ include: ["<sys/_types/_ino_t.h>", "private", "<sys/types.h>", "public"] },
|
||||||
|
{ include: ["<sys/_types/_va_list.h>", "private", "<stdio.h>", "public"] },
|
||||||
|
{ include: ["<__functional_base>", "private", "<memory>", "public"] },
|
||||||
|
{ include: ["<__functional_base>", "private", "<vector>", "public"] },
|
||||||
|
{ include: ["<__functional_base>", "private", "<string>", "public"] },
|
||||||
|
{ include: ["<__tree>", "private", "<map>", "public"] },
|
||||||
|
{ include: ["<__tree>", "private", "<set>", "public"] },
|
||||||
|
{ include: ["<_types/_uint32_t.h>", "private", "<sys/types.h>", "public"] },
|
||||||
|
{ include: ["<sys/_types/_va_list.h>", "private", "<sys/types.h>", "public"] },
|
||||||
|
{ include: ["<sys/_types/_sigset_t.h>", "private", "<signal.h>", "public"] },
|
||||||
|
{ include: ["<sys/signal.h>", "private", "<signal.h>", "public"] },
|
||||||
|
{ include: ["<strings.h>", "private", "<string.h>", "public"] },
|
||||||
|
{ include: ["<sys/termios.h>", "private", "<termios.h>", "public"] },
|
||||||
|
{ include: ["<sys/ttycom.h>", "private", "<termios.h>", "public"] },
|
||||||
|
{ include: ["<sys/syslimits.h>", "private", "<limits.h>", "public"] },
|
||||||
|
{ include: ["<i386/limits.h>", "private", "<limits.h>", "public"] },
|
||||||
|
{ include: ["<sys/_types/_wint_t.h>", "private", "<stddef.h>", "public"] },
|
||||||
|
{ include: ["<sys/_select.h>", "private", "<select.h>", "public"] },
|
||||||
|
{ include: ["<sys/cdefs.h>", "private", "<unistd.h>", "public"] },
|
||||||
|
{ include: ["<istream>", "private", "<iostream>", "public"] },
|
||||||
|
{ include: ["<sys/_endian.h>", "private", "<netinet/in.h>", "public"] },
|
||||||
|
{ include: ["<sys/_types/_timespec.h>", "private", "<time.h>", "public"] },
|
||||||
|
{ include: ["<sys/spawn.h>", "private", "<spawn.h>", "public"] },
|
||||||
|
{ include: ["<sys/dirent.h>", "private", "<dirent.h>", "public"] },
|
||||||
|
# { include: ["<>", "private", "<>", "public"] },
|
||||||
|
|
||||||
|
{ symbol: ["NULL", "private", "<stddef.h>", "public"] },
|
||||||
|
{ symbol: ["NULL", "private", "<stdlib.h>", "public"] },
|
||||||
|
{ symbol: ["NULL", "private", "<stdio.h>", "public"] },
|
||||||
|
{ symbol: ["NULL", "private", "<unistd.h>", "public"] },
|
||||||
|
{ symbol: ["off_t", "private", "<unistd.h>", "public"] },
|
||||||
|
{ symbol: ["size_t", "private", "<unistd.h>", "public"] },
|
||||||
|
{ symbol: ["size_t", "private", "<stddef.h>", "public"] },
|
||||||
|
{ symbol: ["size_t", "private", "<stdlib.h>", "public"] },
|
||||||
|
{ symbol: ["off_t", "private", "<sys/types.h>", "public"] },
|
||||||
|
{ symbol: ["size_t", "private", "<sys/types.h>", "public"] },
|
||||||
|
{ symbol: ["ssize_t", "private", "<sys/types.h>", "public"] },
|
||||||
|
{ symbol: ["intptr_t", "private", "<unistd.h>", "public"] },
|
||||||
|
{ symbol: ["ssize_t", "private", "<unistd.h>", "public"] },
|
||||||
|
{ symbol: ["gid_t", "private", "<unistd.h>", "public"] },
|
||||||
|
{ symbol: ["uid_t", "private", "<unistd.h>", "public"] },
|
||||||
|
{ symbol: ["pid_t", "private", "<unistd.h>", "public"] },
|
||||||
|
{ symbol: ["pid_t", "private", "<sys/types.h>", "public"] },
|
||||||
|
{ symbol: ["uid_t", "private", "<sys/types.h>", "public"] },
|
||||||
|
{ symbol: ["gid_t", "private", "<sys/types.h>", "public"] },
|
||||||
|
{ symbol: ["uint32_t", "private", "<sys/types.h>", "public"] },
|
||||||
|
{ symbol: ["uint32_t", "private", "<stdint.h>", "public"] },
|
||||||
|
{ symbol: ["intptr_t", "private", "<stdint.h>", "public"] },
|
||||||
|
{ symbol: ["size_t", "private", "<stdint.h>", "public"] },
|
||||||
|
{ symbol: ["tparm", "private", "<ncurses.h>", "public"] },
|
||||||
|
{ symbol: ["ERR", "private", "<ncurses.h>", "public"] },
|
||||||
|
{ symbol: ["select", "private", "<sys/select.h>", "public"] },
|
||||||
|
{ symbol: ["_LIBCPP_VERSION", "private", "<stddef.h>", "public"] },
|
||||||
|
{ symbol: ["_LIBCPP_VERSION", "private", "<unistd.h>", "public"] },
|
||||||
|
{ symbol: ["MB_CUR_MAX", "private", "<xlocale.h>", "public"] },
|
||||||
|
{ symbol: ["MB_CUR_MAX", "private", "<stdlib.h>", "public"] },
|
||||||
|
]
|
|
@ -7,6 +7,8 @@ set cppchecks warning,performance,portability,information,missingInclude
|
||||||
set cppcheck_args
|
set cppcheck_args
|
||||||
set c_files
|
set c_files
|
||||||
set all no
|
set all no
|
||||||
|
set kernel_name (uname -s)
|
||||||
|
set machine_type (uname -m)
|
||||||
|
|
||||||
set -gx CXX $argv[1]
|
set -gx CXX $argv[1]
|
||||||
set -e argv[1]
|
set -e argv[1]
|
||||||
|
@ -17,15 +19,27 @@ if test "$argv[1]" = "--all"
|
||||||
set -e argv[1]
|
set -e argv[1]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if test $kernel_name = Linux
|
||||||
|
# This is an awful hack. However, the include-what-you-use program spews lots of errors like
|
||||||
|
# /usr/include/unistd.h:226:10: fatal error: 'stddef.h' file not found
|
||||||
|
# if we don't explicitly tell it where to find the system headers on Linux. See
|
||||||
|
# http://stackoverflow.com/questions/19642590/libtooling-cant-find-stddef-h-nor-other-headers/
|
||||||
|
set -l sys_includes (eval $CXX -v -c src/builtin.cpp 2>&1 | \
|
||||||
|
sed -n -e '/^#include <...> search/,/^End of search list/s/^ *//p')[2..-2]
|
||||||
|
set -x CPLUS_INCLUDE_PATH (string join ':' $sys_includes)
|
||||||
|
end
|
||||||
|
|
||||||
# We only want -D and -I options to be passed thru to cppcheck.
|
# We only want -D and -I options to be passed thru to cppcheck.
|
||||||
for arg in $argv
|
for arg in $argv
|
||||||
if string match -q -- '-D*' $arg
|
if string match -q -- '-D*' $arg
|
||||||
set cppcheck_args $cppcheck_args $arg
|
set cppcheck_args $cppcheck_args $arg
|
||||||
else if string match -q -- '-I*' $arg
|
else if string match -q -- '-I*' $arg
|
||||||
set cppcheck_args $cppcheck_args $arg
|
set cppcheck_args $cppcheck_args $arg
|
||||||
|
else if string match -q -- '-iquote*' $arg
|
||||||
|
set cppcheck_args $cppcheck_args $arg
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if test (uname -m) = "x86_64"
|
if test "$machine_type" = "x86_64"
|
||||||
set cppcheck_args -D__x86_64__ -D__LP64__ $cppcheck_args
|
set cppcheck_args -D__x86_64__ -D__LP64__ $cppcheck_args
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -37,7 +51,7 @@ else
|
||||||
set files (git status --porcelain --short --untracked-files=all | sed -e 's/^ *[^ ]* *//')
|
set files (git status --porcelain --short --untracked-files=all | sed -e 's/^ *[^ ]* *//')
|
||||||
if not set -q files[1]
|
if not set -q files[1]
|
||||||
# No pending changes so lint the files in the most recent commit.
|
# No pending changes so lint the files in the most recent commit.
|
||||||
set files (git show --word-diff=porcelain --name-only --pretty=oneline head)[2..-1]
|
set files (git show --word-diff=porcelain --name-only --pretty=oneline)[2..-1]
|
||||||
end
|
end
|
||||||
|
|
||||||
# Extract just the C/C++ files.
|
# Extract just the C/C++ files.
|
||||||
|
@ -46,6 +60,26 @@ end
|
||||||
|
|
||||||
# We now have a list of files to check so run the linters.
|
# We now have a list of files to check so run the linters.
|
||||||
if set -q c_files[1]
|
if set -q c_files[1]
|
||||||
|
if type -q iwyu
|
||||||
|
# The stderr to stdout redirection is because cppcheck, incorrectly IMHO, writes its
|
||||||
|
# diagnostic messages to stderr. Anyone running this who wants to capture its output will
|
||||||
|
# expect those messages to be written to stdout.
|
||||||
|
for c_file in $c_files
|
||||||
|
echo
|
||||||
|
echo ========================================
|
||||||
|
echo Running IWYU on $c_file
|
||||||
|
echo ========================================
|
||||||
|
switch $kernel_name
|
||||||
|
case Darwin
|
||||||
|
include-what-you-use -Xiwyu --no_default_mappings -Xiwyu --mapping_file=build_tools/iwyu.osx.imp $cppcheck_args $c_file 2>&1
|
||||||
|
case Linux
|
||||||
|
include-what-you-use -Xiwyu --mapping_file=build_tools/iwyu.linux.imp $cppcheck_args $c_file 2>&1
|
||||||
|
case '*' # hope for the best
|
||||||
|
include-what-you-use $cppcheck_args $c_file 2>&1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
if type -q cppcheck
|
if type -q cppcheck
|
||||||
echo
|
echo
|
||||||
echo ========================================
|
echo ========================================
|
||||||
|
@ -54,7 +88,7 @@ if set -q c_files[1]
|
||||||
# The stderr to stdout redirection is because cppcheck, incorrectly IMHO, writes its
|
# The stderr to stdout redirection is because cppcheck, incorrectly IMHO, writes its
|
||||||
# diagnostic messages to stderr. Anyone running this who wants to capture its output will
|
# diagnostic messages to stderr. Anyone running this who wants to capture its output will
|
||||||
# expect those messages to be written to stdout.
|
# expect those messages to be written to stdout.
|
||||||
cppcheck -q --verbose --std=posix --std=c11 --language=c++ --template "[{file}:{line}]: {severity} ({id}): {message}" --suppress=missingIncludeSystem --inline-suppr --enable=$cppchecks $cppcheck_args $c_files 2>& 1
|
cppcheck -q --verbose --std=posix --std=c11 --language=c++ --template "[{file}:{line}]: {severity} ({id}): {message}" --suppress=missingIncludeSystem --inline-suppr --enable=$cppchecks $cppcheck_args $c_files 2>&1
|
||||||
end
|
end
|
||||||
|
|
||||||
if type -q oclint
|
if type -q oclint
|
||||||
|
@ -65,25 +99,25 @@ if set -q c_files[1]
|
||||||
# The stderr to stdout redirection is because oclint, incorrectly writes its final summary
|
# The stderr to stdout redirection is because oclint, incorrectly writes its final summary
|
||||||
# counts of the errors detected to stderr. Anyone running this who wants to capture its
|
# counts of the errors detected to stderr. Anyone running this who wants to capture its
|
||||||
# output will expect those messages to be written to stdout.
|
# output will expect those messages to be written to stdout.
|
||||||
if test (uname -s) = "Darwin"
|
if test "$kernel_name" = "Darwin"
|
||||||
if not test -f compile_commands.json
|
if not test -f compile_commands.json
|
||||||
xcodebuild > xcodebuild.log
|
xcodebuild >xcodebuild.log
|
||||||
oclint-xcodebuild xcodebuild.log > /dev/null
|
oclint-xcodebuild xcodebuild.log >/dev/null
|
||||||
end
|
end
|
||||||
if test $all = yes
|
if test $all = yes
|
||||||
oclint-json-compilation-database -e '/pcre2-10.21/' -- -enable-global-analysis 2>& 1
|
oclint-json-compilation-database -e '/pcre2-10.21/' -- -enable-global-analysis 2>&1
|
||||||
else
|
else
|
||||||
set i_files
|
set i_files
|
||||||
for f in $c_files
|
for f in $c_files
|
||||||
set i_files $i_files -i $f
|
set i_files $i_files -i $f
|
||||||
end
|
end
|
||||||
echo oclint-json-compilation-database -e '/pcre2-10.21/' $i_files
|
echo oclint-json-compilation-database -e '/pcre2-10.21/' $i_files
|
||||||
oclint-json-compilation-database -e '/pcre2-10.21/' $i_files 2>& 1
|
oclint-json-compilation-database -e '/pcre2-10.21/' $i_files 2>&1
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
# Presumably we're on Linux or other platform not requiring special
|
# Presumably we're on Linux or other platform not requiring special
|
||||||
# handling for oclint to work.
|
# handling for oclint to work.
|
||||||
oclint $c_files -- $argv 2>& 1
|
oclint $c_files -- $argv 2>&1
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
// The classes responsible for autoloading functions and completions.
|
// The classes responsible for autoloading functions and completions.
|
||||||
#include "autoload.h"
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
@ -9,12 +8,17 @@
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
#include <pthread.h>
|
||||||
|
#include <stddef.h>
|
||||||
|
#include <set>
|
||||||
|
#include <time.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
|
#include "autoload.h"
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "config.h" // IWYU pragma: keep
|
|
||||||
#include "env.h"
|
#include "env.h"
|
||||||
#include "exec.h"
|
#include "exec.h"
|
||||||
#include "signal.h" // IWYU pragma: keep - needed for CHECK_BLOCK
|
#include "wutil.h" // IWYU pragma: keep
|
||||||
#include "wutil.h"
|
|
||||||
|
|
||||||
// The time before we'll recheck an autoloaded file.
|
// The time before we'll recheck an autoloaded file.
|
||||||
static const int kAutoloadStalenessInterval = 15;
|
static const int kAutoloadStalenessInterval = 15;
|
||||||
|
|
|
@ -6,6 +6,8 @@
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <set>
|
#include <set>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "lru.h"
|
#include "lru.h"
|
||||||
|
|
||||||
|
|
|
@ -15,12 +15,10 @@
|
||||||
// Check the other builtin manuals for proper syntax.
|
// Check the other builtin manuals for proper syntax.
|
||||||
//
|
//
|
||||||
// 4). Use 'git add doc_src/NAME.txt' to start tracking changes to the documentation file.
|
// 4). Use 'git add doc_src/NAME.txt' to start tracking changes to the documentation file.
|
||||||
#include "config.h" // IWYU pragma: keep
|
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <signal.h>
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
@ -31,12 +29,13 @@
|
||||||
#include <wctype.h>
|
#include <wctype.h>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <map>
|
#include <map>
|
||||||
#include <stack>
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
|
#include <limits.h>
|
||||||
|
#include <memory> // IWYU pragma: keep
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "fallback.h" // IWYU pragma: keep
|
#include "fallback.h" // IWYU pragma: keep
|
||||||
|
|
||||||
#include "builtin.h"
|
#include "builtin.h"
|
||||||
#include "complete.h"
|
#include "complete.h"
|
||||||
#include "env.h"
|
#include "env.h"
|
||||||
|
@ -49,7 +48,6 @@
|
||||||
#include "input.h"
|
#include "input.h"
|
||||||
#include "intern.h"
|
#include "intern.h"
|
||||||
#include "parse_constants.h"
|
#include "parse_constants.h"
|
||||||
#include "parse_tree.h"
|
|
||||||
#include "parse_util.h"
|
#include "parse_util.h"
|
||||||
#include "parser.h"
|
#include "parser.h"
|
||||||
#include "parser_keywords.h"
|
#include "parser_keywords.h"
|
||||||
|
@ -61,6 +59,8 @@
|
||||||
#include "wcstringutil.h"
|
#include "wcstringutil.h"
|
||||||
#include "wgetopt.h"
|
#include "wgetopt.h"
|
||||||
#include "wutil.h"
|
#include "wutil.h"
|
||||||
|
#include "common.h"
|
||||||
|
#include "io.h"
|
||||||
|
|
||||||
// The default prompt for the read command.
|
// The default prompt for the read command.
|
||||||
#define DEFAULT_READ_PROMPT L"set_color green; echo -n read; set_color normal; echo -n \"> \""
|
#define DEFAULT_READ_PROMPT L"set_color green; echo -n read; set_color normal; echo -n \"> \""
|
||||||
|
@ -103,7 +103,7 @@ int builtin_count_args(const wchar_t *const *argv) {
|
||||||
|
|
||||||
/// This function works like wperror, but it prints its result into the streams.err string instead
|
/// This function works like wperror, but it prints its result into the streams.err string instead
|
||||||
/// to stderr. Used by the builtin commands.
|
/// to stderr. Used by the builtin commands.
|
||||||
static void builtin_wperror(const wchar_t *s, io_streams_t &streams) {
|
void builtin_wperror(const wchar_t *s, io_streams_t &streams) {
|
||||||
char *err = strerror(errno);
|
char *err = strerror(errno);
|
||||||
if (s != NULL) {
|
if (s != NULL) {
|
||||||
streams.err.append(s);
|
streams.err.append(s);
|
||||||
|
@ -228,15 +228,15 @@ void builtin_print_help(parser_t &parser, io_streams_t &streams, const wchar_t *
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Perform error reporting for encounter with unknown option.
|
/// Perform error reporting for encounter with unknown option.
|
||||||
static void builtin_unknown_option(parser_t &parser, io_streams_t &streams, const wchar_t *cmd,
|
void builtin_unknown_option(parser_t &parser, io_streams_t &streams, const wchar_t *cmd,
|
||||||
const wchar_t *opt) {
|
const wchar_t *opt) {
|
||||||
streams.err.append_format(BUILTIN_ERR_UNKNOWN, cmd, opt);
|
streams.err.append_format(BUILTIN_ERR_UNKNOWN, cmd, opt);
|
||||||
builtin_print_help(parser, streams, cmd, streams.err);
|
builtin_print_help(parser, streams, cmd, streams.err);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Perform error reporting for encounter with missing argument.
|
/// Perform error reporting for encounter with missing argument.
|
||||||
static void builtin_missing_argument(parser_t &parser, io_streams_t &streams, const wchar_t *cmd,
|
void builtin_missing_argument(parser_t &parser, io_streams_t &streams, const wchar_t *cmd,
|
||||||
const wchar_t *opt) {
|
const wchar_t *opt) {
|
||||||
streams.err.append_format(BUILTIN_ERR_MISSING, cmd, opt);
|
streams.err.append_format(BUILTIN_ERR_MISSING, cmd, opt);
|
||||||
builtin_print_help(parser, streams, cmd, streams.err);
|
builtin_print_help(parser, streams, cmd, streams.err);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,14 +2,15 @@
|
||||||
#ifndef FISH_BUILTIN_H
|
#ifndef FISH_BUILTIN_H
|
||||||
#define FISH_BUILTIN_H
|
#define FISH_BUILTIN_H
|
||||||
|
|
||||||
#include <stddef.h> // for size_t
|
#include <stddef.h>
|
||||||
#include <vector> // for vector
|
#include <vector>
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "io.h"
|
|
||||||
|
|
||||||
class completion_t;
|
class completion_t;
|
||||||
class parser_t;
|
class parser_t;
|
||||||
|
class output_stream_t;
|
||||||
|
struct io_streams_t;
|
||||||
|
|
||||||
enum { COMMAND_NOT_BUILTIN, BUILTIN_REGULAR, BUILTIN_FUNCTION };
|
enum { COMMAND_NOT_BUILTIN, BUILTIN_REGULAR, BUILTIN_FUNCTION };
|
||||||
|
|
||||||
|
@ -97,4 +98,22 @@ wcstring builtin_help_get(parser_t &parser, const wchar_t *cmd);
|
||||||
int define_function(parser_t &parser, io_streams_t &streams, const wcstring_list_t &c_args,
|
int define_function(parser_t &parser, io_streams_t &streams, const wcstring_list_t &c_args,
|
||||||
const wcstring &contents, int definition_line_offset, wcstring *out_err);
|
const wcstring &contents, int definition_line_offset, wcstring *out_err);
|
||||||
|
|
||||||
|
// Print help for the specified builtin. If \c b is sb_err, also print the line information.
|
||||||
|
void builtin_print_help(parser_t &parser, io_streams_t &streams, const wchar_t *cmd,
|
||||||
|
output_stream_t &b);
|
||||||
|
|
||||||
|
// Counts the number of non null pointers in the specified array.
|
||||||
|
int builtin_count_args(const wchar_t *const *argv);
|
||||||
|
|
||||||
|
// Perform error reporting for encounter with unknown option.
|
||||||
|
void builtin_unknown_option(parser_t &parser, io_streams_t &streams, const wchar_t *cmd,
|
||||||
|
const wchar_t *opt);
|
||||||
|
|
||||||
|
// Perform error reporting for encounter with missing argument.
|
||||||
|
void builtin_missing_argument(parser_t &parser, io_streams_t &streams, const wchar_t *cmd,
|
||||||
|
const wchar_t *opt);
|
||||||
|
|
||||||
|
// This function works like wperror, but it prints its result into the streams.err string instead
|
||||||
|
// to stderr. Used by the builtin commands.
|
||||||
|
void builtin_wperror(const wchar_t *s, io_streams_t &streams);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,33 +1,29 @@
|
||||||
/** \file builtin_commandline.c Functions defining the commandline builtin
|
/** \file builtin_commandline.c Functions defining the commandline builtin
|
||||||
|
|
||||||
Functions used for implementing the commandline builtin.
|
Functions used for implementing the commandline builtin.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
|
||||||
#include <wchar.h>
|
#include <wchar.h>
|
||||||
#include <wctype.h>
|
#include <assert.h>
|
||||||
#include <sys/types.h>
|
#include <pthread.h>
|
||||||
#include <termios.h>
|
#include <errno.h>
|
||||||
#include <signal.h>
|
#include <cstring>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "fallback.h"
|
#include "fallback.h" // IWYU pragma: keep
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
|
||||||
#include "wutil.h"
|
|
||||||
#include "builtin.h"
|
#include "builtin.h"
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "wgetopt.h"
|
#include "wgetopt.h"
|
||||||
#include "reader.h"
|
#include "reader.h"
|
||||||
#include "proc.h"
|
#include "proc.h"
|
||||||
#include "parser.h"
|
|
||||||
#include "tokenizer.h"
|
#include "tokenizer.h"
|
||||||
#include "input_common.h"
|
|
||||||
#include "input.h"
|
#include "input.h"
|
||||||
|
|
||||||
#include "parse_util.h"
|
#include "parse_util.h"
|
||||||
|
#include "io.h"
|
||||||
|
#include "wutil.h" // IWYU pragma: keep
|
||||||
|
|
||||||
|
class parser_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Which part of the comandbuffer are we operating on
|
Which part of the comandbuffer are we operating on
|
||||||
|
|
|
@ -1,28 +1,27 @@
|
||||||
/** \file builtin_complete.c Functions defining the complete builtin
|
/** \file builtin_complete.c Functions defining the complete builtin
|
||||||
|
|
||||||
Functions used for implementing the complete builtin.
|
Functions used for implementing the complete builtin.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
|
||||||
#include <wchar.h>
|
#include <wchar.h>
|
||||||
#include <wctype.h>
|
#include <string>
|
||||||
#include <sys/types.h>
|
#include <vector>
|
||||||
#include <termios.h>
|
#include <memory> // IWYU pragma: keep
|
||||||
#include <signal.h>
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "fallback.h"
|
#include "fallback.h" // IWYU pragma: keep
|
||||||
#include "util.h"
|
|
||||||
|
|
||||||
#include "wutil.h"
|
|
||||||
#include "builtin.h"
|
#include "builtin.h"
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "complete.h"
|
#include "complete.h"
|
||||||
#include "wgetopt.h"
|
#include "wgetopt.h"
|
||||||
#include "parser.h"
|
#include "parser.h"
|
||||||
#include "reader.h"
|
#include "reader.h"
|
||||||
|
#include "env.h"
|
||||||
|
#include "io.h"
|
||||||
|
#include "parse_constants.h"
|
||||||
|
#include "proc.h"
|
||||||
|
#include "parse_util.h"
|
||||||
|
#include "wutil.h" // IWYU pragma: keep
|
||||||
|
|
||||||
/*
|
/*
|
||||||
builtin_complete_* are a set of rather silly looping functions that
|
builtin_complete_* are a set of rather silly looping functions that
|
||||||
|
|
|
@ -1,29 +1,23 @@
|
||||||
/** \file builtin_jobs.c
|
/** \file builtin_jobs.c
|
||||||
Functions for executing the jobs builtin.
|
Functions for executing the jobs builtin.
|
||||||
*/
|
*/
|
||||||
#include "config.h"
|
#include "config.h" // IWYU pragma: keep
|
||||||
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <wchar.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <termios.h>
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <sys/types.h>
|
#include <stdbool.h>
|
||||||
#include <sys/stat.h>
|
#ifdef HAVE__PROC_SELF_STAT
|
||||||
#include <string.h>
|
#include <sys/time.h>
|
||||||
#include <wctype.h>
|
#endif
|
||||||
|
|
||||||
#include "fallback.h"
|
|
||||||
#include "util.h"
|
|
||||||
|
|
||||||
|
#include "fallback.h" // IWYU pragma: keep
|
||||||
#include "wutil.h"
|
#include "wutil.h"
|
||||||
#include "builtin.h"
|
#include "builtin.h"
|
||||||
#include "proc.h"
|
#include "proc.h"
|
||||||
#include "parser.h"
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "wgetopt.h"
|
#include "wgetopt.h"
|
||||||
|
#include "io.h"
|
||||||
|
|
||||||
|
class parser_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Print modes for the jobs builtin
|
Print modes for the jobs builtin
|
||||||
|
|
|
@ -49,11 +49,24 @@
|
||||||
|
|
||||||
/* This file has been imported from source code of printf command in GNU Coreutils version 6.9 */
|
/* This file has been imported from source code of printf command in GNU Coreutils version 6.9 */
|
||||||
|
|
||||||
|
#include <errno.h>
|
||||||
|
#include <limits.h>
|
||||||
|
#include <locale.h>
|
||||||
|
#include <wchar.h>
|
||||||
|
#include <wctype.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <inttypes.h>
|
#include <stdarg.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
#include "io.h"
|
||||||
|
#include "wutil.h" // IWYU pragma: keep
|
||||||
|
#include "proc.h"
|
||||||
|
#include "builtin.h"
|
||||||
|
|
||||||
|
class parser_t;
|
||||||
|
|
||||||
struct builtin_printf_state_t
|
struct builtin_printf_state_t
|
||||||
{
|
{
|
||||||
|
|
|
@ -3,28 +3,30 @@
|
||||||
Functions used for implementing the set builtin.
|
Functions used for implementing the set builtin.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
|
||||||
#include <wchar.h>
|
#include <wchar.h>
|
||||||
#include <wctype.h>
|
#include <wctype.h>
|
||||||
#include <sys/types.h>
|
|
||||||
#include <termios.h>
|
|
||||||
#include <signal.h>
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include "fallback.h"
|
#include <sys/stat.h>
|
||||||
#include "util.h"
|
#include <string>
|
||||||
|
#include <memory>
|
||||||
|
#include <errno.h>
|
||||||
|
#include <set>
|
||||||
|
#include <iterator>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "wutil.h"
|
#include "fallback.h" // IWYU pragma: keep
|
||||||
|
#include "wutil.h" // IWYU pragma: keep
|
||||||
#include "builtin.h"
|
#include "builtin.h"
|
||||||
#include "env.h"
|
#include "env.h"
|
||||||
#include "expand.h"
|
#include "expand.h"
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "wgetopt.h"
|
#include "wgetopt.h"
|
||||||
#include "proc.h"
|
#include "proc.h"
|
||||||
#include "parser.h"
|
#include "io.h"
|
||||||
|
|
||||||
|
class parser_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Error message for invalid path operations
|
Error message for invalid path operations
|
||||||
|
|
|
@ -5,10 +5,6 @@ Functions used for implementing the set_color builtin.
|
||||||
*/
|
*/
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
#include "builtin.h"
|
|
||||||
#include "color.h"
|
|
||||||
#include "output.h"
|
|
||||||
|
|
||||||
#if HAVE_NCURSES_H
|
#if HAVE_NCURSES_H
|
||||||
#include <ncurses.h>
|
#include <ncurses.h>
|
||||||
#elif HAVE_NCURSES_CURSES_H
|
#elif HAVE_NCURSES_CURSES_H
|
||||||
|
@ -16,13 +12,29 @@ Functions used for implementing the set_color builtin.
|
||||||
#else
|
#else
|
||||||
#include <curses.h>
|
#include <curses.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if HAVE_TERM_H
|
#if HAVE_TERM_H
|
||||||
#include <term.h>
|
#include <term.h>
|
||||||
#elif HAVE_NCURSES_TERM_H
|
#elif HAVE_NCURSES_TERM_H
|
||||||
#include <ncurses/term.h>
|
#include <ncurses/term.h>
|
||||||
#endif
|
#endif
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <assert.h>
|
||||||
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
#include <memory>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
|
#include "builtin.h"
|
||||||
|
#include "color.h"
|
||||||
|
#include "output.h"
|
||||||
|
#include "wgetopt.h"
|
||||||
|
#include "proc.h"
|
||||||
|
#include "io.h"
|
||||||
|
#include "common.h"
|
||||||
|
#include "wutil.h" // IWYU pragma: keep
|
||||||
|
|
||||||
|
class parser_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Error message for invalid path operations
|
Error message for invalid path operations
|
||||||
|
|
|
@ -1,25 +1,37 @@
|
||||||
/** \file builtin_string.cpp
|
/** \file builtin_string.cpp
|
||||||
Implementation of the string builtin.
|
Implementation of the string builtin.
|
||||||
*/
|
*/
|
||||||
|
#include "config.h"
|
||||||
#include "config.h" // IWYU pragma: keep
|
|
||||||
|
|
||||||
#define PCRE2_CODE_UNIT_WIDTH WCHAR_T_BITS
|
#define PCRE2_CODE_UNIT_WIDTH WCHAR_T_BITS
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#define PCRE2_STATIC
|
#define PCRE2_STATIC
|
||||||
#endif
|
#endif
|
||||||
#include "pcre2.h"
|
#include <iterator>
|
||||||
|
#include <algorithm>
|
||||||
|
#include <assert.h>
|
||||||
|
#include <limits.h>
|
||||||
|
#include <stdarg.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <errno.h>
|
||||||
|
#include <wchar.h>
|
||||||
|
#include <wctype.h>
|
||||||
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
|
#include "pcre2.h"
|
||||||
#include "builtin.h"
|
#include "builtin.h"
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "parser.h"
|
|
||||||
#include "parse_util.h"
|
#include "parse_util.h"
|
||||||
#include "wgetopt.h"
|
#include "wgetopt.h"
|
||||||
#include "wildcard.h"
|
#include "wildcard.h"
|
||||||
#include "wutil.h"
|
#include "fallback.h" // IWYU pragma: keep
|
||||||
#include <iterator>
|
#include "io.h"
|
||||||
#include <algorithm>
|
#include "wutil.h" // IWYU pragma: keep
|
||||||
#include <unistd.h>
|
|
||||||
|
class parser_t;
|
||||||
|
|
||||||
#define MAX_REPLACE_SIZE size_t(1048576) // pcre2_substitute maximum output size in wchar_t
|
#define MAX_REPLACE_SIZE size_t(1048576) // pcre2_substitute maximum output size in wchar_t
|
||||||
#define STRING_ERR_MISSING _(L"%ls: Expected argument\n")
|
#define STRING_ERR_MISSING _(L"%ls: Expected argument\n")
|
||||||
|
|
|
@ -4,17 +4,22 @@ Functions used for implementing the test builtin.
|
||||||
Implemented from scratch (yes, really) by way of IEEE 1003.1 as reference.
|
Implemented from scratch (yes, really) by way of IEEE 1003.1 as reference.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h"
|
|
||||||
#include "common.h"
|
|
||||||
#include "builtin.h"
|
|
||||||
#include "wutil.h"
|
|
||||||
#include "proc.h"
|
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
#include <assert.h>
|
||||||
|
#include <stdarg.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <wchar.h>
|
||||||
|
#include <string>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
|
#include "common.h"
|
||||||
|
#include "builtin.h"
|
||||||
|
#include "wutil.h" // IWYU pragma: keep
|
||||||
|
#include "proc.h"
|
||||||
|
#include "io.h"
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
|
|
|
@ -3,24 +3,19 @@
|
||||||
Functions used for implementing the ulimit builtin.
|
Functions used for implementing the ulimit builtin.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <wchar.h>
|
#include <wchar.h>
|
||||||
#include <wctype.h>
|
|
||||||
#include <sys/time.h>
|
|
||||||
#include <sys/resource.h>
|
#include <sys/resource.h>
|
||||||
#include <unistd.h>
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
#include "fallback.h"
|
#include "fallback.h" // IWYU pragma: keep
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
|
||||||
#include "builtin.h"
|
#include "builtin.h"
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "wgetopt.h"
|
#include "wgetopt.h"
|
||||||
|
#include "io.h"
|
||||||
|
#include "wutil.h" // IWYU pragma: keep
|
||||||
|
|
||||||
|
class parser_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Struct describing a resource limit
|
Struct describing a resource limit
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
// Color class implementation.
|
// Color class implementation.
|
||||||
#include "color.h"
|
|
||||||
#include "fallback.h" // IWYU pragma: keep
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <wchar.h>
|
|
||||||
#include <cstddef>
|
#include "color.h"
|
||||||
|
#include "fallback.h" // IWYU pragma: keep
|
||||||
|
#include "common.h"
|
||||||
|
|
||||||
bool rgb_color_t::try_parse_special(const wcstring &special)
|
bool rgb_color_t::try_parse_special(const wcstring &special)
|
||||||
{
|
{
|
||||||
|
|
|
@ -4,6 +4,8 @@
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
/* 24 bit color */
|
/* 24 bit color */
|
||||||
|
|
|
@ -3,16 +3,12 @@
|
||||||
Various functions, mostly string utilities, that are used by most
|
Various functions, mostly string utilities, that are used by most
|
||||||
parts of fish.
|
parts of fish.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
|
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
#ifdef HAVE_SIGINFO_H
|
#ifdef HAVE_SIGINFO_H
|
||||||
#include <siginfo.h>
|
#include <siginfo.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <termios.h>
|
#include <termios.h>
|
||||||
#include <wchar.h>
|
#include <wchar.h>
|
||||||
|
@ -22,28 +18,26 @@ parts of fish.
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
|
|
||||||
|
|
||||||
#ifdef HAVE_SYS_IOCTL_H
|
#ifdef HAVE_SYS_IOCTL_H
|
||||||
#include <sys/ioctl.h>
|
#include <sys/ioctl.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <wctype.h>
|
#include <wctype.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
|
#include <stddef.h>
|
||||||
#include <locale.h>
|
#include <locale.h>
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
|
||||||
#ifdef HAVE_EXECINFO_H
|
#ifdef HAVE_EXECINFO_H
|
||||||
#include <execinfo.h>
|
#include <execinfo.h>
|
||||||
#endif
|
#endif
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "fallback.h"
|
#include "fallback.h" // IWYU pragma: keep
|
||||||
|
#include "wutil.h" // IWYU pragma: keep
|
||||||
#include "wutil.h"
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "expand.h"
|
#include "expand.h"
|
||||||
#include "wildcard.h"
|
#include "wildcard.h"
|
||||||
|
|
17
src/common.h
17
src/common.h
|
@ -1,29 +1,26 @@
|
||||||
/** \file common.h
|
/** \file common.h
|
||||||
Prototypes for various functions, mostly string utilities, that are used by most parts of fish.
|
Prototypes for various functions, mostly string utilities, that are used by most parts of fish.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef FISH_COMMON_H
|
#ifndef FISH_COMMON_H
|
||||||
/**
|
|
||||||
Header guard
|
|
||||||
*/
|
|
||||||
#define FISH_COMMON_H
|
#define FISH_COMMON_H
|
||||||
|
#include "config.h"
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <wchar.h>
|
#include <wchar.h>
|
||||||
#include <termios.h>
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <pthread.h>
|
#include <pthread.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdarg.h>
|
|
||||||
#include <stddef.h>
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include "config.h"
|
#include <termios.h>
|
||||||
#include "fallback.h"
|
#include <memory>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
|
#include "fallback.h" // IWYU pragma: keep
|
||||||
|
#include "signal.h" // IWYU pragma: keep
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Avoid writing the type name twice in a common "static_cast-initialization".
|
Avoid writing the type name twice in a common "static_cast-initialization".
|
||||||
|
|
|
@ -2,10 +2,7 @@
|
||||||
|
|
||||||
These functions are used for storing and retrieving tab-completion data, as well as for performing tab-completion.
|
These functions are used for storing and retrieving tab-completion data, as well as for performing tab-completion.
|
||||||
*/
|
*/
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <stdlib.h>
|
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#include <wchar.h>
|
#include <wchar.h>
|
||||||
#include <wctype.h>
|
#include <wctype.h>
|
||||||
|
@ -17,10 +14,11 @@
|
||||||
#include <set>
|
#include <set>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
|
#include <memory>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "fallback.h" // IWYU pragma: keep
|
#include "fallback.h" // IWYU pragma: keep
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
|
||||||
#include "wildcard.h"
|
#include "wildcard.h"
|
||||||
#include "proc.h"
|
#include "proc.h"
|
||||||
#include "parser.h"
|
#include "parser.h"
|
||||||
|
@ -32,7 +30,7 @@
|
||||||
#include "expand.h"
|
#include "expand.h"
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "parse_util.h"
|
#include "parse_util.h"
|
||||||
#include "wutil.h"
|
#include "wutil.h" // IWYU pragma: keep
|
||||||
#include "path.h"
|
#include "path.h"
|
||||||
#include "parse_tree.h"
|
#include "parse_tree.h"
|
||||||
#include "iothread.h"
|
#include "iothread.h"
|
||||||
|
|
|
@ -6,16 +6,14 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef FISH_COMPLETE_H
|
#ifndef FISH_COMPLETE_H
|
||||||
|
|
||||||
/**
|
|
||||||
Header guard
|
|
||||||
*/
|
|
||||||
#define FISH_COMPLETE_H
|
#define FISH_COMPLETE_H
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Use all completions
|
* Use all completions
|
||||||
*/
|
*/
|
||||||
|
|
11
src/env.cpp
11
src/env.cpp
|
@ -1,8 +1,6 @@
|
||||||
/** \file env.c
|
/** \file env.c
|
||||||
Functions for setting and getting environment variables.
|
Functions for setting and getting environment variables.
|
||||||
*/
|
*/
|
||||||
#include "config.h" // IWYU pragma: keep
|
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <wchar.h>
|
#include <wchar.h>
|
||||||
#include <locale.h>
|
#include <locale.h>
|
||||||
|
@ -19,10 +17,11 @@
|
||||||
#include <wctype.h>
|
#include <wctype.h>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "fallback.h"
|
#include "fallback.h" // IWYU pragma: keep
|
||||||
|
#include "wutil.h" // IWYU pragma: keep
|
||||||
#include "wutil.h"
|
|
||||||
#include "proc.h"
|
#include "proc.h"
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "env.h"
|
#include "env.h"
|
||||||
|
@ -34,8 +33,8 @@
|
||||||
#include "input.h"
|
#include "input.h"
|
||||||
#include "event.h"
|
#include "event.h"
|
||||||
#include "path.h"
|
#include "path.h"
|
||||||
|
|
||||||
#include "fish_version.h"
|
#include "fish_version.h"
|
||||||
|
#include "input_common.h"
|
||||||
|
|
||||||
/** Value denoting a null string */
|
/** Value denoting a null string */
|
||||||
#define ENV_NULL L"\x1d"
|
#define ENV_NULL L"\x1d"
|
||||||
|
|
|
@ -1,14 +1,15 @@
|
||||||
/** \file env.h
|
/** \file env.h
|
||||||
Prototypes for functions for setting and getting environment variables.
|
Prototypes for functions for setting and getting environment variables.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef FISH_ENV_H
|
#ifndef FISH_ENV_H
|
||||||
#define FISH_ENV_H
|
#define FISH_ENV_H
|
||||||
|
|
||||||
#include <wchar.h>
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <map>
|
#include <map>
|
||||||
|
#include <stddef.h>
|
||||||
|
#include <memory>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
|
|
|
@ -3,46 +3,46 @@
|
||||||
|
|
||||||
The utility library for universal variables. Used both by the
|
The utility library for universal variables. Used both by the
|
||||||
client library and by the daemon.
|
client library and by the daemon.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
#include "env_universal_common.h"
|
|
||||||
|
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <sys/ioctl.h>
|
|
||||||
#include <sys/mman.h>
|
#include <sys/mman.h>
|
||||||
#include <sys/file.h>
|
#include <arpa/inet.h> // IWYU pragma: keep
|
||||||
#include <sys/socket.h>
|
|
||||||
#include <arpa/inet.h> // IWYU pragma: keep - needed for htonl
|
|
||||||
#include <pwd.h>
|
#include <pwd.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <stddef.h>
|
|
||||||
#include <stdint.h>
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <sys/time.h>
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <wchar.h>
|
#include <wchar.h>
|
||||||
#include <wctype.h>
|
#include <wctype.h>
|
||||||
#include <map>
|
#include <string>
|
||||||
#include <utility>
|
#include <stdbool.h>
|
||||||
|
#include <sys/socket.h>
|
||||||
#ifdef HAVE_SYS_SELECT_H
|
#ifdef HAVE_SYS_SELECT_H
|
||||||
#include <sys/select.h>
|
#include <sys/select.h>
|
||||||
#endif
|
#endif
|
||||||
|
#include <map>
|
||||||
|
#include <utility>
|
||||||
|
#include <netinet/in.h>
|
||||||
|
// We need the ioctl.h header so we can check if SIOCGIFHWADDR is defined by it so we know if we're
|
||||||
|
// on a Linux system.
|
||||||
|
#include <sys/ioctl.h> // IWYU pragma: keep
|
||||||
|
// We need the sys/file.h for the flock() declaration on Linux but not OS X.
|
||||||
|
#include <sys/file.h> // IWYU pragma: keep
|
||||||
|
|
||||||
|
#include "env_universal_common.h"
|
||||||
#include "fallback.h" // IWYU pragma: keep
|
#include "fallback.h" // IWYU pragma: keep
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "wutil.h"
|
#include "wutil.h"
|
||||||
#include "utf8.h"
|
#include "utf8.h"
|
||||||
|
#include "env.h"
|
||||||
|
|
||||||
#if __APPLE__
|
#if __APPLE__
|
||||||
#define FISH_NOTIFYD_AVAILABLE 1
|
#define FISH_NOTIFYD_AVAILABLE 1
|
||||||
|
|
|
@ -1,11 +1,13 @@
|
||||||
#ifndef FISH_ENV_UNIVERSAL_COMMON_H
|
#ifndef FISH_ENV_UNIVERSAL_COMMON_H
|
||||||
#define FISH_ENV_UNIVERSAL_COMMON_H
|
#define FISH_ENV_UNIVERSAL_COMMON_H
|
||||||
|
|
||||||
#include <string>
|
|
||||||
#include <set>
|
|
||||||
#include <pthread.h>
|
#include <pthread.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
#include <set>
|
||||||
|
#include <memory>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "wutil.h"
|
#include "wutil.h"
|
||||||
#include "env.h"
|
#include "env.h"
|
||||||
|
|
|
@ -1,18 +1,17 @@
|
||||||
/** \file event.c
|
/** \file event.c
|
||||||
|
|
||||||
Functions for handling event triggers
|
Functions for handling event triggers
|
||||||
|
|
||||||
*/
|
*/
|
||||||
#include "config.h" // IWYU pragma: keep
|
|
||||||
|
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <algorithm>
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <stddef.h>
|
#include <unistd.h>
|
||||||
|
#include <memory>
|
||||||
|
#include <algorithm>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "fallback.h" // IWYU pragma: keep
|
#include "fallback.h" // IWYU pragma: keep
|
||||||
#include "wutil.h" // IWYU pragma: keep - needed for gettext
|
#include "wutil.h" // IWYU pragma: keep
|
||||||
#include "input_common.h"
|
#include "input_common.h"
|
||||||
#include "proc.h"
|
#include "proc.h"
|
||||||
#include "parser.h"
|
#include "parser.h"
|
||||||
|
@ -21,7 +20,6 @@
|
||||||
#include "signal.h"
|
#include "signal.h"
|
||||||
#include "io.h"
|
#include "io.h"
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Number of signals that can be queued before an overflow occurs
|
Number of signals that can be queued before an overflow occurs
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -12,8 +12,9 @@
|
||||||
#ifndef FISH_EVENT_H
|
#ifndef FISH_EVENT_H
|
||||||
#define FISH_EVENT_H
|
#define FISH_EVENT_H
|
||||||
|
|
||||||
#include <ctime>
|
#include <unistd.h>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
|
|
13
src/exec.cpp
13
src/exec.cpp
|
@ -4,8 +4,7 @@
|
||||||
Some of the code in this file is based on code from the Glibc
|
Some of the code in this file is based on code from the Glibc
|
||||||
manual, though the changes performed have been massive.
|
manual, though the changes performed have been massive.
|
||||||
*/
|
*/
|
||||||
|
#include "config.h"
|
||||||
#include "config.h" // IWYU pragma: keep
|
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
@ -24,17 +23,16 @@
|
||||||
#include <wctype.h>
|
#include <wctype.h>
|
||||||
#include <map>
|
#include <map>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <memory> // IWYU pragma: keep - suggests <tr1/memory> instead
|
#include <memory>
|
||||||
#include <utility>
|
|
||||||
|
|
||||||
#ifdef HAVE_SIGINFO_H
|
#ifdef HAVE_SIGINFO_H
|
||||||
#include <siginfo.h>
|
#include <siginfo.h>
|
||||||
#endif
|
#endif
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "fallback.h" // IWYU pragma: keep
|
#include "fallback.h" // IWYU pragma: keep
|
||||||
#include "postfork.h"
|
#include "postfork.h"
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "wutil.h"
|
#include "wutil.h" // IWYU pragma: keep
|
||||||
#include "proc.h"
|
#include "proc.h"
|
||||||
#include "exec.h"
|
#include "exec.h"
|
||||||
#include "parser.h"
|
#include "parser.h"
|
||||||
|
@ -42,7 +40,6 @@
|
||||||
#include "function.h"
|
#include "function.h"
|
||||||
#include "env.h"
|
#include "env.h"
|
||||||
#include "signal.h"
|
#include "signal.h"
|
||||||
#include "parse_util.h"
|
|
||||||
#include "io.h"
|
#include "io.h"
|
||||||
#include "parse_tree.h"
|
#include "parse_tree.h"
|
||||||
#include "reader.h"
|
#include "reader.h"
|
||||||
|
|
|
@ -3,13 +3,11 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef FISH_EXEC_H
|
#ifndef FISH_EXEC_H
|
||||||
/**
|
|
||||||
Header guard
|
|
||||||
*/
|
|
||||||
#define FISH_EXEC_H
|
#define FISH_EXEC_H
|
||||||
|
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
|
|
|
@ -4,11 +4,10 @@ String expansion functions. These functions perform several kinds of
|
||||||
parameter expansion.
|
parameter expansion.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
// IWYU pragma: no_include <cstddef>
|
||||||
#include "config.h" // IWYU pragma: keep
|
#include "config.h"
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#include <wchar.h>
|
#include <wchar.h>
|
||||||
|
@ -16,38 +15,43 @@ parameter expansion.
|
||||||
#include <wctype.h>
|
#include <wctype.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <pwd.h>
|
#include <pwd.h>
|
||||||
#include <dirent.h>
|
|
||||||
#include <sys/stat.h>
|
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#ifdef HAVE_SYS_SYSCTL_H
|
#ifdef HAVE_SYS_SYSCTL_H
|
||||||
#include <sys/sysctl.h> // IWYU pragma: keep - needed for KERN_PROCARGS2
|
#include <sys/sysctl.h> // IWYU pragma: keep
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#ifdef SunOS
|
#ifdef SunOS
|
||||||
#include <procfs.h>
|
#include <procfs.h>
|
||||||
#endif
|
#endif
|
||||||
|
#include <memory> // IWYU pragma: keep
|
||||||
|
#include <stdio.h>
|
||||||
|
#if __APPLE__
|
||||||
|
#include <sys/proc.h>
|
||||||
|
#else
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#include <dirent.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "fallback.h" // IWYU pragma: keep
|
#include "fallback.h" // IWYU pragma: keep
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "wutil.h"
|
#include "wutil.h" // IWYU pragma: keep
|
||||||
#include "env.h"
|
#include "env.h"
|
||||||
#include "proc.h"
|
#include "proc.h"
|
||||||
#include "parser.h"
|
|
||||||
#include "path.h"
|
#include "path.h"
|
||||||
#include "expand.h"
|
#include "expand.h"
|
||||||
#include "wildcard.h"
|
#include "wildcard.h"
|
||||||
#include "exec.h"
|
#include "exec.h"
|
||||||
#include "tokenizer.h"
|
|
||||||
#include "complete.h"
|
#include "complete.h"
|
||||||
#include "iothread.h"
|
#include "iothread.h"
|
||||||
|
|
||||||
#include "parse_util.h"
|
#include "parse_util.h"
|
||||||
|
#include "parse_constants.h"
|
||||||
|
#ifdef KERN_PROCARGS2
|
||||||
|
#else
|
||||||
|
#include "tokenizer.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Description for child process
|
Description for child process
|
||||||
|
|
14
src/expand.h
14
src/expand.h
|
@ -6,20 +6,16 @@
|
||||||
benefit from using a more clever memory allocation scheme, perhaps
|
benefit from using a more clever memory allocation scheme, perhaps
|
||||||
an evil combination of talloc, string buffers and reference
|
an evil combination of talloc, string buffers and reference
|
||||||
counting.
|
counting.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef FISH_EXPAND_H
|
#ifndef FISH_EXPAND_H
|
||||||
/**
|
|
||||||
Header guard
|
|
||||||
*/
|
|
||||||
#define FISH_EXPAND_H
|
#define FISH_EXPAND_H
|
||||||
|
|
||||||
#include "config.h" // for __warn_unused
|
#include "config.h"
|
||||||
|
|
||||||
#include <wchar.h>
|
#include <string>
|
||||||
#include <string> // for string
|
#include <vector>
|
||||||
#include <vector> // for vector
|
#include <stddef.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "parse_constants.h"
|
#include "parse_constants.h"
|
||||||
|
|
|
@ -7,46 +7,44 @@
|
||||||
incomplete. lrand28_r internally uses the regular (bad) rand_r
|
incomplete. lrand28_r internally uses the regular (bad) rand_r
|
||||||
function, the gettext function doesn't actually do anything, etc.
|
function, the gettext function doesn't actually do anything, etc.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
|
// IWYU likes to recommend adding term.h when we want ncurses.h.
|
||||||
|
// IWYU pragma: no_include term.h
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h> // IWYU pragma: keep
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h> // IWYU pragma: keep
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h> // IWYU pragma: keep
|
||||||
#include <errno.h>
|
#include <errno.h> // IWYU pragma: keep
|
||||||
#include <fcntl.h>
|
#include <fcntl.h> // IWYU pragma: keep
|
||||||
#include <wchar.h>
|
#include <wchar.h>
|
||||||
#include <wctype.h>
|
#include <wctype.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <dirent.h>
|
#include <dirent.h> // IWYU pragma: keep
|
||||||
#include <stdarg.h>
|
#include <stdarg.h> // IWYU pragma: keep
|
||||||
#include <limits.h>
|
#include <limits.h> // IWYU pragma: keep
|
||||||
#include <assert.h>
|
#include <assert.h> // IWYU pragma: keep
|
||||||
|
|
||||||
#if HAVE_GETTEXT
|
#if HAVE_GETTEXT
|
||||||
#include <libintl.h>
|
#include <libintl.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if HAVE_NCURSES_H
|
#if HAVE_NCURSES_H
|
||||||
#include <ncurses.h>
|
#include <ncurses.h> // IWYU pragma: keep
|
||||||
#elif HAVE_NCURSES_CURSES_H
|
#elif HAVE_NCURSES_CURSES_H
|
||||||
#include <ncurses/curses.h>
|
#include <ncurses/curses.h>
|
||||||
#else
|
#else
|
||||||
#include <curses.h>
|
#include <curses.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if HAVE_TERM_H
|
#if HAVE_TERM_H
|
||||||
#include <term.h>
|
#include <term.h> // IWYU pragma: keep
|
||||||
#elif HAVE_NCURSES_TERM_H
|
#elif HAVE_NCURSES_TERM_H
|
||||||
#include <ncurses/term.h>
|
#include <ncurses/term.h>
|
||||||
#endif
|
#endif
|
||||||
|
#include <signal.h> // IWYU pragma: keep
|
||||||
|
#include <wchar.h> // IWYU pragma: keep
|
||||||
|
|
||||||
#include "fallback.h"
|
#include "fallback.h" // IWYU pragma: keep
|
||||||
#include "util.h"
|
#include "util.h" // IWYU pragma: keep
|
||||||
|
|
||||||
|
|
||||||
#ifndef HAVE___ENVIRON
|
#ifndef HAVE___ENVIRON
|
||||||
|
|
||||||
|
@ -1339,8 +1337,6 @@ int fish_wcswidth(const wchar_t *str, size_t n)
|
||||||
* Latest version: http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c
|
* Latest version: http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <wchar.h>
|
|
||||||
|
|
||||||
struct interval
|
struct interval
|
||||||
{
|
{
|
||||||
int first;
|
int first;
|
||||||
|
|
|
@ -1,16 +1,23 @@
|
||||||
|
|
||||||
#ifndef FISH_FALLBACK_H
|
#ifndef FISH_FALLBACK_H
|
||||||
#define FISH_FALLBACK_H
|
#define FISH_FALLBACK_H
|
||||||
|
|
||||||
#include <stdio.h>
|
#include "config.h"
|
||||||
|
|
||||||
|
// IWYU likes to recommend adding <term.h> when we want <ncurses.h>. If we add <term.h> it breaks
|
||||||
|
// compiling several modules that include this header because they use symbols which are defined as
|
||||||
|
// macros in <term.h>.
|
||||||
|
// IWYU pragma: no_include <term.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdarg.h>
|
|
||||||
#include <wctype.h>
|
|
||||||
#include <wchar.h>
|
|
||||||
#include <limits.h>
|
|
||||||
#include <sys/time.h>
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
// The following include must be kept despite what IWYU says. That's because of the interaction
|
||||||
|
// between the weak linking of `wcsdup` and `wcscasecmp` via `#define`s below and the declarations
|
||||||
|
// in <wchar.h>. At least on OS X if we don't do this we get compilation errors do to the macro
|
||||||
|
// substitution if wchar.h is included after this header.
|
||||||
|
#include <wchar.h> // IWYU pragma: keep
|
||||||
|
#if HAVE_NCURSES_H
|
||||||
|
#include <ncurses.h> // IWYU pragma: keep
|
||||||
|
#endif
|
||||||
|
|
||||||
/** fish's internal versions of wcwidth and wcswidth, which can use an internal implementation if the system one is busted. */
|
/** fish's internal versions of wcwidth and wcswidth, which can use an internal implementation if the system one is busted. */
|
||||||
int fish_wcwidth(wchar_t wc);
|
int fish_wcwidth(wchar_t wc);
|
||||||
|
|
10
src/fish.cpp
10
src/fish.cpp
|
@ -15,17 +15,14 @@ along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/** \file fish.c
|
/** \file fish.c
|
||||||
The main loop of <tt>fish</tt>.
|
The main loop of <tt>fish</tt>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <getopt.h>
|
#include <getopt.h>
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
#include <stddef.h>
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
@ -37,22 +34,23 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <sys/socket.h> // IWYU pragma: keep - suggests internal header
|
#include <sys/socket.h> // IWYU pragma: keep
|
||||||
#include <sys/un.h>
|
#include <sys/un.h>
|
||||||
#include <pwd.h>
|
#include <pwd.h>
|
||||||
#include <locale.h>
|
#include <locale.h>
|
||||||
|
#include <memory>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "fallback.h" // IWYU pragma: keep
|
#include "fallback.h" // IWYU pragma: keep
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "reader.h"
|
#include "reader.h"
|
||||||
#include "builtin.h"
|
#include "builtin.h"
|
||||||
#include "function.h"
|
#include "function.h"
|
||||||
#include "wutil.h"
|
#include "wutil.h" // IWYU pragma: keep
|
||||||
#include "env.h"
|
#include "env.h"
|
||||||
#include "proc.h"
|
#include "proc.h"
|
||||||
#include "parser.h"
|
#include "parser.h"
|
||||||
#include "expand.h"
|
#include "expand.h"
|
||||||
#include "intern.h"
|
|
||||||
#include "event.h"
|
#include "event.h"
|
||||||
#include "history.h"
|
#include "history.h"
|
||||||
#include "path.h"
|
#include "path.h"
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
// The fish_indent program.
|
||||||
/*
|
/*
|
||||||
Copyright (C) 2014 ridiculous_fish
|
Copyright (C) 2014 ridiculous_fish
|
||||||
|
|
||||||
|
@ -14,10 +15,6 @@ You should have received a copy of the GNU General Public License
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// The fish_indent proegram.
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
#include <getopt.h>
|
#include <getopt.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
@ -27,11 +24,14 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
#include <locale.h>
|
#include <locale.h>
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <memory>
|
||||||
|
#include <wctype.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "color.h"
|
#include "color.h"
|
||||||
#include "highlight.h"
|
#include "highlight.h"
|
||||||
#include "parse_constants.h"
|
#include "parse_constants.h"
|
||||||
#include "wutil.h"
|
#include "wutil.h" // IWYU pragma: keep
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "output.h"
|
#include "output.h"
|
||||||
#include "env.h"
|
#include "env.h"
|
||||||
|
|
|
@ -1,21 +1,14 @@
|
||||||
/** \file fish_tests.c
|
/** \file fish_tests.c
|
||||||
Various bug and feature tests. Compiled and run by make test.
|
Various bug and feature tests. Compiled and run by make test.
|
||||||
*/
|
*/
|
||||||
|
// IWYU pragma: no_include <cstring>
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <wchar.h>
|
#include <wchar.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <errno.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <termios.h>
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/stat.h>
|
|
||||||
#include <sys/wait.h>
|
#include <sys/wait.h>
|
||||||
#include <fcntl.h>
|
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <libgen.h>
|
#include <libgen.h>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
@ -25,31 +18,36 @@
|
||||||
#include <iterator>
|
#include <iterator>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <locale.h>
|
#include <locale.h>
|
||||||
#include <dirent.h>
|
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
#include <assert.h>
|
||||||
|
#include <limits.h>
|
||||||
|
#include <pthread.h>
|
||||||
|
#include <stddef.h>
|
||||||
|
#include <memory>
|
||||||
|
#include <set>
|
||||||
|
#include <vector>
|
||||||
|
#include <wctype.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
#include <sys/select.h>
|
||||||
|
|
||||||
#include "fallback.h"
|
#include "fallback.h" // IWYU pragma: keep
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "proc.h"
|
#include "proc.h"
|
||||||
#include "reader.h"
|
#include "reader.h"
|
||||||
#include "builtin.h"
|
#include "builtin.h"
|
||||||
#include "function.h"
|
#include "function.h"
|
||||||
#include "autoload.h"
|
|
||||||
#include "complete.h"
|
#include "complete.h"
|
||||||
#include "wutil.h"
|
#include "wutil.h" // IWYU pragma: keep
|
||||||
#include "env.h"
|
#include "env.h"
|
||||||
#include "expand.h"
|
#include "expand.h"
|
||||||
#include "parser.h"
|
#include "parser.h"
|
||||||
#include "tokenizer.h"
|
#include "tokenizer.h"
|
||||||
#include "output.h"
|
|
||||||
#include "exec.h"
|
|
||||||
#include "event.h"
|
#include "event.h"
|
||||||
#include "path.h"
|
#include "path.h"
|
||||||
#include "history.h"
|
#include "history.h"
|
||||||
#include "highlight.h"
|
#include "highlight.h"
|
||||||
#include "iothread.h"
|
#include "iothread.h"
|
||||||
#include "postfork.h"
|
|
||||||
#include "signal.h"
|
#include "signal.h"
|
||||||
#include "parse_tree.h"
|
#include "parse_tree.h"
|
||||||
#include "parse_util.h"
|
#include "parse_util.h"
|
||||||
|
@ -59,6 +57,12 @@
|
||||||
#include "utf8.h"
|
#include "utf8.h"
|
||||||
#include "env_universal_common.h"
|
#include "env_universal_common.h"
|
||||||
#include "wcstringutil.h"
|
#include "wcstringutil.h"
|
||||||
|
#include "color.h"
|
||||||
|
#include "io.h"
|
||||||
|
#include "lru.h"
|
||||||
|
#include "parse_constants.h"
|
||||||
|
#include "screen.h"
|
||||||
|
#include "input_common.h"
|
||||||
|
|
||||||
static const char * const * s_arguments;
|
static const char * const * s_arguments;
|
||||||
static int s_test_run_count = 0;
|
static int s_test_run_count = 0;
|
||||||
|
|
|
@ -6,9 +6,7 @@
|
||||||
is taken care of by the parser and to some degree the builtin
|
is taken care of by the parser and to some degree the builtin
|
||||||
handling library.
|
handling library.
|
||||||
*/
|
*/
|
||||||
|
// IWYU pragma: no_include <type_traits>
|
||||||
#include "config.h" // IWYU pragma: keep
|
|
||||||
|
|
||||||
#include <wchar.h>
|
#include <wchar.h>
|
||||||
#include <pthread.h>
|
#include <pthread.h>
|
||||||
#include <map>
|
#include <map>
|
||||||
|
@ -17,10 +15,10 @@
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
|
#include <memory>
|
||||||
|
|
||||||
#include "wutil.h"
|
#include "wutil.h" // IWYU pragma: keep
|
||||||
#include "fallback.h" // IWYU pragma: keep
|
#include "fallback.h" // IWYU pragma: keep
|
||||||
|
|
||||||
#include "autoload.h"
|
#include "autoload.h"
|
||||||
#include "function.h"
|
#include "function.h"
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
|
@ -6,12 +6,12 @@
|
||||||
is taken care of by the parser and to some degree the builtin
|
is taken care of by the parser and to some degree the builtin
|
||||||
handling library.
|
handling library.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef FISH_FUNCTION_H
|
#ifndef FISH_FUNCTION_H
|
||||||
#define FISH_FUNCTION_H
|
#define FISH_FUNCTION_H
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <map>
|
#include <map>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "event.h"
|
#include "event.h"
|
||||||
|
|
|
@ -1,9 +1,7 @@
|
||||||
/** \file highlight.c
|
/** \file highlight.c
|
||||||
Functions for syntax highlighting
|
Functions for syntax highlighting
|
||||||
*/
|
*/
|
||||||
|
// IWYU pragma: no_include <cstddef>
|
||||||
#include "config.h" // IWYU pragma: keep
|
|
||||||
|
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
@ -13,10 +11,13 @@
|
||||||
#include <map>
|
#include <map>
|
||||||
#include <set>
|
#include <set>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <memory>
|
||||||
|
#include <utility>
|
||||||
|
#include <limits.h>
|
||||||
|
#include <wctype.h>
|
||||||
|
|
||||||
#include "fallback.h"
|
#include "fallback.h" // IWYU pragma: keep
|
||||||
|
#include "wutil.h" // IWYU pragma: keep
|
||||||
#include "wutil.h"
|
|
||||||
#include "highlight.h"
|
#include "highlight.h"
|
||||||
#include "tokenizer.h"
|
#include "tokenizer.h"
|
||||||
#include "parse_util.h"
|
#include "parse_util.h"
|
||||||
|
@ -26,12 +27,12 @@
|
||||||
#include "env.h"
|
#include "env.h"
|
||||||
#include "expand.h"
|
#include "expand.h"
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "complete.h"
|
|
||||||
#include "output.h"
|
#include "output.h"
|
||||||
#include "wildcard.h"
|
#include "wildcard.h"
|
||||||
#include "path.h"
|
#include "path.h"
|
||||||
#include "history.h"
|
#include "history.h"
|
||||||
#include "parse_tree.h"
|
#include "parse_tree.h"
|
||||||
|
#include "color.h"
|
||||||
|
|
||||||
#define CURSOR_POSITION_INVALID ((size_t)(-1))
|
#define CURSOR_POSITION_INVALID ((size_t)(-1))
|
||||||
|
|
||||||
|
|
|
@ -5,12 +5,12 @@
|
||||||
#ifndef FISH_HIGHLIGHT_H
|
#ifndef FISH_HIGHLIGHT_H
|
||||||
#define FISH_HIGHLIGHT_H
|
#define FISH_HIGHLIGHT_H
|
||||||
|
|
||||||
#include <assert.h> // for assert
|
#include <assert.h>
|
||||||
#include <stddef.h> // for size_t
|
#include <stdint.h>
|
||||||
#include <stdint.h> // for uint32_t
|
#include <vector>
|
||||||
#include <vector> // for vector
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "common.h" // for wcstring, wcstring_list_t
|
#include "common.h"
|
||||||
#include "env.h"
|
#include "env.h"
|
||||||
#include "color.h"
|
#include "color.h"
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
// History functions, part of the user interface.
|
// History functions, part of the user interface.
|
||||||
#include "history.h"
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
@ -16,10 +15,12 @@
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <iterator>
|
#include <iterator>
|
||||||
#include <map>
|
#include <map>
|
||||||
|
#include <pthread.h>
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "config.h"
|
|
||||||
#include "env.h"
|
#include "env.h"
|
||||||
#include "fallback.h" // IWYU pragma: keep
|
#include "fallback.h" // IWYU pragma: keep
|
||||||
|
#include "history.h"
|
||||||
#include "iothread.h"
|
#include "iothread.h"
|
||||||
#include "lru.h"
|
#include "lru.h"
|
||||||
#include "parse_constants.h"
|
#include "parse_constants.h"
|
||||||
|
@ -28,7 +29,7 @@
|
||||||
#include "reader.h"
|
#include "reader.h"
|
||||||
#include "sanity.h"
|
#include "sanity.h"
|
||||||
#include "signal.h"
|
#include "signal.h"
|
||||||
#include "wutil.h"
|
#include "wutil.h" // IWYU pragma: keep
|
||||||
|
|
||||||
// Our history format is intended to be valid YAML. Here it is:
|
// Our history format is intended to be valid YAML. Here it is:
|
||||||
//
|
//
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
#ifndef FISH_HISTORY_H
|
#ifndef FISH_HISTORY_H
|
||||||
#define FISH_HISTORY_H
|
#define FISH_HISTORY_H
|
||||||
|
|
||||||
|
// IWYU pragma: no_include <cstddef>
|
||||||
#include <pthread.h>
|
#include <pthread.h>
|
||||||
#include <stddef.h>
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
@ -12,8 +12,11 @@
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
#include <memory>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "wutil.h"
|
#include "wutil.h" // IWYU pragma: keep
|
||||||
|
|
||||||
// Fish supports multiple shells writing to history at once. Here is its strategy:
|
// Fish supports multiple shells writing to history at once. Here is its strategy:
|
||||||
//
|
//
|
||||||
|
|
|
@ -1,16 +1,13 @@
|
||||||
/** \file input.c
|
/** \file input.c
|
||||||
|
|
||||||
Functions for reading a character of input from stdin.
|
Functions for reading a character of input from stdin.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <wchar.h>
|
#include <wchar.h>
|
||||||
|
|
||||||
#if HAVE_NCURSES_H
|
#if HAVE_NCURSES_H
|
||||||
#include <ncurses.h>
|
#include <ncurses.h>
|
||||||
#elif HAVE_NCURSES_CURSES_H
|
#elif HAVE_NCURSES_CURSES_H
|
||||||
|
@ -18,17 +15,19 @@
|
||||||
#else
|
#else
|
||||||
#include <curses.h>
|
#include <curses.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if HAVE_TERM_H
|
#if HAVE_TERM_H
|
||||||
#include <term.h>
|
#include <term.h>
|
||||||
#elif HAVE_NCURSES_TERM_H
|
#elif HAVE_NCURSES_TERM_H
|
||||||
#include <ncurses/term.h>
|
#include <ncurses/term.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <wctype.h>
|
#include <wctype.h>
|
||||||
|
#include <vector>
|
||||||
|
#include <algorithm>
|
||||||
|
#include <memory>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
#include "fallback.h" // IWYU pragma: keep
|
#include "fallback.h" // IWYU pragma: keep
|
||||||
#include "wutil.h" // IWYU pragma: keep - needed for wgettext
|
#include "wutil.h" // IWYU pragma: keep
|
||||||
#include "reader.h"
|
#include "reader.h"
|
||||||
#include "proc.h"
|
#include "proc.h"
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
@ -37,11 +36,9 @@
|
||||||
#include "parser.h"
|
#include "parser.h"
|
||||||
#include "env.h"
|
#include "env.h"
|
||||||
#include "event.h"
|
#include "event.h"
|
||||||
#include "signal.h" // IWYU pragma: keep - needed for CHECK_BLOCK
|
#include "signal.h" // IWYU pragma: keep
|
||||||
#include "io.h"
|
#include "io.h"
|
||||||
#include "output.h"
|
#include "output.h"
|
||||||
#include <vector>
|
|
||||||
#include <algorithm>
|
|
||||||
|
|
||||||
#define DEFAULT_TERM L"ansi"
|
#define DEFAULT_TERM L"ansi"
|
||||||
#define MAX_INPUT_FUNCTION_ARGS 20
|
#define MAX_INPUT_FUNCTION_ARGS 20
|
||||||
|
|
|
@ -2,19 +2,16 @@
|
||||||
|
|
||||||
Functions for reading a character of input from stdin, using the
|
Functions for reading a character of input from stdin, using the
|
||||||
inputrc information for key bindings.
|
inputrc information for key bindings.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef FISH_INPUT_H
|
#ifndef FISH_INPUT_H
|
||||||
#define FISH_INPUT_H
|
#define FISH_INPUT_H
|
||||||
|
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#include <string>
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "env.h"
|
#include "env.h"
|
||||||
#include "input_common.h"
|
|
||||||
|
|
||||||
#define DEFAULT_BIND_MODE L"default"
|
#define DEFAULT_BIND_MODE L"default"
|
||||||
#define FISH_BIND_MODE_VAR L"fish_bind_mode"
|
#define FISH_BIND_MODE_VAR L"fish_bind_mode"
|
||||||
|
|
|
@ -1,27 +1,30 @@
|
||||||
/** \file input_common.c
|
/** \file input_common.c
|
||||||
|
|
||||||
Implementation file for the low level input library
|
Implementation file for the low level input library
|
||||||
|
|
||||||
*/
|
*/
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <sys/time.h>
|
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <list>
|
#include <list>
|
||||||
#include <queue>
|
#include <queue>
|
||||||
#include <cwchar> // for wint_t
|
#include <deque>
|
||||||
#include <deque> // for deque
|
#include <utility>
|
||||||
#include <utility> // for swap, pair
|
|
||||||
#ifdef HAVE_SYS_SELECT_H
|
#ifdef HAVE_SYS_SELECT_H
|
||||||
#include <sys/select.h>
|
#include <sys/select.h>
|
||||||
#endif
|
#endif
|
||||||
|
#include <stdbool.h>
|
||||||
|
#include <memory>
|
||||||
|
#include <cwctype>
|
||||||
|
#include <wchar.h>
|
||||||
|
#include <wctype.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
#include "fallback.h" // IWYU pragma: keep
|
#include "fallback.h" // IWYU pragma: keep
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "input_common.h"
|
#include "input_common.h"
|
||||||
#include "env_universal_common.h"
|
#include "env_universal_common.h"
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
/** \file input_common.h
|
/** \file input_common.h
|
||||||
|
|
||||||
Header file for the low level input library
|
Header file for the low level input library
|
||||||
|
|
||||||
*/
|
*/
|
||||||
#ifndef INPUT_COMMON_H
|
#ifndef INPUT_COMMON_H
|
||||||
#define INPUT_COMMON_H
|
#define INPUT_COMMON_H
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
/** \file intern.c
|
/** \file intern.c
|
||||||
|
|
||||||
Library for pooling common strings
|
Library for pooling common strings
|
||||||
|
|
||||||
*/
|
*/
|
||||||
#include "config.h" // IWYU pragma: keep
|
|
||||||
|
|
||||||
#include <wchar.h>
|
#include <wchar.h>
|
||||||
#include <pthread.h>
|
#include <pthread.h>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
#include <memory>
|
||||||
|
#include <stddef.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "fallback.h" // IWYU pragma: keep
|
#include "fallback.h" // IWYU pragma: keep
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
|
@ -1,23 +1,19 @@
|
||||||
/** \file io.c
|
/** \file io.c
|
||||||
|
|
||||||
Utilities for io redirection.
|
Utilities for io redirection.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
#include "config.h" // IWYU pragma: keep
|
|
||||||
|
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
#include <stddef.h>
|
||||||
|
|
||||||
#include "fallback.h" // IWYU pragma: keep
|
#include "fallback.h" // IWYU pragma: keep
|
||||||
#include "wutil.h"
|
#include "wutil.h" // IWYU pragma: keep
|
||||||
#include "exec.h"
|
#include "exec.h"
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "io.h"
|
#include "io.h"
|
||||||
|
|
||||||
|
|
||||||
io_data_t::~io_data_t()
|
io_data_t::~io_data_t()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
7
src/io.h
7
src/io.h
|
@ -4,10 +4,10 @@
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include <stdarg.h>
|
||||||
// Note that we have to include something to get any _LIBCPP_VERSION defined so we can detect libc++
|
// Note that we have to include something to get any _LIBCPP_VERSION defined so we can detect libc++
|
||||||
// So it's key that vector go above. If we didn't need vector for other reasons, we might include ciso646, which does nothing
|
// So it's key that vector go above. If we didn't need vector for other reasons, we might include
|
||||||
|
// ciso646, which does nothing
|
||||||
#if defined(_LIBCPP_VERSION) || __cplusplus > 199711L
|
#if defined(_LIBCPP_VERSION) || __cplusplus > 199711L
|
||||||
// C++11 or libc++ (which is a C++11-only library, but the memory header works OK in C++03)
|
// C++11 or libc++ (which is a C++11-only library, but the memory header works OK in C++03)
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
@ -17,6 +17,7 @@ using std::shared_ptr;
|
||||||
#include <tr1/memory>
|
#include <tr1/memory>
|
||||||
using std::tr1::shared_ptr;
|
using std::tr1::shared_ptr;
|
||||||
#endif
|
#endif
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
#include "config.h" // IWYU pragma: keep
|
|
||||||
#include "iothread.h"
|
|
||||||
#include "common.h"
|
|
||||||
#include <pthread.h>
|
#include <pthread.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <limits.h> // IWYU pragma: keep - for _POSIX_THREADS_MAX, suggests internal header
|
#include <limits.h>
|
||||||
#include <sys/select.h>
|
#include <sys/select.h>
|
||||||
#include <sys/time.h>
|
#include <sys/types.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <queue>
|
#include <queue>
|
||||||
#include <algorithm>
|
#include <stdbool.h>
|
||||||
|
|
||||||
|
#include "iothread.h"
|
||||||
|
#include "common.h"
|
||||||
|
|
||||||
#ifdef _POSIX_THREAD_THREADS_MAX
|
#ifdef _POSIX_THREAD_THREADS_MAX
|
||||||
#if _POSIX_THREAD_THREADS_MAX < 64
|
#if _POSIX_THREAD_THREADS_MAX < 64
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
/** \file iothread.h
|
/** \file iothread.h
|
||||||
Handles IO that may hang.
|
Handles IO that may hang.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef FISH_IOTHREAD_H
|
#ifndef FISH_IOTHREAD_H
|
||||||
#define FISH_IOTHREAD_H
|
#define FISH_IOTHREAD_H
|
||||||
|
|
||||||
|
|
|
@ -5,19 +5,15 @@
|
||||||
|
|
||||||
Type ^C to exit the program.
|
Type ^C to exit the program.
|
||||||
*/
|
*/
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <termios.h>
|
#include <termios.h>
|
||||||
#include <unistd.h>
|
|
||||||
#include <locale.h>
|
#include <locale.h>
|
||||||
#include <termcap.h>
|
#include <termcap.h>
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "fallback.h"
|
#include "fallback.h" // IWYU pragma: keep
|
||||||
|
|
||||||
#include "input_common.h"
|
#include "input_common.h"
|
||||||
|
|
||||||
int writestr(char *str)
|
int writestr(char *str)
|
||||||
|
|
|
@ -5,13 +5,12 @@
|
||||||
and paste with a memory of previous cuts. It supports integration
|
and paste with a memory of previous cuts. It supports integration
|
||||||
with the X clipboard.
|
with the X clipboard.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h" // IWYU pragma: keep
|
|
||||||
|
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <list>
|
#include <list>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <memory>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "fallback.h" // IWYU pragma: keep
|
#include "fallback.h" // IWYU pragma: keep
|
||||||
#include "kill.h"
|
#include "kill.h"
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
|
|
||||||
Works like the killring in emacs and readline. The killring is cut and paste whith a memory of previous cuts.
|
Works like the killring in emacs and readline. The killring is cut and paste whith a memory of previous cuts.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef FISH_KILL_H
|
#ifndef FISH_KILL_H
|
||||||
#define FISH_KILL_H
|
#define FISH_KILL_H
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
|
|
||||||
Least-recently-used cache implementation
|
Least-recently-used cache implementation
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef FISH_LRU_H
|
#ifndef FISH_LRU_H
|
||||||
#define FISH_LRU_H
|
#define FISH_LRU_H
|
||||||
|
|
||||||
|
@ -11,6 +10,7 @@
|
||||||
#include <map>
|
#include <map>
|
||||||
#include <set>
|
#include <set>
|
||||||
#include <list>
|
#include <list>
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
/** A predicate to compare dereferenced pointers */
|
/** A predicate to compare dereferenced pointers */
|
||||||
|
|
|
@ -1,13 +1,11 @@
|
||||||
/** \file output.c
|
/** \file output.c
|
||||||
Generic output functions
|
Generic output functions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#if HAVE_NCURSES_H
|
#if HAVE_NCURSES_H
|
||||||
#include <ncurses.h>
|
#include <ncurses.h>
|
||||||
#elif HAVE_NCURSES_CURSES_H
|
#elif HAVE_NCURSES_CURSES_H
|
||||||
|
@ -15,25 +13,25 @@
|
||||||
#else
|
#else
|
||||||
#include <curses.h>
|
#include <curses.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if HAVE_TERM_H
|
#if HAVE_TERM_H
|
||||||
#include <term.h>
|
#include <term.h>
|
||||||
#elif HAVE_NCURSES_TERM_H
|
#elif HAVE_NCURSES_TERM_H
|
||||||
#include <ncurses/term.h>
|
#include <ncurses/term.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <wchar.h>
|
#include <wchar.h>
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
#include <memory>
|
||||||
|
|
||||||
#include "fallback.h"
|
#include "fallback.h" // IWYU pragma: keep
|
||||||
#include "wutil.h" // IWYU pragma: keep - needed for wgettext
|
#include "wutil.h" // IWYU pragma: keep
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "output.h"
|
#include "output.h"
|
||||||
|
#include "color.h"
|
||||||
|
|
||||||
static int writeb_internal(char c);
|
static int writeb_internal(char c);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
The function used for output
|
The function used for output
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -4,14 +4,15 @@
|
||||||
/**
|
/**
|
||||||
Constants for various character classifications. Each character of a command string can be classified as one of the following types.
|
Constants for various character classifications. Each character of a command string can be classified as one of the following types.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef FISH_OUTPUT_H
|
#ifndef FISH_OUTPUT_H
|
||||||
#define FISH_OUTPUT_H
|
#define FISH_OUTPUT_H
|
||||||
|
|
||||||
#include <stddef.h>
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
#include <stddef.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "fallback.h"
|
#include "fallback.h" // IWYU pragma: keep
|
||||||
#include "color.h"
|
#include "color.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1,14 +1,19 @@
|
||||||
#include "config.h" // IWYU pragma: keep
|
// IWYU pragma: no_include <cstddef>
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <wchar.h>
|
#include <wchar.h>
|
||||||
#include <wctype.h>
|
#include <wctype.h>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <map>
|
#include <map>
|
||||||
|
#include <stddef.h>
|
||||||
|
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
#include "wutil.h" // IWYU pragma: keep - needed for wgettext
|
#include "wutil.h" // IWYU pragma: keep
|
||||||
#include "pager.h"
|
#include "pager.h"
|
||||||
#include "highlight.h"
|
#include "highlight.h"
|
||||||
|
#include "common.h"
|
||||||
|
#include "screen.h"
|
||||||
|
#include "complete.h"
|
||||||
|
#include "reader.h"
|
||||||
|
|
||||||
typedef pager_t::comp_t comp_t;
|
typedef pager_t::comp_t comp_t;
|
||||||
typedef std::vector<completion_t> completion_list_t;
|
typedef std::vector<completion_t> completion_list_t;
|
||||||
|
|
|
@ -1,13 +1,15 @@
|
||||||
/** \file pager.h
|
/** \file pager.h
|
||||||
Pager support
|
Pager support
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef FISH_PAGER_H
|
#ifndef FISH_PAGER_H
|
||||||
#define FISH_PAGER_H
|
#define FISH_PAGER_H
|
||||||
|
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
#include <memory>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "complete.h"
|
#include "complete.h"
|
||||||
#include "screen.h"
|
#include "screen.h"
|
||||||
|
|
|
@ -2,9 +2,8 @@
|
||||||
|
|
||||||
Constants used in the programmatic representation of fish code.
|
Constants used in the programmatic representation of fish code.
|
||||||
*/
|
*/
|
||||||
|
#ifndef FISH_PARSE_CONSTANTS_H
|
||||||
#ifndef fish_parse_constants_h
|
#define FISH_PARSE_CONSTANTS_H
|
||||||
#define fish_parse_constants_h
|
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
|
|
|
@ -6,8 +6,6 @@
|
||||||
|
|
||||||
Non-fatal errors are printed as soon as they are encountered; otherwise you would have to wait for the execution to finish to see them.
|
Non-fatal errors are printed as soon as they are encountered; otherwise you would have to wait for the execution to finish to see them.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "parse_execution.h"
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
|
@ -18,8 +16,11 @@
|
||||||
#include <wchar.h>
|
#include <wchar.h>
|
||||||
#include <wctype.h>
|
#include <wctype.h>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <memory> // IWYU pragma: keep - suggests <tr1/memory> instead
|
#include <memory>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
|
#include "parse_execution.h"
|
||||||
#include "env.h"
|
#include "env.h"
|
||||||
#include "event.h"
|
#include "event.h"
|
||||||
#include "tokenizer.h"
|
#include "tokenizer.h"
|
||||||
|
@ -35,6 +36,11 @@
|
||||||
#include "function.h"
|
#include "function.h"
|
||||||
#include "builtin.h"
|
#include "builtin.h"
|
||||||
#include "exec.h"
|
#include "exec.h"
|
||||||
|
#include "common.h"
|
||||||
|
#include "io.h"
|
||||||
|
#include "parse_constants.h"
|
||||||
|
#include "parse_tree.h"
|
||||||
|
#include "proc.h"
|
||||||
|
|
||||||
/* These are the specific statement types that support redirections */
|
/* These are the specific statement types that support redirections */
|
||||||
static bool specific_statement_type_is_redirectable_block(const parse_node_t &node)
|
static bool specific_statement_type_is_redirectable_block(const parse_node_t &node)
|
||||||
|
|
|
@ -2,16 +2,17 @@
|
||||||
|
|
||||||
Provides the "linkage" between a parse_node_tree_t and actual execution structures (job_t, etc.).
|
Provides the "linkage" between a parse_node_tree_t and actual execution structures (job_t, etc.).
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef FISH_PARSE_EXECUTION_H
|
#ifndef FISH_PARSE_EXECUTION_H
|
||||||
#define FISH_PARSE_EXECUTION_H
|
#define FISH_PARSE_EXECUTION_H
|
||||||
|
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "io.h"
|
#include "io.h"
|
||||||
#include "parse_constants.h"
|
#include "parse_constants.h"
|
||||||
#include "parse_tree.h"
|
#include "parse_tree.h"
|
||||||
#include "proc.h"
|
#include "proc.h"
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
class parser_t;
|
class parser_t;
|
||||||
struct block_t;
|
struct block_t;
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
#include "parse_productions.h"
|
|
||||||
#include <assert.h>
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
#include "parse_tree.h"
|
#include "parse_tree.h"
|
||||||
|
#include "parse_productions.h"
|
||||||
|
#include "parse_constants.h"
|
||||||
|
#include "common.h"
|
||||||
|
|
||||||
using namespace parse_productions;
|
using namespace parse_productions;
|
||||||
|
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
Programmatic representation of fish code.
|
Programmatic representation of fish code.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef FISH_PARSE_TREE_CONSTRUCTION_H
|
#ifndef FISH_PARSE_TREE_CONSTRUCTION_H
|
||||||
#define FISH_PARSE_TREE_CONSTRUCTION_H
|
#define FISH_PARSE_TREE_CONSTRUCTION_H
|
||||||
|
|
||||||
#include <stdint.h> // for uint8_t, uint32_t
|
#include <sys/types.h>
|
||||||
#include "common.h" // for wcstring
|
#include <stdbool.h>
|
||||||
#include "parse_constants.h" // for parse_token_type_t, etc
|
|
||||||
|
#include "parse_constants.h"
|
||||||
|
|
||||||
struct parse_token_t;
|
struct parse_token_t;
|
||||||
|
|
||||||
|
|
|
@ -1,20 +1,21 @@
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#include <stdint.h>
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <wchar.h>
|
#include <wchar.h>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
#include <algorithm>
|
||||||
|
#include <cwchar>
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "parse_constants.h"
|
#include "parse_constants.h"
|
||||||
#include "parse_productions.h"
|
#include "parse_productions.h"
|
||||||
#include "parse_tree.h"
|
#include "parse_tree.h"
|
||||||
#include "tokenizer.h"
|
#include "tokenizer.h"
|
||||||
#include "fallback.h"
|
#include "fallback.h" // IWYU pragma: keep
|
||||||
#include "wutil.h" // IWYU pragma: keep - needed for wgettext
|
#include "wutil.h" // IWYU pragma: keep
|
||||||
#include "proc.h"
|
#include "proc.h"
|
||||||
#include <vector>
|
|
||||||
#include <algorithm>
|
|
||||||
|
|
||||||
// This array provides strings for each symbol in enum parse_token_type_t in parse_constants.h.
|
// This array provides strings for each symbol in enum parse_token_type_t in parse_constants.h.
|
||||||
const wchar_t * const token_type_map[] = {
|
const wchar_t * const token_type_map[] = {
|
||||||
|
|
|
@ -2,18 +2,19 @@
|
||||||
|
|
||||||
Programmatic representation of fish code.
|
Programmatic representation of fish code.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef FISH_PARSE_PRODUCTIONS_H
|
#ifndef FISH_PARSE_PRODUCTIONS_H
|
||||||
#define FISH_PARSE_PRODUCTIONS_H
|
#define FISH_PARSE_PRODUCTIONS_H
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#include <stdint.h>
|
#include <vector>
|
||||||
|
#include <memory>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "tokenizer.h"
|
#include "tokenizer.h"
|
||||||
#include "parse_constants.h"
|
#include "parse_constants.h"
|
||||||
#include <vector>
|
|
||||||
|
|
||||||
class parse_node_tree_t;
|
class parse_node_tree_t;
|
||||||
|
|
||||||
|
|
|
@ -7,26 +7,26 @@
|
||||||
used in many places in fish and that are somehow related to
|
used in many places in fish and that are somehow related to
|
||||||
parsing the code.
|
parsing the code.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h" // IWYU pragma: keep
|
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <wchar.h>
|
#include <wchar.h>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <memory>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "fallback.h"
|
#include "fallback.h" // IWYU pragma: keep
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
#include "wutil.h" // IWYU pragma: keep
|
#include "wutil.h" // IWYU pragma: keep
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "tokenizer.h"
|
#include "tokenizer.h"
|
||||||
#include "parse_util.h"
|
#include "parse_util.h"
|
||||||
#include "expand.h"
|
#include "expand.h"
|
||||||
#include "env.h"
|
|
||||||
#include "wildcard.h"
|
#include "wildcard.h"
|
||||||
#include "parse_tree.h"
|
#include "parse_tree.h"
|
||||||
#include "builtin.h"
|
#include "builtin.h"
|
||||||
|
#include "parse_constants.h"
|
||||||
|
|
||||||
/** Error message for improper use of the exec builtin */
|
/** Error message for improper use of the exec builtin */
|
||||||
#define EXEC_ERR_MSG _(L"The '%ls' command can not be used in a pipeline")
|
#define EXEC_ERR_MSG _(L"The '%ls' command can not be used in a pipeline")
|
||||||
|
|
|
@ -3,14 +3,16 @@
|
||||||
Various mostly unrelated utility functions related to parsing,
|
Various mostly unrelated utility functions related to parsing,
|
||||||
loading and evaluating fish code.
|
loading and evaluating fish code.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef FISH_PARSE_UTIL_H
|
#ifndef FISH_PARSE_UTIL_H
|
||||||
#define FISH_PARSE_UTIL_H
|
#define FISH_PARSE_UTIL_H
|
||||||
|
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "parse_constants.h"
|
#include "parse_constants.h"
|
||||||
|
#include "tokenizer.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Find the beginning and end of the first subshell in the specified string.
|
Find the beginning and end of the first subshell in the specified string.
|
||||||
|
|
|
@ -1,20 +1,17 @@
|
||||||
/** \file parser.c
|
/** \file parser.c
|
||||||
|
|
||||||
The fish parser. Contains functions for parsing and evaluating code.
|
The fish parser. Contains functions for parsing and evaluating code.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h" // IWYU pragma: keep
|
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <wchar.h>
|
#include <wchar.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <string>
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
#include <memory>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "fallback.h"
|
#include "fallback.h" // IWYU pragma: keep
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "wutil.h"
|
#include "wutil.h" // IWYU pragma: keep
|
||||||
#include "proc.h"
|
#include "proc.h"
|
||||||
#include "parser.h"
|
#include "parser.h"
|
||||||
#include "function.h"
|
#include "function.h"
|
||||||
|
@ -24,10 +21,12 @@ The fish parser. Contains functions for parsing and evaluating code.
|
||||||
#include "sanity.h"
|
#include "sanity.h"
|
||||||
#include "event.h"
|
#include "event.h"
|
||||||
#include "intern.h"
|
#include "intern.h"
|
||||||
#include "signal.h" // IWYU pragma: keep - needed for CHECK_BLOCK
|
|
||||||
#include "parse_util.h"
|
#include "parse_util.h"
|
||||||
#include "parse_tree.h"
|
#include "parse_tree.h"
|
||||||
#include "parse_execution.h"
|
#include "parse_execution.h"
|
||||||
|
#include "parse_constants.h"
|
||||||
|
|
||||||
|
class io_chain_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Error for evaluating in illegal scope
|
Error for evaluating in illegal scope
|
||||||
|
|
10
src/parser.h
10
src/parser.h
|
@ -1,22 +1,22 @@
|
||||||
/** \file parser.h
|
/** \file parser.h
|
||||||
The fish parser.
|
The fish parser.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef FISH_PARSER_H
|
#ifndef FISH_PARSER_H
|
||||||
#define FISH_PARSER_H
|
#define FISH_PARSER_H
|
||||||
|
|
||||||
#include <stddef.h> // for size_t
|
#include <stddef.h>
|
||||||
#include <list> // for _List_const_iterator, list, etc
|
#include <list>
|
||||||
|
#include <vector>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "proc.h"
|
#include "proc.h"
|
||||||
#include "event.h"
|
#include "event.h"
|
||||||
#include "parse_tree.h"
|
#include "parse_tree.h"
|
||||||
#include "io.h"
|
|
||||||
#include "parse_constants.h"
|
#include "parse_constants.h"
|
||||||
#include "expand.h"
|
#include "expand.h"
|
||||||
|
|
||||||
#include <vector>
|
class io_chain_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
event_blockage_t represents a block on events of the specified type
|
event_blockage_t represents a block on events of the specified type
|
||||||
|
|
|
@ -2,9 +2,6 @@
|
||||||
|
|
||||||
Functions having to do with parser keywords, like testing if a function is a block command.
|
Functions having to do with parser keywords, like testing if a function is a block command.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h" // IWYU pragma: keep
|
|
||||||
|
|
||||||
#include "fallback.h" // IWYU pragma: keep
|
#include "fallback.h" // IWYU pragma: keep
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "parser_keywords.h"
|
#include "parser_keywords.h"
|
||||||
|
|
|
@ -2,10 +2,11 @@
|
||||||
|
|
||||||
Functions having to do with parser keywords, like testing if a function is a block command.
|
Functions having to do with parser keywords, like testing if a function is a block command.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef FISH_PARSER_KEYWORD_H
|
#ifndef FISH_PARSER_KEYWORD_H
|
||||||
#define FISH_PARSER_KEYWORD_H
|
#define FISH_PARSER_KEYWORD_H
|
||||||
|
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
#include "config.h" // IWYU pragma: keep
|
|
||||||
|
|
||||||
#include <wchar.h>
|
#include <wchar.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
@ -11,7 +9,7 @@
|
||||||
#include "fallback.h" // IWYU pragma: keep
|
#include "fallback.h" // IWYU pragma: keep
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "env.h"
|
#include "env.h"
|
||||||
#include "wutil.h"
|
#include "wutil.h" // IWYU pragma: keep
|
||||||
#include "path.h"
|
#include "path.h"
|
||||||
#include "expand.h"
|
#include "expand.h"
|
||||||
|
|
||||||
|
|
|
@ -5,11 +5,12 @@
|
||||||
name can be found in the PATH, and various other path-related
|
name can be found in the PATH, and various other path-related
|
||||||
issues.
|
issues.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef FISH_PATH_H
|
#ifndef FISH_PATH_H
|
||||||
#define FISH_PATH_H
|
#define FISH_PATH_H
|
||||||
|
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "env.h"
|
#include "env.h"
|
||||||
|
|
||||||
|
|
|
@ -9,14 +9,19 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <memory> // IWYU pragma: keep - suggests <tr1/memory> instead
|
#include <memory>
|
||||||
|
#if FISH_USE_POSIX_SPAWN
|
||||||
|
#include <spawn.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "proc.h"
|
#include "proc.h"
|
||||||
#include "wutil.h"
|
#include "wutil.h" // IWYU pragma: keep
|
||||||
#include "signal.h"
|
#include "signal.h"
|
||||||
#include "postfork.h"
|
#include "postfork.h"
|
||||||
#include "iothread.h"
|
#include "iothread.h"
|
||||||
#include "exec.h"
|
#include "exec.h"
|
||||||
|
#include "io.h"
|
||||||
|
|
||||||
#ifndef JOIN_THREADS_BEFORE_FORK
|
#ifndef JOIN_THREADS_BEFORE_FORK
|
||||||
#define JOIN_THREADS_BEFORE_FORK 0
|
#define JOIN_THREADS_BEFORE_FORK 0
|
||||||
|
|
|
@ -2,24 +2,23 @@
|
||||||
|
|
||||||
Functions that we may safely call after fork(), of which there are very few. In particular we cannot allocate memory, since we're insane enough to call fork from a multithreaded process.
|
Functions that we may safely call after fork(), of which there are very few. In particular we cannot allocate memory, since we're insane enough to call fork from a multithreaded process.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef FISH_POSTFORK_H
|
#ifndef FISH_POSTFORK_H
|
||||||
#define FISH_POSTFORK_H
|
#define FISH_POSTFORK_H
|
||||||
|
|
||||||
#include <stddef.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "io.h"
|
|
||||||
|
|
||||||
|
#include <unistd.h>
|
||||||
#if HAVE_SPAWN_H
|
#if HAVE_SPAWN_H
|
||||||
#include <spawn.h>
|
#include <spawn.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef FISH_USE_POSIX_SPAWN
|
#ifndef FISH_USE_POSIX_SPAWN
|
||||||
#define FISH_USE_POSIX_SPAWN HAVE_SPAWN_H
|
#define FISH_USE_POSIX_SPAWN HAVE_SPAWN_H
|
||||||
#endif
|
#endif
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
|
class io_chain_t;
|
||||||
|
class job_t;
|
||||||
|
class process_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This function should be called by both the parent process and the
|
This function should be called by both the parent process and the
|
||||||
|
@ -33,8 +32,6 @@
|
||||||
|
|
||||||
Returns 0 on sucess, -1 on failiure.
|
Returns 0 on sucess, -1 on failiure.
|
||||||
*/
|
*/
|
||||||
class job_t;
|
|
||||||
class process_t;
|
|
||||||
int set_child_group(job_t *j, process_t *p, int print_errors);
|
int set_child_group(job_t *j, process_t *p, int print_errors);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1,12 +1,9 @@
|
||||||
|
|
||||||
/** \file print_help.c
|
/** \file print_help.c
|
||||||
Print help message for the specified command
|
Print help message for the specified command
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stddef.h>
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|
||||||
#include "print_help.h"
|
#include "print_help.h"
|
||||||
|
|
22
src/proc.cpp
22
src/proc.cpp
|
@ -7,45 +7,40 @@ will call proc to create representations of the running jobs as
|
||||||
needed.
|
needed.
|
||||||
|
|
||||||
Some of the code in this file is based on code from the Glibc manual.
|
Some of the code in this file is based on code from the Glibc manual.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
// IWYU pragma: no_include <__bit_reference>
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <sys/wait.h>
|
#include <sys/wait.h>
|
||||||
#include <wchar.h>
|
#include <wchar.h>
|
||||||
#include <string.h>
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <termios.h>
|
#include <termios.h>
|
||||||
#include <pthread.h>
|
#include <pthread.h>
|
||||||
#include <wctype.h>
|
#include <wctype.h>
|
||||||
#include <algorithm>
|
#include <memory>
|
||||||
#include <memory> // IWYU pragma: keep - suggests <tr1/memory> instead
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <sys/time.h>
|
|
||||||
|
|
||||||
#if HAVE_TERM_H
|
#if HAVE_TERM_H
|
||||||
#include <term.h>
|
#include <term.h>
|
||||||
#elif HAVE_NCURSES_TERM_H
|
#elif HAVE_NCURSES_TERM_H
|
||||||
#include <ncurses/term.h>
|
#include <ncurses/term.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_SIGINFO_H
|
#ifdef HAVE_SIGINFO_H
|
||||||
#include <siginfo.h>
|
#include <siginfo.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_SYS_SELECT_H
|
#ifdef HAVE_SYS_SELECT_H
|
||||||
#include <sys/select.h>
|
#include <sys/select.h>
|
||||||
#endif
|
#endif
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
#include <sys/time.h> // IWYU pragma: keep
|
||||||
|
#include <algorithm> // IWYU pragma: keep
|
||||||
|
|
||||||
#include "fallback.h" // IWYU pragma: keep
|
#include "fallback.h" // IWYU pragma: keep
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
#include "wutil.h" // IWYU pragma: keep
|
||||||
#include "wutil.h"
|
|
||||||
#include "proc.h"
|
#include "proc.h"
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "reader.h"
|
#include "reader.h"
|
||||||
|
@ -53,8 +48,9 @@ Some of the code in this file is based on code from the Glibc manual.
|
||||||
#include "parser.h"
|
#include "parser.h"
|
||||||
#include "signal.h"
|
#include "signal.h"
|
||||||
#include "event.h"
|
#include "event.h"
|
||||||
|
|
||||||
#include "output.h"
|
#include "output.h"
|
||||||
|
#include "io.h"
|
||||||
|
#include "parse_tree.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Size of buffer for reading buffered output
|
Size of buffer for reading buffered output
|
||||||
|
|
13
src/proc.h
13
src/proc.h
|
@ -7,18 +7,19 @@
|
||||||
needed.
|
needed.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef FISH_PROC_H
|
#ifndef FISH_PROC_H
|
||||||
#define FISH_PROC_H
|
#define FISH_PROC_H
|
||||||
|
#include "config.h" // IWYU pragma: keep
|
||||||
|
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <sys/time.h>
|
|
||||||
#include <list>
|
#include <list>
|
||||||
#include <assert.h> // for assert
|
#include <assert.h>
|
||||||
#include <stddef.h> // for size_t
|
#include <stddef.h>
|
||||||
#include <termios.h> // for pid_t, termios
|
#include <termios.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
#include <sys/time.h> // IWYU pragma: keep
|
||||||
|
|
||||||
#include "config.h" // for HAVE__PROC_SELF_STAT
|
|
||||||
#include "io.h"
|
#include "io.h"
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "parse_tree.h"
|
#include "parse_tree.h"
|
||||||
|
|
|
@ -18,13 +18,12 @@ the end of the list is reached, at which point regular searching will
|
||||||
commence.
|
commence.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include <algorithm>
|
|
||||||
|
|
||||||
|
// IWYU pragma: no_include <type_traits>
|
||||||
|
#include <algorithm>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdint.h>
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <termios.h>
|
#include <termios.h>
|
||||||
|
@ -34,25 +33,22 @@ commence.
|
||||||
#include <wctype.h>
|
#include <wctype.h>
|
||||||
#include <stack>
|
#include <stack>
|
||||||
#include <pthread.h>
|
#include <pthread.h>
|
||||||
|
|
||||||
#ifdef HAVE_SIGINFO_H
|
#ifdef HAVE_SIGINFO_H
|
||||||
#include <siginfo.h>
|
#include <siginfo.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_SYS_SELECT_H
|
#ifdef HAVE_SYS_SELECT_H
|
||||||
#include <sys/select.h>
|
#include <sys/select.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <wchar.h>
|
#include <wchar.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <memory>
|
||||||
|
|
||||||
|
#include "fallback.h" // IWYU pragma: keep
|
||||||
#include "fallback.h"
|
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
#include "wutil.h" // IWYU pragma: keep
|
||||||
#include "wutil.h"
|
|
||||||
#include "highlight.h"
|
#include "highlight.h"
|
||||||
#include "reader.h"
|
#include "reader.h"
|
||||||
#include "proc.h"
|
#include "proc.h"
|
||||||
|
@ -79,6 +75,8 @@ commence.
|
||||||
#include "pager.h"
|
#include "pager.h"
|
||||||
#include "color.h"
|
#include "color.h"
|
||||||
#include "event.h"
|
#include "event.h"
|
||||||
|
#include "io.h"
|
||||||
|
#include "parse_constants.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Maximum length of prefix string when printing completion
|
Maximum length of prefix string when printing completion
|
||||||
|
|
|
@ -12,14 +12,16 @@
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "io.h"
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "complete.h"
|
#include "complete.h"
|
||||||
#include "highlight.h"
|
#include "highlight.h"
|
||||||
#include "parse_constants.h"
|
#include "parse_constants.h"
|
||||||
|
|
||||||
class history_t;
|
class history_t;
|
||||||
|
class env_vars_snapshot_t;
|
||||||
|
class io_chain_t;
|
||||||
|
|
||||||
/* Helper class for storing a command line */
|
/* Helper class for storing a command line */
|
||||||
class editable_line_t
|
class editable_line_t
|
||||||
|
@ -229,7 +231,6 @@ void reader_set_complete_function(complete_function_t);
|
||||||
/**
|
/**
|
||||||
The type of a highlight function.
|
The type of a highlight function.
|
||||||
*/
|
*/
|
||||||
class env_vars_snapshot_t;
|
|
||||||
typedef void (*highlight_function_t)(const wcstring &, std::vector<highlight_spec_t> &, size_t, wcstring_list_t *, const env_vars_snapshot_t &vars);
|
typedef void (*highlight_function_t)(const wcstring &, std::vector<highlight_spec_t> &, size_t, wcstring_list_t *, const env_vars_snapshot_t &vars);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
/** \file sanity.c
|
/** \file sanity.c
|
||||||
Functions for performing sanity checks on the program state
|
Functions for performing sanity checks on the program state
|
||||||
*/
|
*/
|
||||||
#include "config.h" // IWYU pragma: keep
|
|
||||||
|
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
#include "fallback.h" // IWYU pragma: keep
|
#include "fallback.h" // IWYU pragma: keep
|
||||||
|
@ -13,7 +11,6 @@
|
||||||
#include "reader.h"
|
#include "reader.h"
|
||||||
#include "kill.h"
|
#include "kill.h"
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Status from earlier sanity checks
|
Status from earlier sanity checks
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -5,15 +5,13 @@ output to screen efficiently by keeping an internal representation
|
||||||
of the current screen contents and trying to find the most
|
of the current screen contents and trying to find the most
|
||||||
efficient way for transforming that to the desired screen content.
|
efficient way for transforming that to the desired screen content.
|
||||||
*/
|
*/
|
||||||
|
// IWYU pragma: no_include <cstddef>
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
#if HAVE_NCURSES_H
|
#if HAVE_NCURSES_H
|
||||||
#include <ncurses.h>
|
#include <ncurses.h>
|
||||||
#elif HAVE_NCURSES_CURSES_H
|
#elif HAVE_NCURSES_CURSES_H
|
||||||
|
@ -21,23 +19,19 @@ efficient way for transforming that to the desired screen content.
|
||||||
#else
|
#else
|
||||||
#include <curses.h>
|
#include <curses.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if HAVE_TERM_H
|
#if HAVE_TERM_H
|
||||||
#include <term.h>
|
#include <term.h>
|
||||||
#elif HAVE_NCURSES_TERM_H
|
#elif HAVE_NCURSES_TERM_H
|
||||||
#include <ncurses/term.h>
|
#include <ncurses/term.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <wchar.h>
|
#include <wchar.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
#include "fallback.h" // IWYU pragma: keep
|
||||||
#include "fallback.h"
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
#include "output.h"
|
#include "output.h"
|
||||||
|
|
|
@ -18,6 +18,8 @@
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "highlight.h"
|
#include "highlight.h"
|
||||||
|
#include <stdbool.h>
|
||||||
|
#include <memory>
|
||||||
|
|
||||||
class page_rendering_t;
|
class page_rendering_t;
|
||||||
|
|
||||||
|
|
|
@ -1,29 +1,24 @@
|
||||||
/** \file signal.c
|
/** \file signal.c
|
||||||
|
|
||||||
The library for various signal related issues
|
The library for various signal related issues
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h" // IWYU pragma: keep
|
|
||||||
|
|
||||||
#include <wchar.h>
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
#ifdef HAVE_SIGINFO_H
|
#ifdef HAVE_SIGINFO_H
|
||||||
#include <siginfo.h>
|
#include <siginfo.h>
|
||||||
#endif
|
#endif
|
||||||
|
#include <pthread.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "fallback.h" // IWYU pragma: keep
|
#include "fallback.h" // IWYU pragma: keep
|
||||||
#include "wutil.h"
|
#include "wutil.h" // IWYU pragma: keep
|
||||||
#include "signal.h"
|
#include "signal.h"
|
||||||
#include "event.h"
|
#include "event.h"
|
||||||
#include "reader.h"
|
#include "reader.h"
|
||||||
#include "proc.h"
|
#include "proc.h"
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Struct describing an entry for the lookup table used to convert
|
Struct describing an entry for the lookup table used to convert
|
||||||
between signal names and signal ids, etc.
|
between signal names and signal ids, etc.
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
/** \file signal.h
|
/** \file signal.h
|
||||||
|
|
||||||
The library for various signal related issues
|
The library for various signal related issues
|
||||||
|
|
||||||
*/
|
*/
|
||||||
#ifndef FISH_SIGNALH
|
#ifndef FISH_SIGNALH
|
||||||
#define FISH_SIGNALH
|
#define FISH_SIGNALH
|
||||||
|
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Get the integer signal value representing the specified signal, or
|
Get the integer signal value representing the specified signal, or
|
||||||
|
|
|
@ -5,19 +5,17 @@ future, the tokenizer should be extended to support marks,
|
||||||
tokenizing multiple strings and disposing of unused string
|
tokenizing multiple strings and disposing of unused string
|
||||||
segments.
|
segments.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h" // IWYU pragma: keep
|
|
||||||
|
|
||||||
#include <wchar.h>
|
#include <wchar.h>
|
||||||
#include <wctype.h>
|
#include <wctype.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <limits.h>
|
||||||
|
|
||||||
#include "fallback.h" // IWYU pragma: keep
|
#include "fallback.h" // IWYU pragma: keep
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "wutil.h" // IWYU pragma: keep - needed for wgettext
|
#include "wutil.h" // IWYU pragma: keep
|
||||||
#include "tokenizer.h"
|
#include "tokenizer.h"
|
||||||
|
|
||||||
/* Wow what a hack */
|
/* Wow what a hack */
|
||||||
|
|
|
@ -5,11 +5,12 @@
|
||||||
tokenizing multiple strings and disposing of unused string
|
tokenizing multiple strings and disposing of unused string
|
||||||
segments.
|
segments.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef FISH_TOKENIZER_H
|
#ifndef FISH_TOKENIZER_H
|
||||||
#define FISH_TOKENIZER_H
|
#define FISH_TOKENIZER_H
|
||||||
|
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -13,15 +13,12 @@
|
||||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h> // IWYU pragma: keep
|
||||||
|
|
||||||
#include "utf8.h"
|
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <limits>
|
#include <limits>
|
||||||
#include <algorithm>
|
|
||||||
|
#include "utf8.h"
|
||||||
|
|
||||||
#define _NXT 0x80
|
#define _NXT 0x80
|
||||||
#define _SEQ2 0xc0
|
#define _SEQ2 0xc0
|
||||||
|
|
|
@ -21,7 +21,6 @@
|
||||||
#define _UTF8_H_
|
#define _UTF8_H_
|
||||||
|
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
#define UTF8_IGNORE_ERROR 0x01
|
#define UTF8_IGNORE_ERROR 0x01
|
||||||
|
|
20
src/util.cpp
20
src/util.cpp
|
@ -3,31 +3,17 @@
|
||||||
|
|
||||||
Contains datastructures such as automatically growing array lists, priority queues, etc.
|
Contains datastructures such as automatically growing array lists, priority queues, etc.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <wchar.h>
|
#include <wchar.h>
|
||||||
#include <math.h>
|
|
||||||
#include <sys/time.h>
|
|
||||||
#include <stdarg.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <ctype.h>
|
|
||||||
#include <wctype.h>
|
#include <wctype.h>
|
||||||
#include <unistd.h>
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/stat.h>
|
|
||||||
#include <dirent.h>
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <assert.h>
|
#include <sys/time.h>
|
||||||
|
|
||||||
#include "fallback.h"
|
#include "fallback.h" // IWYU pragma: keep
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "wutil.h"
|
#include "wutil.h" // IWYU pragma: keep
|
||||||
|
|
||||||
int wcsfilecmp(const wchar_t *a, const wchar_t *b)
|
int wcsfilecmp(const wchar_t *a, const wchar_t *b)
|
||||||
{
|
{
|
||||||
|
|
|
@ -5,10 +5,6 @@
|
||||||
#ifndef FISH_UTIL_H
|
#ifndef FISH_UTIL_H
|
||||||
#define FISH_UTIL_H
|
#define FISH_UTIL_H
|
||||||
|
|
||||||
#include <wchar.h>
|
|
||||||
#include <stdarg.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Returns the larger of two ints
|
Returns the larger of two ints
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -2,9 +2,7 @@
|
||||||
|
|
||||||
Helper functions for working with wcstring
|
Helper functions for working with wcstring
|
||||||
*/
|
*/
|
||||||
|
#include "common.h"
|
||||||
#include "config.h" // IWYU pragma: keep
|
|
||||||
|
|
||||||
#include "wcstringutil.h"
|
#include "wcstringutil.h"
|
||||||
|
|
||||||
typedef wcstring::size_type size_type;
|
typedef wcstring::size_type size_type;
|
||||||
|
|
|
@ -2,12 +2,12 @@
|
||||||
|
|
||||||
Helper functions for working with wcstring
|
Helper functions for working with wcstring
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef FISH_WCSTRINGUTIL_H
|
#ifndef FISH_WCSTRINGUTIL_H
|
||||||
#define FISH_WCSTRINGUTIL_H
|
#define FISH_WCSTRINGUTIL_H
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -53,8 +53,6 @@
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <wchar.h>
|
#include <wchar.h>
|
||||||
#include "common.h"
|
|
||||||
|
|
||||||
/* This needs to come after some library #include
|
/* This needs to come after some library #include
|
||||||
to get __GNU_LIBRARY__ defined. */
|
to get __GNU_LIBRARY__ defined. */
|
||||||
#ifdef __GNU_LIBRARY__
|
#ifdef __GNU_LIBRARY__
|
||||||
|
@ -74,11 +72,11 @@
|
||||||
GNU application programs can use a third alternative mode in which
|
GNU application programs can use a third alternative mode in which
|
||||||
they can distinguish the relative order of options and other arguments. */
|
they can distinguish the relative order of options and other arguments. */
|
||||||
|
|
||||||
|
#include "common.h"
|
||||||
#include "wgetopt.h"
|
#include "wgetopt.h"
|
||||||
#include "wutil.h"
|
#include "wutil.h" // IWYU pragma: keep
|
||||||
#include "fallback.h" // IWYU pragma: keep
|
#include "fallback.h" // IWYU pragma: keep
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Use translation functions if available
|
Use translation functions if available
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -47,7 +47,7 @@ Cambridge, MA 02139, USA. */
|
||||||
#ifndef FISH_WGETOPT_H
|
#ifndef FISH_WGETOPT_H
|
||||||
#define FISH_WGETOPT_H
|
#define FISH_WGETOPT_H
|
||||||
|
|
||||||
#include <wchar.h>
|
#include <stddef.h>
|
||||||
|
|
||||||
class wgetopter_t
|
class wgetopter_t
|
||||||
{
|
{
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue