X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=README;h=492827a03e039d3008081d9620f2061d777ea35c;hb=e1cbfb6b2aee287a925901f3e0466d2e5b65c8b7;hp=4b699a7a230d2f718361de34efc89001b7510576;hpb=10cecf2f783bf0504f05947787495a0d2a75db04;p=gnulib.git diff --git a/README b/README index 4b699a7a2..492827a03 100644 --- a/README +++ b/README @@ -49,6 +49,10 @@ git resources: http://www.kernel.org/pub/software/scm/git/docs/tutorial.html FAQ: http://git.or.cz/gitwiki/GitFaq +When you use "git annotate" or "git blame" with gnulib, it's recommended that +you use the "-w" option, in order to ignore massive whitespace changes that +happened in 2009. + CVS checkouts are also supported: $ cvs -d :pserver:anonymous@pserver.git.sv.gnu.org:/gnulib.git co -d gnulib HEAD @@ -110,6 +114,50 @@ available under LGPL via a "License: LGPL" information in the projects' modules/ file. +Indent with spaces, not TABs +---------------------------- +We use space-only indentation in nearly all files. This includes all +*.h, *.c, *.y files, except for the regex module. Makefile and ChangeLog +files are excluded, since TAB characters are part of their format. + +In order to tell your editor to produce space-only indentation, you +can use these instructions. + + * For Emacs: Add these lines to your Emacs initialization file + ($HOME/.emacs or similar): + + ;; In gnulib, indent with spaces everywhere (not TABs). + ;; Exceptions: Makefile and ChangeLog modes. + (add-hook 'find-file-hook '(lambda () + (if (and buffer-file-name + (string-match "/gnulib\\>" (buffer-file-name)) + (not (string-equal mode-name "Change Log")) + (not (string-equal mode-name "Makefile"))) + (setq indent-tabs-mode nil)))) + + * For vi (vim): Add these lines to your $HOME/.vimrc file: + + " Don't use tabs for indentation. Spaces are nicer to work with. + set expandtab + + For Makefile and ChangeLog files, compensate this by adding this to + your $HOME/.vim/after/indent/make.vim and + $HOME/.vim/after/indent/changelog.vim files: + + " Use tabs for indentation, regardless of the global setting. + set noexpandtab + + * For Eclipse: In the "Window|Preferences" dialog (or "Eclipse|Preferences" + dialog on MacOS), + 1. Under "General|Editors|Text Editors", select the "Insert spaces for tabs" + checkbox. + 2. Under "C/C++|Code Style", select a code style profile that has the + "Indentation|Tab policy" combobox set to "Spaces only", such as the + "GNU [built-in]" policy. + +If you use the GNU indent program, pass it the option '--no-tabs'. + + How to add a new module ----------------------- * Add the header files and source files to lib/. @@ -173,13 +221,16 @@ some point we may start assuming a C89 library as well. Because we assume a freestanding C89 compiler, Gnulib code can include , , , and unconditionally. It -can also include hosted headers like that were present in -Unix Version 7 and are thus widely available. Similarly, many modules -include even though it's not even in C99; that's OK -since has been around nearly forever. and +can also assume the existence of , , , +, , , , , and +. Some of these headers, such as , were present in +Unix Version 7 and are thus widely available. and were not in Unix Version 7, so they weren't universally available on ancient hosts, but they are both in SunOS 4 (the oldest platform still in relatively-common use) so Gnulib assumes them now. +Similarly, many modules include even though it's not +even in C99; that's OK since has been around nearly +forever. Even if the include files exist, they may not conform to C89. However, GCC has a "fixincludes" script that attempts to fix most @@ -269,8 +320,7 @@ branches to help promote this. ----- -Copyright 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free -Software Foundation, Inc. +Copyright 2001, 2003-2011 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