X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=MODULES.html.sh;h=00119c288d2665afdac40fb2784f745918afb4a7;hb=cc4f7d31b0b44d17bb3103e9d5b259e557dc63bd;hp=f3bf6eba050097fd60381a165cd5bf83207f2423;hpb=05d41de20520184b0ec40ed80213260190a433d0;p=gnulib.git diff --git a/MODULES.html.sh b/MODULES.html.sh index f3bf6eba0..00119c288 100755 --- a/MODULES.html.sh +++ b/MODULES.html.sh @@ -1,6 +1,6 @@ #!/bin/sh # -# Copyright (C) 2002-2005 Free Software Foundation, Inc. +# Copyright (C) 2002-2007 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -17,7 +17,7 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # -# Usage: MODULES.html.sh > MODULES.html +# Usage: MODULES.html.sh [--cvs-urls|--git-urls] > MODULES.html # Extend the PATH so that gnulib-tool is found. PATH=`dirname "$0"`:$PATH; export PATH @@ -28,6 +28,25 @@ case $USER in POSIX2001_URL='file:/packages/www/www.opengroup.org/susv3' ;; esac +repo_url_prefix= +repo_url_suffix= +if test $# != 0; then + case "$1" in + --cvs-urls) + # Generate URLs to the official gnulib CVS repository. + repo_url_prefix='http://cvs.sv.gnu.org/viewcvs/*checkout*/gnulib/' + repo_url_suffix='?root=gnulib&content-type=text/plain' + ;; + --git-urls) + # Generate URLs to the official gnulib git repository. + repo_url_prefix='http://git.sv.gnu.org/gitweb/?p=gnulib.git;a=blob_plain;f=' + repo_url_suffix='' + ;; + esac +fi +# For sed replacements: Escape the '&'. +repo_url_suffix_repl=`echo "$repo_url_suffix" | sed -e 's,[&],\\\&,'` + sed_lt='s,<,\<,g' sed_gt='s,>,\>,g' sed_escape_dot='s,\.,\\.,g' @@ -1243,8 +1262,62 @@ yn ' | sed -e "$sed_alt1" | tr -d "$trnl" | sed -e "$sed_alt2" -e "$sed_alt3"` indent="" -missed_modules=`gnulib-tool --list` -missed_files=`ls -d lib/* m4/* | sed -e /CVS/d -e /README/d -e /ChangeLog/d -e /Makefile/d -e /TODO/d -e '/~$/d'` +seen_modules= +seen_files= + +# func_exit STATUS +# exit with status +func_exit () +{ + (exit $1); exit $1 +} + +# func_tmpdir +# creates a temporary directory. +# Sets variable +# - tmp pathname of freshly created temporary directory +func_tmpdir () +{ + # Use the environment variable TMPDIR, falling back to /tmp. This allows + # users to specify a different temporary directory, for example, if their + # /tmp is filled up or too small. + : ${TMPDIR=/tmp} + { + # Use the mktemp program if available. If not available, hide the error + # message. + tmp=`(umask 077 && mktemp -d "$TMPDIR/MDXXXXXX") 2>/dev/null` && + test -n "$tmp" && test -d "$tmp" + } || + { + # Use a simple mkdir command. It is guaranteed to fail if the directory + # already exists. $RANDOM is bash specific and expands to empty in shells + # other than bash, ksh and zsh. Its use does not increase security; + # rather, it minimizes the probability of failure in a very cluttered /tmp + # directory. + tmp=$TMPDIR/MD$$-$RANDOM + (umask 077 && mkdir "$tmp") + } || + { + echo "$0: cannot create a temporary directory in $TMPDIR" >&2 + func_exit 1 + } +} + +# func_append var value +# appends the given value to the shell variable var. +if ( foo=bar; foo+=baz && test "$foo" = barbaz ) >/dev/null 2>&1; then + # Use bash's += operator. It reduces complexity of appending repeatedly to + # a single variable from O(n^2) to O(n). + func_append () + { + eval "$1+=\"\$2\"" + } +else + func_append () + { + eval "$1=\"\$$1\$2\"" + } +fi # func_echo line # outputs line with indentation. @@ -1337,7 +1410,11 @@ func_module () element=''$1'' func_echo "$element" - element=`gnulib-tool --extract-description $1 | sed -e "$sed_lt" -e "$sed_gt" -e "$sed_remove_trailing_empty_line" | sed -e 's,^, ,' | sed -e 's,\([^a-zA-Z]\)'"${posix_functions}"'(),\1\2(),g' | sed -e 's,^ ,,'` + element=`gnulib-tool --extract-description $1 \ + | sed -e "$sed_lt" -e "$sed_gt" -e "$sed_remove_trailing_empty_line" \ + -e 's,^, ,' \ + -e 's,\([^a-zA-Z]\)'"${posix_functions}"'(),\1\2(),g' \ + -e 's,^ ,,'` func_echo "$element" func_end TR @@ -1346,39 +1423,55 @@ func_module () func_begin TR - element=''$1'' + element=''$1'' func_echo "$element" - element=`gnulib-tool --extract-include-directive $1 | sed -e "$sed_lt" -e "$sed_gt" -e "$sed_remove_trailing_empty_line" | sed -e 's,^#include "\(.*\)"$,#include "\1",' -e 's,^#include <'"${posix_headers}"'\.h>$,#include \<\1.h\>,' | sed -e 's/$/
/' | tr -d "$trnl" | sed -e 's/
$//'` + includes=`gnulib-tool --extract-include-directive $1` + files=`gnulib-tool --extract-filelist $1` + element=`echo "$includes" \ + | sed -e "$sed_lt" -e "$sed_gt" -e "$sed_remove_trailing_empty_line" \ + -e 's,^#include "\(.*\)"$,#include "\1",' \ + -e 's,^#include <'"${posix_headers}"'\.h>$,#include \<\1.h\>,' \ + -e 's/$/
/' | tr -d "$trnl" | sed -e 's/
$//'` test -n "$element" || element='---' func_echo "$element" sed_choose_unconditional_nonstandard_include='s,^#include "\(.*\)"$,\1,p' - includefile=`gnulib-tool --extract-include-directive $1 | sed -n -e "$sed_choose_unconditional_nonstandard_include" | sed -e "$sed_escape_dot" | tr -d "$trnl"` + includefile=`echo "$includes" \ + | sed -n -e "$sed_choose_unconditional_nonstandard_include" \ + | sed -e "$sed_escape_dot" | tr -d "$trnl"` sed_choose_lib_files='s,^lib/\(.*\)$,\1,p' - element=`gnulib-tool --extract-filelist $1 | sed -e '/^$/d' | sed -n -e "$sed_choose_lib_files" | sed -e '/^'"${includefile}"'$/d' | sed -e 's,^\(.*\)$,\1,' | sed -e 's/$/
/' | tr -d "$trnl" | sed -e 's/
$//'` + element=`echo "$files" \ + | sed -e '/^$/d' \ + | sed -n -e "$sed_choose_lib_files" \ + | sed -e '/^'"${includefile}"'$/d' \ + -e 's,^\(.*\)$,\1,' \ + -e 's/$/
/' | tr -d "$trnl" | sed -e 's/
$//'` test -n "$element" || element='---' func_echo "$element" sed_choose_m4_files='s,^m4/\(.*\)$,\1,p' - element=`(gnulib-tool --extract-filelist $1 | sed -e "$sed_remove_trailing_empty_line" | sed -n -e "$sed_choose_m4_files" | sed -e '/^onceonly/d' | sed -e 's,^\(.*\)$,\1,'; gnulib-tool --extract-autoconf-snippet $1 | sed -e "$sed_remove_trailing_empty_line") | sed -e 's/$/
/' | tr -d "$trnl" | sed -e 's/
$//'` + element=`(echo "$files" \ + | sed -e "$sed_remove_trailing_empty_line" \ + | sed -n -e "$sed_choose_m4_files" \ + | sed -e '/^onceonly/d' \ + -e 's,^\(.*\)$,\1,'; \ + gnulib-tool --extract-autoconf-snippet $1 \ + | sed -e "$sed_remove_trailing_empty_line") \ + | sed -e 's/$/
/' | tr -d "$trnl" | sed -e 's/
$//'` test -n "$element" || element='---' func_echo "$element" - element=`gnulib-tool --extract-dependencies $1 | sed -e "$sed_remove_trailing_empty_line" | sed -e 's/$/
/' | tr -d "$trnl" | sed -e 's/
$//'` + element=`gnulib-tool --extract-dependencies $1 \ + | sed -e "$sed_remove_trailing_empty_line" \ + -e 's/$/
/' | tr -d "$trnl" | sed -e 's/
$//'` test -n "$element" || element='---' func_echo "$element" func_end TR - missed_modules=`echo "$missed_modules" | sed -e '/^'"$1"'$/d'` - - files=`gnulib-tool --extract-filelist $1` - sed_removal_prefix='s,^,/^,' - sed_removal_suffix='s,$,\$/d,' - sed_remove_files=`echo '{'; for file in $files; do echo $file | sed -e "$sed_escape_dot" -e "$sed_escape_slash" | sed -e "$sed_removal_prefix" -e "$sed_removal_suffix"; done; echo '}'` - missed_files=`echo "$missed_files" | sed -e "$sed_remove_files"` - + func_append seen_modules " $1" + func_append seen_files " $files" fi } @@ -1397,9 +1490,6 @@ func_all_modules () func_echo "$element" func_begin_table - func_module c-bs-a - func_module assert - func_module dummy func_module exit func_module atexit func_module strtod @@ -1431,6 +1521,7 @@ func_all_modules () func_echo "$element" func_begin_table + func_module assert func_module verify func_end_table @@ -1449,6 +1540,16 @@ func_all_modules () func_module pagealign_alloc func_end_table + element="Sorting functions " + element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` + func_section_wrap ansic_enh_stdlib_sorting + func_wrap H3 + func_echo "$element" + + func_begin_table + func_module mpsort + func_end_table + element="Date and time " element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap ansic_enh_time_datetime @@ -1529,14 +1630,18 @@ func_all_modules () func_module stpncpy func_module c-strcase func_module strcase + func_module c-strcaseeq func_module c-strcasestr func_module strcasestr func_module strchrnul func_module strdup + func_module streq func_module strnlen func_module strnlen1 func_module strndup func_module strsep + func_module c-strstr + func_module trim #func_module fstrcmp func_module xstrndup func_end_table @@ -1552,6 +1657,7 @@ func_all_modules () func_module c-strtold func_module xstrtod func_module xstrtol + func_module xstrtold func_end_table element="Date and time " @@ -1604,6 +1710,28 @@ func_all_modules () func_module long-options func_end_table + element="Container data structures" + element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` + func_section_wrap ansic_ext_container + func_wrap H3 + func_echo "$element" + + func_begin_table + func_module list + func_module array-list + func_module carray-list + func_module linked-list + func_module avltree-list + func_module rbtree-list + func_module linkedhash-list + func_module avltreehash-list + func_module rbtreehash-list + func_module oset + func_module array-oset + func_module avltree-oset + func_module rbtree-oset + func_end_table + element="Cryptographic computations" element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap ansic_ext_crypto @@ -1644,14 +1772,15 @@ func_all_modules () func_wrap H2 func_echo "$element" - element="Keywords" + element="Core language properties" element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` - func_section_wrap isoc_sup_keywords + func_section_wrap isoc_core_properties func_wrap H3 func_echo "$element" func_begin_table - func_module restrict + func_module flexmember + func_module vararrays func_end_table element="Sizes of integer types " @@ -1661,10 +1790,19 @@ func_all_modules () func_echo "$element" func_begin_table - func_module ullong_max func_module size_max func_end_table + element="Variable arguments " + element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` + func_section_wrap isoc_sup_stdarg + func_wrap H3 + func_echo "$element" + + func_begin_table + func_module stdarg + func_end_table + element="Boolean type and values " element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap isoc_sup_stdbool @@ -1718,6 +1856,26 @@ func_all_modules () func_module strtoumax func_end_table + element="Extended multibyte and wide character utilities " + element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` + func_section_wrap isoc_sup_wchar + func_wrap H3 + func_echo "$element" + + func_begin_table + func_module wchar + func_end_table + + element="Wide character classification and mapping utilities " + element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` + func_section_wrap isoc_sup_wctype + func_wrap H3 + func_echo "$element" + + func_begin_table + func_module wctype + func_end_table + element="Mathematics " element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap isoc_sup_math @@ -1748,6 +1906,7 @@ func_all_modules () func_echo "$element" func_begin_table + func_module intprops func_module inttostr func_module xstrtoimax func_module xstrtoumax @@ -1774,6 +1933,7 @@ func_all_modules () func_begin_table func_module chown func_module dup2 + func_module fchdir func_module ftruncate func_module getaddrinfo func_module getcwd @@ -1783,21 +1943,46 @@ func_all_modules () func_module getsubopt func_module gettimeofday func_module inet_ntop + func_module inet_pton func_module mkdir - func_module mkstemp func_module mkdtemp + func_module mkstemp func_module poll func_module readlink func_module lstat + func_module tempname func_module time_r func_module timespec func_module nanosleep func_module regex func_module rename func_module rmdir + func_module sigprocmask func_module ssize_t + func_module strptime func_module strtok_r + func_module sys_stat + func_module sys_time + func_module tsearch + func_module unistd func_module utime + func_module wcwidth + func_end_table + + element="Compatibility checks for POSIX:2001 functions" + func_section_wrap posix_compat + func_wrap H2 + func_echo "$element" + + func_begin_table + func_module d-ino + func_module d-type + func_module link-follow + func_module rename-dest-slash + func_module rmdir-errno + func_module unlink-busy + func_module winsz-ioctl + func_module winsz-termios func_end_table element="Enhancements for POSIX:2001 functions" @@ -1841,10 +2026,13 @@ func_all_modules () func_module acl func_module backupfile func_module canonicalize + func_module canonicalize-lgpl + func_module clean-temp func_module copy-file func_module cycle-check func_module fsusage func_module dirfd + func_module double-slash-root func_module euidaccess func_module file-type func_module fileblocks @@ -1853,16 +2041,21 @@ func_all_modules () func_module fts func_module fts-lgpl func_module isdir + func_module lchmod func_module lchown + func_module mkancesdirs func_module mkdir-p func_module modechange func_module mountlist + func_module openat func_module pathname func_module pathmax func_module same func_module save-cwd func_module savedir + func_module savewd func_module stat-time + func_module tmpdir func_module unlinkdir func_module utimecmp func_module utimens @@ -1883,6 +2076,7 @@ func_all_modules () func_module full-read func_module full-write func_module binary-io + func_module isapipe func_end_table element="File stream based Input/Output" @@ -1892,11 +2086,14 @@ func_all_modules () func_echo "$element" func_begin_table - func_module fpending + func_module close-stream func_module closeout - func_module stdio-safer + func_module fopen-safer + func_module fpending func_module getpass func_module getpass-gnu + func_module stdlib-safer + func_module tmpfile-safer func_end_table element="Users and groups" @@ -1957,6 +2154,10 @@ func_all_modules () func_module gettext func_module gettext-h func_module iconv + func_module striconv + func_module xstriconv + func_module striconveh + func_module striconveha func_module iconvme func_module localcharset func_module hard-locale @@ -1967,11 +2168,152 @@ func_all_modules () func_module unicodeio func_module rpmatch func_module yesno + func_module linebreak + func_module bison-i18n + func_end_table + + element="Unicode string functions" + element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` + func_section_wrap posix_ext_unicode + func_wrap H3 + func_echo "$element" + + func_begin_table + func_module unitypes func_module ucs4-utf8 func_module ucs4-utf16 func_module utf8-ucs4 func_module utf16-ucs4 - func_module linebreak + func_module utf8-ucs4-safe + func_module utf16-ucs4-safe + func_module unistr/base + func_module unistr/u8-to-u16 + func_module unistr/u8-to-u32 + func_module unistr/u16-to-u8 + func_module unistr/u16-to-u32 + func_module unistr/u32-to-u8 + func_module unistr/u32-to-u16 + func_module unistr/u8-check + func_module unistr/u16-check + func_module unistr/u32-check + func_module unistr/u8-chr + func_module unistr/u16-chr + func_module unistr/u32-chr + func_module unistr/u8-cmp + func_module unistr/u16-cmp + func_module unistr/u32-cmp + func_module unistr/u8-cpy + func_module unistr/u16-cpy + func_module unistr/u32-cpy + func_module unistr/u8-cpy-alloc + func_module unistr/u16-cpy-alloc + func_module unistr/u32-cpy-alloc + func_module unistr/u8-endswith + func_module unistr/u16-endswith + func_module unistr/u32-endswith + func_module unistr/u8-mblen + func_module unistr/u16-mblen + func_module unistr/u32-mblen + func_module unistr/u8-mbtouc + func_module unistr/u16-mbtouc + func_module unistr/u32-mbtouc + func_module unistr/u8-mbtouc-safe + func_module unistr/u16-mbtouc-safe + func_module unistr/u32-mbtouc-safe + func_module unistr/u8-move + func_module unistr/u16-move + func_module unistr/u32-move + func_module unistr/u8-next + func_module unistr/u16-next + func_module unistr/u32-next + func_module unistr/u8-prev + func_module unistr/u16-prev + func_module unistr/u32-prev + func_module unistr/u8-set + func_module unistr/u16-set + func_module unistr/u32-set + func_module unistr/u8-startswith + func_module unistr/u16-startswith + func_module unistr/u32-startswith + func_module unistr/u8-stpcpy + func_module unistr/u16-stpcpy + func_module unistr/u32-stpcpy + func_module unistr/u8-stpncpy + func_module unistr/u16-stpncpy + func_module unistr/u32-stpncpy + func_module unistr/u8-strcat + func_module unistr/u16-strcat + func_module unistr/u32-strcat + func_module unistr/u8-strchr + func_module unistr/u16-strchr + func_module unistr/u32-strchr + func_module unistr/u8-strcmp + func_module unistr/u16-strcmp + func_module unistr/u32-strcmp + func_module unistr/u8-strcpy + func_module unistr/u16-strcpy + func_module unistr/u32-strcpy + func_module unistr/u8-strcspn + func_module unistr/u16-strcspn + func_module unistr/u32-strcspn + func_module unistr/u8-strdup + func_module unistr/u16-strdup + func_module unistr/u32-strdup + func_module unistr/u8-strlen + func_module unistr/u16-strlen + func_module unistr/u32-strlen + func_module unistr/u8-strmblen + func_module unistr/u16-strmblen + func_module unistr/u32-strmblen + func_module unistr/u8-strmbtouc + func_module unistr/u16-strmbtouc + func_module unistr/u32-strmbtouc + func_module unistr/u8-strncat + func_module unistr/u16-strncat + func_module unistr/u32-strncat + func_module unistr/u8-strncmp + func_module unistr/u16-strncmp + func_module unistr/u32-strncmp + func_module unistr/u8-strncpy + func_module unistr/u16-strncpy + func_module unistr/u32-strncpy + func_module unistr/u8-strnlen + func_module unistr/u16-strnlen + func_module unistr/u32-strnlen + func_module unistr/u8-strpbrk + func_module unistr/u16-strpbrk + func_module unistr/u32-strpbrk + func_module unistr/u8-strrchr + func_module unistr/u16-strrchr + func_module unistr/u32-strrchr + func_module unistr/u8-strspn + func_module unistr/u16-strspn + func_module unistr/u32-strspn + func_module unistr/u8-strstr + func_module unistr/u16-strstr + func_module unistr/u32-strstr + func_module unistr/u8-strtok + func_module unistr/u16-strtok + func_module unistr/u32-strtok + func_module unistr/u8-uctomb + func_module unistr/u16-uctomb + func_module unistr/u32-uctomb + func_module uniconv/base + func_module uniconv/u8-conv-from-enc + func_module uniconv/u16-conv-from-enc + func_module uniconv/u32-conv-from-enc + func_module uniconv/u8-strconv-from-enc + func_module uniconv/u16-strconv-from-enc + func_module uniconv/u32-strconv-from-enc + func_module uniconv/u8-strconv-to-enc + func_module uniconv/u16-strconv-to-enc + func_module uniconv/u32-strconv-to-enc + func_module uniconv/u8-strconv-from-locale + func_module uniconv/u16-strconv-from-locale + func_module uniconv/u32-strconv-from-locale + func_module uniconv/u8-strconv-to-locale + func_module uniconv/u16-strconv-to-locale + func_module uniconv/u32-strconv-to-locale func_end_table element="Executing programs" @@ -1999,6 +2341,7 @@ func_all_modules () func_module classpath func_module javacomp func_module javaexec + func_module javaversion #func_module gcj func_end_table @@ -2040,11 +2383,74 @@ func_all_modules () func_module readutmp func_module sig2str func_module sysexits + func_module verror func_module visibility func_end_table + + element="Support for building libraries and executables" + func_section_wrap build_lib + func_wrap H2 + func_echo "$element" + + func_begin_table + func_module absolute-header + func_module config-h + func_module configmake + func_module dummy + func_module elisp-comp + func_module ldd + func_module lib-ignore + func_module no-c++ + func_end_table + + element="Support for building documentation" + func_section_wrap build_doc + func_wrap H2 + func_echo "$element" + + func_begin_table + func_module fdl + func_module gendocs + func_module gpl + func_module lgpl + func_module regexprops-generic + func_end_table + + element="Support for maintaining and release projects" + func_section_wrap maintain + func_wrap H2 + func_echo "$element" + + func_begin_table + func_module gnupload + func_module maintainer-makefile + func_end_table + + element="Misc" + func_section_wrap misc + func_wrap H2 + func_echo "$element" + + func_begin_table + func_module host-os + func_module perl + func_module uptime + func_end_table } +func_tmpdir +trap 'exit_status=$? + if test "$signal" != 0; then + echo "caught signal $signal" >&2 + fi + rm -rf "$tmp" + exit $exit_status' 0 +for signal in 1 2 3 13 15; do + trap '{ signal='$signal'; func_exit 1; }' $signal +done +signal=0 + echo '' func_begin HTML @@ -2074,6 +2480,12 @@ func_all_modules in_toc= func_all_modules + +gnulib-tool --list > "$tmp/all-modules" +missed_modules=`for module in $seen_modules; do echo $module; done \ + | LC_ALL=C sort -u \ + | LC_ALL=C join -v 2 - "$tmp/all-modules"` + if test -n "$missed_modules"; then element="Unclassified modules - please update MODULES.html.sh" @@ -2089,6 +2501,11 @@ if test -n "$missed_modules"; then fi +LC_ALL=C ls -d lib/* m4/* | sed -e /CVS/d -e /README/d -e /ChangeLog/d -e /Makefile/d -e /TODO/d -e '/tags$/d' -e '/TAGS$/d' -e '/~$/d' > "$tmp/all-files" +missed_files=`for file in $seen_files; do echo $file; done \ + | LC_ALL=C sort -u \ + | LC_ALL=C join -v 2 - "$tmp/all-files"` + if test -n "$missed_files"; then element="Lone files - please create new modules containing them" @@ -2097,7 +2514,7 @@ if test -n "$missed_files"; then func_echo "$element" func_echo '
'
-  echo "$missed_files" | sed -e 's,^\(.*\)$,\1,'
+  echo "$missed_files" | sed -e 's,^\(.*\)$,\1,'
   echo '
' fi @@ -2124,3 +2541,15 @@ func_echo 'Generated from MODULES.html.sh on '`LC_ALL=C date +"%e % func_end BODY func_end HTML + +rm -rf "$tmp" +# Undo the effect of the previous 'trap' command. +trap '' 0 +trap 'func_exit $?' 1 2 3 13 15 + +exit 0 + +# Local Variables: +# indent-tabs-mode: nil +# whitespace-check-buffer-indent: nil +# End: