Greg Ward avatar Greg Ward committed 53ccbc9

README: misc updates and fixes

Comments (0)

Files changed (1)

 ========
 
 vcprompt is a little C program that prints a short string, designed to
-be included in your prompt, with barebones information about the current
-working directory for various version control systems.  It is designed
-to be small and lightweight rather than comprehensive.
+be included in your prompt, with barebones information about the
+current working directory for various version control systems. It is
+designed to be small and lightweight rather than comprehensive.
 
 Currently, it has varying degrees of recognition for Mercurial, Git,
-CVS, and Subversion working copies.
+Subversion, CVS, and Fossil working copies.
 
 vcprompt has no external dependencies: it does everything with the
-standard C library and POSIX calls.  It should work on any
+standard C library and POSIX calls. It should work on any
 POSIX-compliant system with a C99 compiler.
 
 To compile vcprompt:
 Format Strings
 ==============
 
-You can customize the output of vcprompt using format strings, which can
-be specified either on the command line or in the VCPROMPT_FORMAT
-environment variable.  For example:
+You can customize the output of vcprompt using format strings, which
+can be specified either on the command line or in the VCPROMPT_FORMAT
+environment variable. For example:
 
   vcprompt -f "%b"
 
 
   [%n:%b]
 
-which is notable because it works with every supported VC system.  In
+which is notable because it works with every supported VC system. In
 fact, some features are meaningless with some systems: there is no
-single current revision with CVS, for example.  (And there is no good
-way to quickly find out if there are any uncommitted changes or unknown
-files, for that matter.)
+single current revision with CVS, for example. (And there is no good
+way to quickly find out if there are any uncommitted changes or
+unknown files, for that matter.)
 
 
 Contributing
 
 Patches are welcome.  Please follow these guidelines:
 
-  * Ensure that the tests pass before and after your patch.
-    If you cannot run the tests on a POSIX-compliant system,
-    that is a bug: please let me know.
+  * Ensure that the tests pass before and after your patch. To run the
+    tests quickly:
 
-  * If at all possible, add a test whenever you fix a bug or implement a
-    feature.  If you can write a test that has no dependencies (e.g. no
-    need to execute "git" or "hg" or whatever), add it to
-    tests/test-simple.  Otherwise, add it to the appropriate VC-specific
-    test script, e.g. tests/test-git if it needs to be able to run git.
+      make check
 
-  * Keep the dependencies minimal: preferably just C99 and POSIX.
-    If you need to run an external executable, make sure it makes
-    sense: e.g. it's OK to run "git" in a git working directory, but
-    *only* if we already know we are in a git working directory.
+    To run the tests using valgrind (detect memory leaks):
 
-  * Performance matters!  I wrote vcprompt so that people wouldn't have
-    to spawn and initialize and entire Python or Perl interpreter every
-    time they execute a new shell command.  Using system() to turn
-    around and spawn external commands -- especially ones that involve a
-    relatively large runtime penalty like Python scripts -- misses the
-    point of vcprompt.
+      make grind
+
+    If you cannot run the tests on a POSIX-compliant system, that is a
+    bug: please let me know.
+
+  * If at all possible, add a test whenever you fix a bug or implement
+    a feature. If you can write a test that has no dependencies (e.g.
+    no need to execute "git" or "hg" or whatever), add it to
+    tests/test-simple. Otherwise, add it to the appropriate
+    VC-specific test script, e.g. tests/test-git if it needs to be
+    able to run git.
+
+  * Keep the dependencies minimal: preferably just C99 and POSIX. If
+    you need to run an external executable, make sure it makes sense:
+    e.g. it's OK to run "git" in a git working directory, but *only*
+    if we already know we are in a git working directory.
+
+  * Performance matters! I wrote vcprompt so that people wouldn't have
+    to spawn and initialize an entire Python or Perl interpreter every
+    time they execute a new shell command. Using system() to turn
+    around and spawn external commands -- especially ones that involve
+    a relatively large runtime penalty like Python scripts -- misses
+    the point of vcprompt.
 
     In fact, you'll find that vcprompt contains hacky little
     reimplementations of select bits and pieces of Mercurial, git,
     Subversion, and CVS precisely in order to avoid running external
-    commands.  (And, in the case of Subversion, to avoid depending on a
+    commands. (And, in the case of Subversion, to avoid depending on a
     large, complex library.)
 
   * Stick with my coding style:
     - C99 comments and variable declarations are OK, at least until
       someone complains that their compiler cannot handle them
 
-  * Feel free to add yourself to the contributors list below.
-    (If you don't do it, I'll probably forget.)
+  * Feel free to add yourself to the contributors list below. (If you
+    don't do it, I'll probably forget.)
 
 
 Author Contact
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.