[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [bug-gnulib] badly sorted #include directives
From: |
Bruno Haible |
Subject: |
Re: [bug-gnulib] badly sorted #include directives |
Date: |
Tue, 25 Apr 2006 13:58:50 +0200 |
User-agent: |
KMail/1.5 |
Ben Pfaff wrote:
> gnulib-tool appears to blindly sort the list of #include
> directives it prints. When the list contains #if...#endif, that
> makes the output funny, e.g.:
>
> You may need to add #include directives for the following .h files.
> #endif
> #if HAVE_MBRTOWC
> #if HAVE_WCHAR_H && HAVE_WCTYPE_H
> #include "c-ctype.h"
> #include "c-strtod.h"
> #include "error.h"
> [...]
>
> Of course, it's harmless, but it looks funny.
I'm committing this fix, that additionally will sort all the #include <...>
before all the #include "..." (as is common gnulib style).
Bruno
2006-04-25 Bruno Haible <address@hidden>
* gnulib-tool (func_import): Output the include directives in three
blocks, sorted separately.
Reported by Ben Pfaff <address@hidden>.
*** gnulib-tool 24 Apr 2006 11:35:07 -0000 1.109
--- gnulib-tool 25 Apr 2006 11:58:15 -0000
***************
*** 1453,1461 ****
echo "Finished."
echo
echo "You may need to add #include directives for the following .h files."
! for module in $modules; do
! func_get_include_directive "$module"
! done | LC_ALL=C sort -u | sed -e '/^$/d;' -e 's/^/ /'
echo
echo "Don't forget to"
echo " - add \"$sourcebase/Makefile\" to AC_CONFIG_FILES in $configure_ac,"
--- 1453,1482 ----
echo "Finished."
echo
echo "You may need to add #include directives for the following .h files."
! (
! # First the #include <...> directives without #ifs, sorted for convenience.
! for module in $modules; do
! if func_get_include_directive "$module" | grep '^#if' >/dev/null; then
! :
! else
! func_get_include_directive "$module" | grep -v 'include "'
! fi
! done | LC_ALL=C sort -u
! # Then the #include "..." directives without #ifs, sorted for convenience.
! for module in $modules; do
! if func_get_include_directive "$module" | grep '^#if' >/dev/null; then
! :
! else
! func_get_include_directive "$module" | grep 'include "'
! fi
! done | LC_ALL=C sort -u
! # Then the #include directives that are surrounded by #ifs. Not sorted.
! for module in $modules; do
! if func_get_include_directive "$module" | grep '^#if' >/dev/null; then
! func_get_include_directive "$module"
! fi
! done
! ) | sed -e '/^$/d;' -e 's/^/ /'
echo
echo "Don't forget to"
echo " - add \"$sourcebase/Makefile\" to AC_CONFIG_FILES in $configure_ac,"