;; Emacs startup file to set up Emacs to handle sipX* project files
;; conveniently.

;; Create a C style named "sipX".  You can use this style when editing any
;; C file by doing M-x c-set-style (C-c . in C mode) in its buffer.
(c-add-style "sipX"
             '("user"
               (indent-tabs-mode . nil)
               (c-basic-offset . 3)
               (c-offsets-alist
                (string . c-lineup-dont-change)
                (c . c-lineup-C-comments)
                (defun-open . 0)
                (defun-close . 0)
                (defun-block-intro . +)
                (class-open . 0)
                (class-close . 0)
                (inline-open . +)
                (inline-close . 0)
                (func-decl-cont . +)
                (knr-argdecl-intro . +)
                (knr-argdecl . 0)
                (topmost-intro . 0)
                (topmost-intro-cont . 0)
                (member-init-intro . +)
                (member-init-cont . c-lineup-multi-inher)
                (inher-intro . +)
                (inher-cont . c-lineup-multi-inher)
                (block-open . 0)
                (block-close . 0)
                (brace-list-open . 0)
                (brace-list-close . 0)
                (brace-list-intro . +)
                (brace-list-entry . 0)
                (brace-entry-open . 0)
                (statement . 0)
                (statement-cont . +)
                (statement-block-intro . +)
                (statement-case-intro . +)
                (statement-case-open . 0)
                (substatement . +)
                (substatement-open . 0)
                (case-label . 0)
                (access-label . -)
                (label . 2)
                (do-while-closure . 0)
                (else-clause . 0)
                (catch-clause . 0)
                (comment-intro . c-lineup-comment)
                (arglist-intro . +)
                (arglist-cont . 0)
                (arglist-cont-nonempty . c-lineup-arglist)
                (arglist-close . +)
                (stream-op . c-lineup-streamop)
                (inclass . +)
                (cpp-macro .
                           [0])
                (cpp-macro-cont . c-lineup-dont-change)
                (friend . 0)
                (objc-method-intro .
                                   [0])
                (objc-method-args-cont . c-lineup-ObjC-method-args)
                (objc-method-call-cont . c-lineup-ObjC-method-call)
                (extern-lang-open . 0)
                (extern-lang-close . 0)
                (inextern-lang . +)
                (namespace-open . 0)
                (namespace-close . 0)
                (innamespace . +)
                (template-args-cont c-lineup-template-args +)
                (inlambda . c-lineup-inexpr-block)
                (lambda-intro-cont . +)
                (inexpr-statement . 0)
                (inexpr-class . +))))

; Put "(require 'sipX)" in your .emacs file to load this file
(provide 'sipX)
