home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 5 / FreshFish_July-August1994.bin / bbs / util / jade-3.0.lha / Jade / lisp / c-mode.jlc < prev    next >
Encoding:
Text File  |  1994-04-20  |  2.4 KB  |  31 lines

  1.  
  2. (provide (quote c-mode))
  3.  
  4. (defvar c-mode-tab 4 62277)
  5.  
  6. (defvar c-mode-auto-indent nil 62308)
  7.  
  8. (setq c-mode-keymap (make-keylist))
  9.  
  10. (bind-keys c-mode-keymap "return" (quote c-return) "shift-return" (quote split-line) "{" (quote c-open-brace) "}" (quote c-close-brace) ":" (quote c-colon) "tab" (quote c-indent-cursor) "meta-tab" (quote goto-next-tab))
  11.  
  12. (defun c-mode nil 62384 (lisp-code "\tH#%†&‡ˆ‰KF&‰" [eval-hook c-mode-hook "c-mode" mode-name c-mode-kill major-mode-kill c-mode-tab screen-tab c-mode-keymap keymap-path] 2))
  13.  
  14. (defun c-mode-kill nil (lisp-code "I \nF#" [mode-name delq c-mode-keymap keymap-path] 3))
  15.  
  16. (defun c-return nil (lisp-code "Hþ€˜ü€“\tû€˜†\t" [split-line c-mode-auto-indent empty-line-p goto c-indent-pos-empty set-indent-pos c-indent-pos] 2))
  17.  
  18. (defun c-open-brace nil (lisp-code "\tH\t" [insert "{" set-indent-pos c-indent-pos] 2))
  19.  
  20. (defun c-close-brace nil (lisp-code "\tH\t" [insert "}" set-indent-pos c-indent-pos] 2))
  21.  
  22. (defun c-colon nil (lisp-code "\tH\t" [insert ":" set-indent-pos c-indent-pos] 2))
  23.  
  24. (defun c-indent-pos (&optional line-pos) 62432 (lisp-code "\tF!HD\t3\t]þ€µ†\nü€£‡ˆ\nû€µ‰\nü€´Šˆ\nû€µIHE" [line-start line-pos c-indent-pos-empty ind-pos empty-line-p regexp-match-line "^ *({|}|case .*:|default *:)" prev-tab 1 "^ *([a-zA-Z0-9_]*:|#)" set-pos-col] 3))
  25.  
  26. (defun c-indent-pos-empty (&optional line-pos) 62575 (lisp-code "\tF!HD\t\n5†\tÿ€›‡ˆ\nþ€¬\nÿ€¨‰Hû€ŽHDŠ\t6‹Œ‹\t\nH‡Ž\nü€Ð‹\nûÛ‡\nü™\nH†\tÿ€ë‡ˆ\nþ€ü\nÿ€ø‰Hû€ÞH‡‘\nþ‡’\n]þ–“‹\nûÛ‡”\nüµ‡•\nÿ²–—‹\nûÛ‡˜\nüÇ™‹\nûÛ‡•\nüÚ™—‹\nûÛIH‹EE" [line-start line-pos prev-line 1 dup-pos p-line-pos empty-line-p regexp-match-line "^([a-zA-Z0-9_]+:|#)" return indent-pos ind-pos set-pos-line pos-line "{|case .*:|default *:|do($| )|else|(if|for|while|switch) *\\(.*\\)" next-tab ";" "do($| )|else|(if|for|while|switch) *\\(.*\\)" " { *(/\\*.*\\*/|) *$" prev-tab "^ */\\*" "\\*/" right-char 3 "^ *\\*/ *$" left-char] 4))
  27.  
  28. (defun c-indent-lines (start-pos end-pos) (lisp-code "\tF!Hfþ€›\t\tH†\nHû€†" [line-start start-pos end-pos set-indent-pos c-indent-pos next-line 1] 3))
  29.  
  30. (defun c-indent-cursor (&aux tmp) (lisp-code "ü€Ž\t\tû€¹\t\tF&†H†dü€§†\tû€¹‡dü€¸‡\tû€¹I" [empty-line-p goto c-indent-pos-empty cursor-pos set-indent-pos c-indent-pos tmp line-end] 3))
  31.