📄 warn-ignored-err.sh
字号:
#!/bin/shHELP="\Usage: $0 [--remove] [FILE...]Insert or remove the GCC attribute \"warn_unused_result\" on each functionthat returns a Subversion error, in the specified files or, by default,*.h and *.c in the ./subversion and ./tools trees."LC_ALL=C# Parse optionsREMOVE=case "$1" in--remove) REMOVE=1; shift;;--help) echo "$HELP"; exit 0;;--*) echo "$0: unknown option \"$1\"; try \"--help\""; exit 1;;esac# Set the positional parameters to the default files if none specifiedif [ $# = 0 ]; then set -- `find subversion/ tools/ -name '*.[ch]'`fi# A line that declares a function return type of "svn_error_t *" looks like:# - Possibly leading whitespace, though not often.# - Possibly "static" or "typedef".# - The return type "svn_error_t *".# - Possibly a function or pointer-to-function declarator:# - "identifier"# - "(identifier)" (used in some typedefs)# - "(*identifier)"# with either nothing more, or a "(" next (especially not "," or ";" or "="# which all indicate a variable rather than a function).# Regular expressions for "sed"# Note: take care in matching back-reference numbers to parenthesesPREFIX="^\( *\| *static *\| *typedef *\)"RET_TYPE="\(svn_error_t *\* *\)"IDENT="[a-zA-Z_][a-zA-Z0-9_]*"DECLR="\($IDENT\|( *\(\*\|\) *$IDENT *)\)"SUFFIX="\($DECLR *\((.*\|\)\|\)$"# The attribute string to be inserted or removedATTRIB_RE="__attribute__((warn_unused_result))" # regex version of itATTRIB_STR="__attribute__((warn_unused_result))" # plain text version of itif [ $REMOVE ]; then SUBST="s/$PREFIX$ATTRIB_RE $RET_TYPE$SUFFIX/\1\2\3/"else SUBST="s/$PREFIX$RET_TYPE$SUFFIX/\1$ATTRIB_STR \2\3/"fifor F do # Edit the file, leaving a backup suffixed with a tilde { sed -e "$SUBST" "$F" > "$F~1" && { ! cmp -s "$F" "$F~1"; } && mv "$F" "$F~" && # F is briefly absent now; a copy could avoid this mv "$F~1" "$F" } || # If anything went wrong or no change was made, remove the temporary file rm "$F~1"done
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -