unistr/u8-strchr: Fix several bugs.
[gnulib.git] / README
diff --git a/README b/README
index 294c3f9..a00e241 100644 (file)
--- a/README
+++ b/README
@@ -19,7 +19,7 @@ script.  Since there is no installation procedure for Gnulib,
 gnulib-tool needs to be run directly in the directory that contains the
 Gnulib source code.  You can do this either by specifying the absolute
 filename of gnulib-tool, or by using a symbolic link from a
 gnulib-tool needs to be run directly in the directory that contains the
 Gnulib source code.  You can do this either by specifying the absolute
 filename of gnulib-tool, or by using a symbolic link from a
-place inside your PATH to the gnulib-tool file of your preferred 
+place inside your PATH to the gnulib-tool file of your preferred
 Gnulib checkout.  For example:
   $ ln -s $HOME/gnu/src/gnulib.git/gnulib-tool $HOME/bin/gnulib-tool
 
 Gnulib checkout.  For example:
   $ ln -s $HOME/gnu/src/gnulib.git/gnulib-tool $HOME/bin/gnulib-tool
 
@@ -32,8 +32,6 @@ git and CVS
 Gnulib is available for anonymous checkout.  In any Bourne-shell the
 following should work:
   $ git clone git://git.sv.gnu.org/gnulib.git
 Gnulib is available for anonymous checkout.  In any Bourne-shell the
 following should work:
   $ git clone git://git.sv.gnu.org/gnulib.git
-Or, if you prefer the CVS-like 'cogito' frontend to plain 'git':
-  $ cg clone git://git.sv.gnu.org/gnulib.git
 
 For a read-write checkout you need to have a login on savannah.gnu.org and be
 a member of the gnulib project at http://savannah.gnu.org/projects/gnulib .
 
 For a read-write checkout you need to have a login on savannah.gnu.org and be
 a member of the gnulib project at http://savannah.gnu.org/projects/gnulib .
@@ -51,21 +49,13 @@ git resources:
             http://www.kernel.org/pub/software/scm/git/docs/tutorial.html
   FAQ:      http://git.or.cz/gitwiki/GitFaq
 
             http://www.kernel.org/pub/software/scm/git/docs/tutorial.html
   FAQ:      http://git.or.cz/gitwiki/GitFaq
 
-cogito resources:
-  Overview: http://en.wikipedia.org/wiki/Cogito_(software)
-  Homepage: http://git.or.cz/cogito/
-  Download: http://kernel.org/pub/software/scm/cogito/
-  Tutorial: http://git.or.cz/course/
+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.
 
 
-For those among us who have tightly limited disk space and a fast network
-connection, CVS checkouts are also supported:
+CVS checkouts are also supported:
   $ cvs -d :pserver:anonymous@pserver.git.sv.gnu.org:/gnulib.git co -d gnulib HEAD
 
   $ cvs -d :pserver:anonymous@pserver.git.sv.gnu.org:/gnulib.git co -d gnulib HEAD
 
-CVS checkouts from before 2007-09-19 can be converted to the new read-only CVS
-location through commands like these:
-  $ find . -name Root       -exec sed --in-place 's|.*|:pserver:anonymous@pserver.git.sv.gnu.org:/gnulib.git|' {} ';'
-  $ find . -name Repository -exec sed --in-place 's|^gnulib|/srv/git/gnulib.git/HEAD|' {} ';'
-
 Gnulib is hosted on savannah.gnu.org.  The project page is
 http://savannah.gnu.org/projects/gnulib.
 
 Gnulib is hosted on savannah.gnu.org.  The project page is
 http://savannah.gnu.org/projects/gnulib.
 
@@ -76,8 +66,8 @@ Keeping Up-to-date
 The best way to work with Gnulib is to check it out of git.
 Subscribing to the bug-gnulib@gnu.org mailing list will help you to
 plan when to update your local copy of Gnulib (which you use to
 The best way to work with Gnulib is to check it out of git.
 Subscribing to the bug-gnulib@gnu.org mailing list will help you to
 plan when to update your local copy of Gnulib (which you use to
-maintain your software) from git.  To synchronize, you can use "git pull"
-or "cg update", or "cvs update -dP" if you are still using CVS.
+maintain your software) from git.  To synchronize, you can use "git pull",
+or "cvs update -dP" if you are still using CVS.
 
 Sometimes, using an updated version of Gnulib will require you to use
 newer versions of GNU Automake or Autoconf.  You may find it helpful
 
 Sometimes, using an updated version of Gnulib will require you to use
 newer versions of GNU Automake or Autoconf.  You may find it helpful
@@ -124,6 +114,50 @@ available under LGPL via a "License: LGPL" information in the
 projects' modules/ file.
 
 
 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/.
 How to add a new module
 -----------------------
 * Add the header files and source files to lib/.
@@ -283,8 +317,8 @@ branches to help promote this.
 
 
 -----
 
 
 -----
-Copyright 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free
-Software Foundation, Inc.
+Copyright 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 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
 
 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