;;--------------------------------------------------------------------------- ;; ;; Emacs-Options for Videolan CodingStyle programming ;; ;; paste the following lines in your .emacs file ;; ;;--------------------------------------------------------------------------- ;; associate c-mode with file extension '.c' or '.h' in vlc trunk tree (setq auto-mode-alist (append '((".*vlc-trunk.*/.*\\.[ch]$" . c-mode) ) auto-mode-alist)) ;; define videolan c style settings (defconst videolan-c-style '((c-tab-always-indent . t) (c-comment-only-line-offset . 4) (c-hanging-braces-alist . ((substatement-open before after) (brace-list-open))) (c-hanging-colons-alist . ((member-init-intro before) (inher-intro) (case-label after) (label after) (access-label after))) (c-cleanup-list . (scope-operator empty-defun-braces defun-close-semi)) (c-offsets-alist . ((string . -1000) (c . c-lineup-C-comments) (defun-open . 0) (defun-close . 0) (defun-block-intro . +) (class-open . 0) (class-close . 0) (inline-open . 0) (inline-close . 0) (topmost-intro . 0) (topmost-intro-cont . 0) (member-init-intro . +) (member-init-cont . 0) (inher-intro . +) (inher-cont . 0) (block-open . 0) (block-close . 0) (brace-list-open . +) (brace-list-close . 0) (brace-list-intro . +) (brace-list-entry . 0) (statement . 0) (statement-cont . +) (statement-block-intro . +) (statement-case-intro . +) (statement-case-open . +) (substatement . +) (substatement-open . +) (case-label . +) (access-label . -) (label . -1000) (do-while-closure . 0) (else-clause . 0) (comment-intro . 0) (arglist-intro . +) (arglist-cont . 0) (arglist-cont-nonempty . c-lineup-arglist) (arglist-close . 0) (stream-op . +) (inclass . +) (cpp-macro . -1000) (friend . 0) (objc-method-intro . 0) (objc-method-args-cont . 0) (objc-method-call-cont . 0))) (c-basic-offset . 4) (c-echo-syntactic-information-p . t) ) "Videolan C Programming Style") ;; Customizations for c-mode (defun videolan-mode-hook () ;; add the Videolan c style and set it for the current buffer (local-set-key "\r" 'newline-and-indent) (c-add-style "vlc" videolan-c-style t) (c-set-offset 'member-init-intro '++) ;; other customizations (setq tab-width 4 ;; this will make sure spaces are used instead of tabs indent-tabs-mode nil) ;; we like auto-newline and hungry-delete (c-toggle-auto-newline-state 1) (custom-set-variables '(c-hanging-semi&comma-criteria nil)) ) (add-hook 'c-mode-hook 'videolan-mode-hook)