[Libvir] [PATCH 4/4] HACKING: begin to describe contributor/coding guidelines
jim at meyering.net
Thu Apr 10 15:49:00 UTC 2008
This is the name many projects already use for their code-contribution
guidelines, but if people here prefer something different, it's trivial
to change. For now, it's not included in the tarball (and I think that's
appropriate), but adding it there is fine, too.
Of course, this is just one small part. Dan Berrange posted a preliminary
list a few months ago, describing some aspects of existing practice,
and those belong here, too.
HACKING: New file: begin to describe contributor/coding guidelines.
diff --git a/HACKING b/HACKING
new file mode 100644
@@ -0,0 +1,45 @@
+Libvirt contributor guidelines
+Libvirt's C source code generally adheres to some basic code-formatting
+conventions. The existing code base is not totally consistent on this
+front, but we do prefer that contributed code be formatted similarly.
+In short, use spaces-not-TABs for indentation, use 4 spaces for each
+indentation level, and other than that, follow the K&R style.
+If you use Emacs, add the following to one of one of your start-up files
+(e.g., ~/.emacs), to help ensure that you get indentation right:
+ ;;; When editing C sources in libvirt, use this style.
+ (defun libvirt-c-mode ()
+ "C mode with adjusted defaults for use with libvirt."
+ (c-set-style "K&R")
+ (setq indent-tabs-mode nil) ; indent using spaces, not TABs
+ (setq c-indent-level 4)
+ (setq c-basic-offset 4))
+ (add-hook 'c-mode-hook
+ '(lambda () (if (string-match "/libvirt" (buffer-file-name))
+Code formatting (especially for new code)
+With new code, we can be even more strict.
+Please apply the following function (using GNU indent) to any new code.
+Note that this also gives you an idea of the type of spacing we prefer
+around operators and keywords:
+ indent -bad -bap -bbb -bli4 -br -ce -brs -cs -i4 -l75 -lc75 \
+ -sbi4 -psl -saf -sai -saw -sbi4 -ss -sc -cdw -cli4 -npcs -nbc \
+ --no-tabs "$@"
+Note that sometimes you'll have to postprocess that output further, by
+piping it through "expand -i", since some leading TABs can get through.
+Usually they're in macro definitions or strings, and should be converted
More information about the libvir-list