aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
10 daysman/man3attr/gnu::warning.3attr: Add pageHEADmasterAlejandro Colomar1-0/+57
Signed-off-by: Alejandro Colomar <alx@kernel.org>
11 daysCONTRIBUTING.d/ai: Add guidelines banning AI for contributingAlejandro Colomar1-0/+63
This policy is based on the Gentoo policy (see link below). However, I've modified our text to be more restrictive. Link: <https://wiki.gentoo.org/wiki/Project:Council/AI_policy> Reviewed-by: Carlos O'Donell <carlos@redhat.com> Cc: Collin Funk <collin.funk1@gmail.com> Cc: Sam James <sam@gentoo.org> Cc: "G. Branden Robinson" <branden@debian.org> Signed-off-by: Alejandro Colomar <alx@kernel.org>
12 daysman/man2/flock.2: Mention non-atomicity w.r.t closeAlexander Monakov1-0/+18
Ideally one should be able to use flock to synchronize with another process (or thread) closing that file, for instance before attempting to execve it (as execve of a file open for writing fails with ETXTBSY). Unfortunately, on Linux it is not reliable, because in the process of closing a file its locks are dropped before the refcounts of the file (as well as its underlying filesystem) are decremented, creating a race window where execve of the just-unlocked file sees it as if still open. Linux developers have indicated that it is not easy to fix, and the appropriate course of action for now is to document this limitation. Link: <https://lore.kernel.org/linux-fsdevel/68c99812-e933-ce93-17c0-3fe3ab01afb8@ispras.ru/> Signed-off-by: Alexander Monakov <amonakov@ispras.ru> Message-ID: <181d561860e52955b29fe388ad089bde4f67241a.1760627023.git.amonakov@ispras.ru> Reviewed-by: Jan Kara <jack@suse.cz> Signed-off-by: Alejandro Colomar <alx@kernel.org>
12 daysman/man2/copy_file_range.2: glibc no longer provides fallback after 2.30Wes Gibbs1-4/+9
Closes: <https://bugzilla.kernel.org/show_bug.cgi?id=220489> Signed-off-by: Wes Gibbs <wg21908@gmail.com> Message-ID: <20251102000330.155591-1-wg21908@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
12 daysman/man3/readdir.3, man/man3type/stat.3type: Improve documentation about ↵Alejandro Colomar2-2/+37
.d_ino and .st_ino Suggested-by: Pali Rohár <pali@kernel.org> Co-authored-by: Pali Rohár <pali@kernel.org> Reviewed-by: Pali Rohár <pali@kernel.org> Co-authored-by: Jan Kara <jack@suse.cz> Reviewed-by: Jan Kara <jack@suse.cz> Cc: "Darrick J. Wong" <djwong@kernel.org> Cc: "G. Branden Robinson" <branden@debian.org> Cc: <linux-fsdevel@vger.kernel.org> Signed-off-by: Alejandro Colomar <alx@kernel.org>
12 daysman/: Use '.member' notation for referring to struct/union membersAlejandro Colomar2-45/+46
Signed-off-by: Alejandro Colomar <alx@kernel.org>
12 daysman/man2/madvise.2, man/man2const/PR_[GS]ET_THP_DISABLE.2const: document ↵Usama Arif3-14/+64
addition of PR_THP_DISABLE_EXCEPT_ADVISED PR_THP_DISABLE_EXCEPT_ADVISED extended PR_SET_THP_DISABLE to only provide THPs when advised. IOW, it allows individual processes to opt-out of THP = "always" into THP = "madvise", without affecting other workloads on the system. The series has been merged in [1]. Before [1], the following 2 calls were allowed with PR_SET_THP_DISABLE: prctl(PR_SET_THP_DISABLE, 0, 0, 0, 0); // reset THP setting. prctl(PR_SET_THP_DISABLE, 1, 0, 0, 0); // disable THPs completely. Now in addition to the 2 calls above, you can do: // disable THPs except madvise. prctl(PR_SET_THP_DISABLE, 1, PR_THP_DISABLE_EXCEPT_ADVISED, 0, 0); This patch documents the changes introduced due to the addition of PR_THP_DISABLE_EXCEPT_ADVISED flag: - PR_GET_THP_DISABLE returns a value whose bits indicate how THP-disable is configured for the calling thread (with or without PR_THP_DISABLE_EXCEPT_ADVISED). - PR_SET_THP_DISABLE now uses arg3 to specify whether to disable THP completely for the process, or disable except madvise (PR_THP_DISABLE_EXCEPT_ADVISED). Link: [1] <https://github.com/torvalds/linux/commit/9dc21bbd62edeae6f63e6f25e1edb7167452457b> Signed-off-by: Usama Arif <usamaarif642@gmail.com> Message-ID: <20251105134811.3170745-1-usamaarif642@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
12 dayssrc/bin/grepc: Remove unnecessary 'sort|uniq' callAlejandro Colomar1-6/+0
This was necessary when we used one pcre2grep(1) call per regex. but long ago we switched to a single pcre2grep(1) call for all regexes, which only prints each file once, and thus we don't need uniq(1). Signed-off-by: Alejandro Colomar <alx@kernel.org>
12 dayssrc/bin/grepc, man/man1/grepc.1: -r: Remove flagAlejandro Colomar2-9/+2
Colorizing is imperfect, so don't do it. Let the user colorize it by piping to grep(1), if needed. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-06etc/cpplint/cpplint.cfg: Ignore build/include_what_you_useAlejandro Colomar1-2/+1
We already run iwyu(1) on a separate target (lint-c-iwyu). Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-06src/bin/, man/man1/grepc{,_c}.1: Various improvements to the scripts; mainly ↵Alejandro Colomar10-321/+461
grepc(1) Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-06src/bin/grepc_c: Use non-capturing groups where possibleAlejandro Colomar1-4/+4
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-06src/bin/grepc_c: -te, -tue: Reuse grepc_c_t_sue_decl_()Alejandro Colomar1-4/+3
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-06src/bin/grepc_c: -tt: Add support for enums with underlying typeAlejandro Colomar1-2/+2
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-06src/bin/grepc_c: -tt, -tut: Reuse codeAlejandro Colomar1-2/+3
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-06src/bin/grepc_c: -tt: Remove negative lookaheadAlejandro Colomar1-1/+1
It was useful when we had separate calls to pcre2grep(1) for each pattern, but now that we call it once, it's fine to have overlapping regexes. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-06src/bin/grepc_c: -tut: Merge grepc_c_ut_su() and grepc_c_ut_td_su()Alejandro Colomar1-8/+2
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-06src/bin/grepc_c: Split grepc_c_body_() and grepc_c_u_body_()Alejandro Colomar1-11/+12
grepc_c_u_body_() consumes a lot of resources unnecessarily. This is especially true within grepc_c_t_td_braced(), which was crashing with relatively small code. The reason is that grepc_c_t_td_braced() searches for code where the identifier is last, so it needs to store a lot of code just in case. For that, an optimized grepc_c_body_() is more appropriate. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-06src/bin/grepc_c: -tt, -tut: Reuse grepc_c_body_()Alejandro Colomar1-7/+7
In the last case, it removes part of the regex, but I believe that wasn't necessary. Also, while at this, make the trailing of the regexes to be consistently '[^;];', which is simpler, and seems to work just fine. If we ever see some false positives or negatives with this regex, we should fix them all at once, and maybe put them in a helper function. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-06src/bin/grepc_c: -tt, -tut: Split regexesAlejandro Colomar1-4/+12
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-06src/bin/grepc_c: -te, -tue: Add support for enums with underlying typeAlejandro Colomar1-1/+1
This adds support for: enum : int { X }; Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-06src/bin/grepc_c: -te, -tue: Reuse code from function bodyAlejandro Colomar1-7/+9
A function body and an enum body are quite similar. The same regex works for both. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-06src/bin/grepc_c: -te, -tue: Reuse codeAlejandro Colomar1-2/+5
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-06src/bin/grepc_c: -tum: Split regexes for uses within function-like macros ↵Alejandro Colomar1-5/+10
and other macros Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-06src/bin/grepc_c: -tum: Merge grepc_c_m_repl_() and grepc_c_um_repl_()Alejandro Colomar1-5/+4
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-06src/bin/grepc_c: -tum: Split regex part for the replacement listAlejandro Colomar1-1/+4
While splitting, improve the regex part in two ways: - Use a non-capturing group. This improves performance. - Use negative lookahead instead of '[^\\]$'. This allows matching a macro where the searched identifier is the last thing in the replacement list. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-06src/bin/grepc_c: -tum: Reuse grepc_c_m_decl_()Alejandro Colomar1-1/+2
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-06src/bin/grepc_c: -tm: Split regexes, and reuse codeAlejandro Colomar1-2/+12
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-06src/bin/grepc_c: Organize regex parts togetherAlejandro Colomar1-2/+4
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-06src/bin/grepc_c: Rename grepc_c_uf_body_() => grepc_c_f_body_()Alejandro Colomar1-5/+5
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-06src/bin/grepc_c: Use grepc_c_uf_body_() to replace grepc_c_f_body_()Alejandro Colomar1-4/+3
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-06src/bin/grepc_c: -tuf: Reuse grepc_c_uf_body_()Alejandro Colomar1-1/+2
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-06src/bin/grepc_c: -tuf: Split regex for the function bodyAlejandro Colomar1-1/+3
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-06src/bin/grepc_c: -tuf: Fix regexAlejandro Colomar1-1/+1
Fixes: 91c6563acf5e (2025-10-29; "grepc, grepc.1: Add -tu to search for uses") Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-06src/bin/grepc_c: -tuf: Reuse grepc_c_fld_decl_()Alejandro Colomar1-1/+2
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-06src/bin/grepc_c: -tfld: Split regexAlejandro Colomar1-1/+4
This will be reused for -tuf. I copied '[\w\s,;[\]*\?:+-]*\)' from grepc_c_f_params_(). Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-06src/bin/grepc_c: -tfd: Split regex for the function bodyAlejandro Colomar1-1/+3
This regex part will be reused by other regexes. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-06src/bin/grepc_c: -tflp: Simplify implementationAlejandro Colomar1-1/+1
This reuses the regex used by -tfp. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-06src/bin/grepc_c: -tf: These can appear in a parameter list: '+', '-', '?', ':'Alejandro Colomar1-1/+1
This adds support for function declarators such as: int main(int argc, char *argv[argc + 1]); char * seprintf(char dst[], const char end[]; char dst[dst ? end - dst : 0], const char end[0], const char *restrict fmt, ...); Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-06src/bin/grepc_c: -tf: Use a named capturing groupAlejandro Colomar1-1/+1
This allows $identifier to contain capturing groups. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-06src/bin/grepc_c: Split regexAlejandro Colomar1-1/+5
The regex for a function declarator is too complex. Split it into helper functions that prints the parts of the regex, so that each one is easier to understand. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-06share/mk/: $SHELLCHECKFLAGS: Disable SC2028Alejandro Colomar1-1/+3
It's known that echo(1) doesn't expand anything. No need to warn. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-05src/bin/grepc_*: Use echo(1) instead of printf(1) where possibleAlejandro Colomar2-20/+20
echo(1) is fine as long as the first argument doesn't start with a dash. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-05src/bin/grepc_c: srcfix (align code)Alejandro Colomar1-3/+6
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-04src/bin/grepc: -r, -l: Don't color the output of -lAlejandro Colomar1-2/+1
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-04src/bin/grepc: -r: Simplify implementation, removing a conditionalAlejandro Colomar1-7/+3
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-04src/bin/grepc: -r: Reimplement with grep(1)Alejandro Colomar1-1/+1
With grep(1), we don't need to hard-code escape sequences. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-03src/bin/sortman: Fix portability issueAlejandro Colomar1-2/+2
POSIX allows blank characters before '!', but not after. Reported-by: <onf@disroot.org> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-03src/bin/grepc: -x: Simplify implementationAlejandro Colomar1-21/+3
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-03man/man1/grepc{,_c}.1: Split documentation into a manual page for the driverAlejandro Colomar2-102/+157
I've left grepc_mk undocumented for the moment, as it's still not as stable as the C driver. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-03src/bin/grepc{,_c,_mk}: Align code after splitAlejandro Colomar3-113/+113
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-03src/bin/grepc{,_c,_mk}: Split grepc(1) into helper programsAlejandro Colomar3-158/+221
These programs print the PCRE2 patterns used by grepc(1). This allows easily implementing different drivers for parsing different languages. It also allows easily using pcre2grep(1) in cases where grepc(1) might be limited; for example, searching in non-regular files, or passing other flags that grepc(1) doesn't pass to pcre2grep(1). Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-02src/bin/: Disable pathname expansionAlejandro Colomar4-4/+4
We don't use globs within these scripts, so disable them, for safety reasons. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-02src/bin/grepc: Add missing quotesAlejandro Colomar1-1/+1
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-02man/man1/grepc.1: SEE ALSO: Fix referencesAlejandro Colomar1-2/+2
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-02man/man1/grepc.1: ffixAlejandro Colomar1-2/+2
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-02src/bin/grepc: Handle xargs(1) errors properlyAlejandro Colomar1-8/+5
'xargs grep' is hard, because grep(1) exits with a status of 1 for no match, which is not an error, but xargs(1) takes that as an error, which is confused with other errors. This trick with sh(1) was suggested by Paul, and nicely solves this problem. We also need to change $opts to be a normal variable. We can't export bash array variables, and passing them to sh(1) -c is not great; escapes could be messed. It's more robust to use a normal variable. Link: <https://lists.gnu.org/archive/html/bug-grep/2025-10/msg00029.html> Suggested-by: Paul Eggert <eggert@cs.ucla.edu> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-02src/bin/grepc: Use the same error code as grep(1)Alejandro Colomar1-6/+9
Exit with 2 on error. If nothing matches, it's a success, and it exits with 0 normally. This is different from grep(1), but I don't know how to write the script to exit with 1 if nothing matches. This implementation may also ignore some xargs(1) errors. A future commit --with code suggested by Paul Eggert-- will fix this. Link: <https://software.codidact.com/posts/294883> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-11-02src/bin/grepc: Use if/then/fi instead of &&Alejandro Colomar1-24/+26
It will allow using 'set -Eeuo pipefail' and trap(1) ERR. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-31man/man1/grepc.1: EXAMPLES: Fix commandAlejandro Colomar1-1/+1
The output shows the line number, so it must have been called with -n. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-31src/bin/grepc: Refactor to avoid process substitutionAlejandro Colomar1-8/+5
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-31src/bin/grepc: Add defensive checkAlejandro Colomar1-1/+3
This is safer than silencing shellcheck(1). Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-31src/bin/grepc: Add defensive checkAlejandro Colomar1-2/+1
In theory, getopts(1) will make sure that no other values arrive here. However, it's easy to add a check, and that will be safer than silencing shellcheck(1). Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29src/bin/grepc: srcfix (Simplify case/esac)Alejandro Colomar1-10/+10
We don't need ';;&' since the commit referenced below. Fixes: 0ba68dd03564 (2024-09-19, 2025-10-29; "bin/grepc, grepc.1: -k: Remove flag") Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29Adapt grepc(1) to the Linux man-pages projectAlejandro Colomar2-0/+466
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29man/man1/grepc.1: Use a smaller exampleAlejandro Colomar1-15/+2
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29src/bin/grepc: Use if/else instead of && and ||Alejandro Colomar1-3/+5
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29src/bin/grepc: Quote variablesAlejandro Colomar1-23/+23
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29src/bin/grepc: Ignore shellcheck(1) diagnosticsAlejandro Colomar1-0/+4
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29src/bin/grepc: Use test(1) instead of [(1)Alejandro Colomar1-10/+10
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29man/man1/grepc.1, src/bin/grepc: Add copyright noticeAlejandro Colomar2-0/+7
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29src/bin/grepc: Handle errorsAlejandro Colomar1-0/+2
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29man/man1/grepc.1: Adapt to the Linux man-pages projectAlejandro Colomar1-20/+11
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29man/man1/grepc.1: Move manual page to man/man1/Alejandro Colomar1-0/+0
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29src/bin/grepc: Move script to src/bin/Alejandro Colomar1-0/+0
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29Import grepc(1) (script and manual page) from separate projectAlejandro Colomar2-0/+473
It started as a script in the Linux man-pages project, under scripts/ within scripts/bash_aliases. Eventually, I turned it into a large script, and moved it into a separate project, to be able to work on it more freely. The original scripts were removed from this project in commit c3752af0549c (2022-11-22; "bash_aliases: Remove grep_syscall(), grep_syscall_def(), and grep_glibc_prototype()"). Now, grepc(1) has stabilized, and I find it very useful for maintaining this project (as well as others), so let's merge it back. This will allow distros to package it sooner than if it remained as a standalone project. I've imported the git history (ignoring files we don't care about) with the help of git-filter-repo(1). Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: -tuf: Reuse grepc_c_f_decl_() for the function declaratorAlejandro Colomar1-1/+1
It's slightly different than the regex we were using, but I can't see a reason for it. It was probably due to forgetting to improve this regex. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: -tf: Factor out regex for function declaratorsAlejandro Colomar1-2/+3
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: -tt: Add word boundary around the identifierAlejandro Colomar1-1/+1
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: Add robustness against non-portable pathnamesAlejandro Colomar1-3/+3
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: Use <() instead of $()Alejandro Colomar1-1/+5
Files are simpler to handle. It results in less flags, and simpler command invocations. And it allows breaking the line more nicely, without having to break in the middle of a quoted region. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: -tfp, -tfd: Add support for forward-declarations of parametersAlejandro Colomar1-2/+2
This is currently a (very useful) GNU extension, and soon might become standard in C2y. Link: n3394 <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3394.pdf> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc, grepc.1: -k: Remove flagAlejandro Colomar2-17/+3
Just behave like grep(1) and pcre2grep(1). If the user wants to see it more nicely, they can do it themselves. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: bugfix: Pass options to grep(1) correctlyAlejandro Colomar1-1/+1
Fixes: 92dca8e97bfa ("bin/grepc: srcfix (Variables for options hold their '-')") Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/, man/: -m: Add flag, and pass it to pcre2grep(1)Alejandro Colomar2-2/+9
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: -x: c, mk: Add support for Makefile codeAlejandro Colomar1-84/+139
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: Ignore a shellcheck(1) warningAlejandro Colomar1-0/+1
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: srcfix (Compact cases a little bit)Alejandro Colomar1-16/+8
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: srcfix (Remove unnecessary comment)Alejandro Colomar1-1/+1
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: srcfix (Use printf '%s\n' instead of echo)Alejandro Colomar1-21/+21
Reported-by: terdon <https://linux.codidact.com/users/57088> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: srcfix (Use bash(1) array variable)Alejandro Colomar1-12/+3
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: srcfix (Remove grepc_search() and main())Alejandro Colomar1-43/+29
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: srcfix (Remove grepc_patterns())Alejandro Colomar1-27/+26
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: srcfix (Remove grepc_parse_cmd())Alejandro Colomar1-84/+79
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: srcfix (Simplify 'case's thanks to bash(1)'s ';;&')Alejandro Colomar1-75/+43
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: srcfix (Escape '?' in bash(1) case following getopts(1))Alejandro Colomar1-1/+1
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: srcfix (Compact single-line cases)Alejandro Colomar1-57/+19
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc, grepc.1: -c: Add option to count matchesAlejandro Colomar2-2/+15
As in pcre2grep(1) and grep(1). Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc, grepc.1: Rename option -c to -rAlejandro Colomar2-10/+11
This leaves -c unused, so we can add -c with the same meaning of grep(1): count. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29grepc.1: -c: Remove outdated sentenceAlejandro Colomar1-3/+0
Since 83cfbb6042d1 ("bin/grepc: Optimize"), we color also in ther types of code. Update the manual page. Fixes: 83cfbb6042d1 ("bin/grepc: Optimize") Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc, grepc.1: Use 'l' instead of 's' for Linux system callsAlejandro Colomar2-20/+20
To avoid confusion to users of other kernels. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: srcfix (Reorder some function definitions)Alejandro Colomar1-1/+1
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc, grepc.1: -n: Add option to control printing of line numbersAlejandro Colomar2-3/+11
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: srcfix (Actually create file with mktemp(1))Alejandro Colomar1-1/+1
This ensures we own the file, removing any races. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: srcfix (Add some tabs, and remove a function)Alejandro Colomar1-23/+22
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc, grepc.1: -A, -B, -C: Add flags for printing context.Alejandro Colomar2-1/+31
These flags are passed to pcre2grep(1). Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: srcfix (Variables for options hold their '-')Alejandro Colomar1-7/+14
This is to allow adding options that have arguments that are passed to pcre2grep(1). Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc, grepc.1: -h: Add option to suppress prefixing file namesAlejandro Colomar2-3/+10
Equivalent to grep(1)'s -h, except that we always default to -H behavior. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: srcfix (Add missing variable definition)Alejandro Colomar1-0/+1
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc, grepc.1: Remove -h flagAlejandro Colomar2-8/+1
There's already a manual page, and the short help from -h was quite unhelpful. I want to reuse -h for grep(1)'s meaning (don't print the filename). Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: srcfix (Change variable names)Alejandro Colomar1-19/+19
Use single-letter names for variables that hold command-line options. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc, grepc.1: Always enable recursive mode; remove -rAlejandro Colomar2-18/+15
The non-recursive behavior is so slow that it's quite useless. It is only useful when reading from standard input, but for several files it's useless. Make '-r' the default when any files are specified, and remove the flag (since now it's always enabled). This happens to bring back a behavior close to what we had before 2fb22befdfb9 ("Don't find files recursively"). Non-seekable files can still be read, if redirected to standard input. Update the example from the manual page to reflect current usage. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29Add recursive search back in with -rAlejandro Colomar2-3/+32
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29Allow specifying several filesAlejandro Colomar2-8/+3
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: Don't use pcre2grep(1)'s --labelAlejandro Colomar1-3/+1
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: Simplify (remove grepc_search())Alejandro Colomar1-9/+5
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: Compact codeAlejandro Colomar1-10/+2
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: OptimizeAlejandro Colomar2-236/+57
Call pcre2grep(1) only once, which allows removing named pipes. This is an important optimization, and will also allow accepting several file names in the command line (in a future commit). The source code is also significantly simplified. It has a caveat: this single call to pcre2grep(1) will consume more resources, and will crash on certain input files. The workaround is to restrict the search to just one or a few types of code. Document this in the manual page. This caveat only applies to very specific files, which so far I've only found in the Linux kernel source tree.
2025-10-29Don't find files recursivelyAlejandro Colomar2-56/+64
grep only one file (or stdin). The current implementation doesn't allow filterin standard input, which I miss some times. I'm removing this feature now, to be able to rewrite most of the program in a way that allows filtering stdin, and then will consider adding back a recursive mode if necessary. Also, don't remove the two blanks at the start of the output, for consistency when calling this program via xargs(1), which will become more common now that it only handles single files. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29Remove '-g' optionAlejandro Colomar2-14/+2
This program shouldn't know about file names. If that is wanted, use something like `find ... | grep ... | xargs grepc ...`. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29Remove '-x' optionAlejandro Colomar2-19/+1
This program shouldn't know about file extensions. If that is wanted, use something like `find ... | grep ... | xargs grepc ...`. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc, grepc.1: -tmf, -tmo: Add options to find only function-like ↵Alejandro Colomar2-10/+24
macros, or other macros Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: Shorten function namesAlejandro Colomar1-43/+43
Also, use names consistent with the command-line option arguments. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: Shorten variable namesAlejandro Colomar1-117/+96
Also, use names consistent with the command-line option arguments. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: Simplify (remove grepc_use_func())Alejandro Colomar1-13/+11
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: Simplify (remove grepc_use_type())Alejandro Colomar1-16/+18
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: Simplify (remove grepc_type())Alejandro Colomar1-18/+24
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: Simplify (remove grepc_type_typedef())Alejandro Colomar1-8/+2
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: Simplify (remove grepc_macro())Alejandro Colomar1-12/+10
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: Compact one-liner definitionsAlejandro Colomar1-26/+5
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: Simplify (remove grepc_glibc_func_def())Alejandro Colomar1-14/+14
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: Improve error messagesAlejandro Colomar1-11/+7
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: Transform some if's to simpler test&&Alejandro Colomar1-39/+26
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: Simplify (remove grepc_use())Alejandro Colomar1-26/+15
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: Simplify (remove grepc_glibc_func())Alejandro Colomar1-20/+11
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: Simplify (remove grepc_linux_func())Alejandro Colomar1-20/+11
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: Simplify (remove grepc_func())Alejandro Colomar1-36/+28
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29bin/grepc: Simplify (remove grepc_search_default())Alejandro Colomar1-56/+50
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29Use pcre2grep(1) instead of pcregrep(1)Alejandro Colomar2-3/+3
PCRE are EOL. Long live PCRE2. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29Use recursion to improve matching of function parameter listsAlejandro Colomar1-4/+4
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29Support parenthesized function namesAlejandro Colomar1-2/+2
This creates some false positives, but with appropriate flags, those can be removed. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-10-29grepc, grepc.1: -tg, -tgp, -tgd: Add more support for glibc internal names ↵Alejandro Colomar2-2/+62
of libc functions Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc: -tm: Fix finding macros defined as emptyAlejandro Colomar1-2/+2
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc, grepc.1: -c: Add flag to color usesAlejandro Colomar2-11/+45
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc: Remove constraints in the file prefilteringAlejandro Colomar1-1/+1
To make -tu work correctly, which doesn't have the word-boundary constraint. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc: -tut: Fix regex for braces in the same line as 'struct'Alejandro Colomar1-1/+1
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc: Read in the helperAlejandro Colomar1-35/+19
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc: Don't search underlying structure of a typedefAlejandro Colomar1-14/+0
In some cases it might be nice, but in some other cases, it might cause a lot of code to be printed. Let the user explicitly search for it or not in a separate run. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc: Fix glitch with incorrectly indented codeAlejandro Colomar1-4/+4
Avoid this glich from glibc: ./sysdeps/unix/sysv/linux/x86/sys/ucontext.h:133: typedef struct { gregset_t __ctx(gregs); /* Note that fpregs is a pointer. */ fpregset_t __ctx(fpregs); __extension__ unsigned long long __reserved1 [8]; } mcontext_t; /* Userlevel context. */ typedef struct ucontext_t { unsigned long int __ctx(uc_flags); struct ucontext_t *uc_link; stack_t uc_stack; mcontext_t uc_mcontext; sigset_t uc_sigmask; struct _libc_fpstate __fpregs_mem; __extension__ unsigned long long int __ssp[4]; } ucontext_t; Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc: Fix some typedef corner casesAlejandro Colomar1-3/+3
- Typedefs to arrays of structures. - Typedefs to structures of the same name. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc: Improve regexesAlejandro Colomar1-16/+16
- Use the same ammount of spaces for the closing brace as for the opening brace. - Fix position of attributes. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc: bugfixAlejandro Colomar1-2/+2
SC2068: Double quote array expansions to avoid re-splitting elements. Reported-by: shellcheck(1) Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc: srcfixAlejandro Colomar1-1/+1
SC2124: Use $* instead of $@ to concatenate. Reported-by: shellcheck(1) Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc: srcfixAlejandro Colomar1-1/+1
SC2004: $/${} is unnecessary on arithmetic variables. Reported-by: shellcheck(1) Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc, grepc.1: Add -i flag as in grep(1)Alejandro Colomar2-8/+16
Also, add some symmetry between ${iflag} and ${lflag}. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc, grepc.1: Remove -tu from the defaultsAlejandro Colomar2-3/+2
Normally, one either wants to see a declaration/definition, or its uses, but not both at the same time. Also, there are usually many more use sites than than definitions, and therefore definitions are shadowed between all the noise. Restrict the default to declarations and definitions, which in my experience seems to be the most common use case. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc, grepc.1: -tu: Allow searching special charactersAlejandro Colomar2-14/+22
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc: Fix grepc_type_typedef_underlying_struct_union_enumAlejandro Colomar1-26/+43
When it calls grepc_type_struct_union_enum(), it needs to use a different file list, since it's searching for an identifier different from the one passed in the command line. Also, while at it, improve the quoting of the pattern passed to pcregrep(1). Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc: -tt: Find typedefs to function pointersAlejandro Colomar1-0/+10
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc: tfixAlejandro Colomar1-1/+1
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc: srcfixAlejandro Colomar1-1/+1
Sort alphabetically the optstring. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc: Allow a pattern to start with '-'Alejandro Colomar1-5/+5
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc, grepc.1: -t...: Allow more granularityAlejandro Colomar2-2/+105
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc.1: wfixAlejandro Colomar1-2/+2
2025-10-29grepc, grepc.1: wfixAlejandro Colomar2-12/+12
Rename functions to have different starting letters. Also rename the macro functions to more closely match ISO C nomenclature. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc, grepc.1: -tu: Search also within enum and type definitionsAlejandro Colomar2-2/+51
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc: grepc_enum_constant: Fix edge casesAlejandro Colomar1-3/+3
Most importantly, typedef enum. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc, grepc.1: Add -l flag as in grep(1)Alejandro Colomar2-3/+19
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc: grepc_use_macro: tfixAlejandro Colomar1-1/+1
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc.1: ffixAlejandro Colomar1-1/+1
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc, grepc.1: Add -tu to search for usesAlejandro Colomar2-1/+63
Reported-by: наб <nabijaczleweli@nabijaczleweli.xyz> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc: grepc_macro_*: Remove a few false positivesAlejandro Colomar1-2/+2
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc: srcfixAlejandro Colomar1-13/+13
Use alphabetic order. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc, grepc.1: Add -k option for a more compact outputAlejandro Colomar2-3/+16
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc, grepc.1: Add -t option to restrict the search to a type of code.Alejandro Colomar2-3/+78
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc: srcfixAlejandro Colomar1-43/+43
Improve grouping so that adding flags for running the different functions is simple. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc, grepc.1: Don't print leading blank lines.Alejandro Colomar2-12/+13
Also, update the manual page EXAMPLES regarding blank lines. Reported-by: наб <nabijaczleweli@nabijaczleweli.xyz> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc.1: SYNOPSIS: ffixAlejandro Colomar1-2/+2
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc, grepc.1: Add optional FILE trailing argumentsAlejandro Colomar2-6/+30
Reported-by: наб <nabijaczleweli@nabijaczleweli.xyz> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc, grepc.1: -g: Add option to restrict search to files tracked by gitAlejandro Colomar2-2/+14
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc, grepc.1: -x: Add option to edit file extensionAlejandro Colomar2-4/+18
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc, grepc.1: -h: Add option to print the usage message.Alejandro Colomar2-12/+43
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc: Usage: ffixAlejandro Colomar1-1/+1
Using caps instead of <> will be nicer when we add options and optional arguments for the files/directories: Usage: grepc [OPTION]... IDENTIFIER [FILE]... vs Usage: grepc [<option>]... IDENTIFIER [<file>]... Also, it's what pcregrep(1) and GNU grep(1) use, so it's good to use the same syntax here. Reported-by: наб <nabijaczleweli@nabijaczleweli.xyz> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc.1: wfixAlejandro Colomar1-2/+1
Reported-by: наб <nabijaczleweli@nabijaczleweli.xyz> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc: Simplify escaping \Alejandro Colomar1-2/+2
Reported-by: наб <nabijaczleweli@nabijaczleweli.xyz> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc: Use -r option to read(1)Alejandro Colomar1-1/+1
Let's fall on the safe side. Reported-by: наб <nabijaczleweli@nabijaczleweli.xyz> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc: Make it portable to sh(1)Alejandro Colomar1-23/+23
Reported-by: наб <nabijaczleweli@nabijaczleweli.xyz> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc: Use a portable shebangAlejandro Colomar1-1/+1
Reported-by: наб <nabijaczleweli@nabijaczleweli.xyz> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc: Remove spurious blank linesAlejandro Colomar1-7/+7
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc: Remove blank line between header and codeAlejandro Colomar1-1/+1
Reported-by: наб <nabijaczleweli@nabijaczleweli.xyz> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc: grepc_linux_syscall_def: Improve readability of regexAlejandro Colomar1-1/+1
This improves the readability of the regex, and also the robustness, at the cost of just a few ms. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc: grepc_find_files: Get a reduced list of files onceAlejandro Colomar1-18/+27
Instead of running find and grep -l for every function, store the result in a temporary file for reuse in all functions. This is a considerable speedup, between 3x and 10x in some tests within the Linux kernel source code. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc: Fix some corner casesAlejandro Colomar1-2/+2
Those two spaces are for handling some insane GNU style. Those are always spaces, so let's use ' ' instead of '\s\s' to make sure we don't match two tabs, or things like that. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc.1: ffixAlejandro Colomar1-4/+4
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc.1: Add break points in URIAlejandro Colomar1-1/+1
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc.1: EXAMPLES: Add example with nxt_sprintfAlejandro Colomar1-0/+26
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc.1: Add manual pageAlejandro Colomar1-0/+29
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc: Use '' when possibleAlejandro Colomar1-10/+10
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc: Fix some corner casesAlejandro Colomar1-4/+4
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
2025-10-29grepc: grepc_type_*: Fix some typedef corner casesAlejandro Colomar1-8/+8
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>