SCM Repository
[smlnj] / sml / trunk / sml-mode / sml-compat.el |
View of /sml/trunk/sml-mode/sml-compat.el
Parent Directory
|
Revision Log
Revision 535 -
(download)
(annotate)
Fri Feb 18 16:49:10 2000 UTC (20 years, 11 months ago) by monnier
File size: 2282 byte(s)
Fri Feb 18 16:49:10 2000 UTC (20 years, 11 months ago) by monnier
File size: 2282 byte(s)
* sml-util.el (make-temp-dir, make-temp-file, temp-file-dir, delete-temp-dirs): Replaced by the make-temp-file from Emacs-21. (custom-create-map): add :group arg and allow key to be a list. (define-major-mode): Removed (use define-derived-mode instead). (sml-builtin-nested-comments-flag): New var. * sml-proc.el (sml-host-name): New var. (sml-make-file-name): Replaced by `sml-compile-commands'. (sml-config-file): New var. (sml-compile-commands-alist): New var. (inferior-sml-load-hook): Removed. (sml-buffer): Query if the current buffer is not a *sml*. (inferior-sml-mode): Use minor-mode-overriding-map-alist to disable compilation-minor-mode's keybindings. (run-sml): Turn into an alias for sml-run. (sml-run): Query the user for the command. If prefix is set (or if default value is not null) query for args and host. Use `split-string' rather than our own function. Run cmd on another host if requested and pass it an init file if it exists. Pop to the buffer at the end. (sml-args-to-list): Remove. (sml-compile): Look for special files (sml-compile-command-alist) in the current dir (and its parents) to choose a default command. Remember the command for next time in the same buffer. Make the `cd' explicit in the command so the user can change it. (sml-make-error): Fix for when `endline' is absent. * sml-mode.el: Pass it rhough checkdoc. (sml-mode-version): Remove. (sml-load-hook): Remove. (sml-mode-info): Use `info' rather than `Info-goto-node'. (sml-keywords-regexp): Add "o". (sml-syntax-prop-table): Use `defsyntax'. (sml-font-lock-syntactic-keywords): Only use nested comments if supported. (sml-mode): Use `define-derived-mode'. (sml-electric-pipe): `sml-indent-line' -> `indent-according-to-mode'. (sml-indent-line): Use `indent-line-to'. (sml-cm-mode): New mode for CM files. * Makefile: Update. * sml-mode-startup.el: Remove since it's now autogenerated. * sml-defs.el (sml-bindings): Remove left over C-c` binding. (sml-mode-map): Add binding for sml-drag-region (was in sml-proc.el). (sml-mode-syntax-table): Only use nested comments if supported. (sml-mode-menu): Use next-error rather than the old sml-next-error. (sml-pipehead-re): Remove "of". * sml-compat.el (set-keymap-=parents): Make sure it also works when called with a single keymap rather than a list. (temporary-file-directory): Add a default definition for XEmacs. (make-temp-file): New function.
;;; sml-compat.el (defconst rcsid-sml-compat "@(#)$Name$:$Id$") ;; Copyright (C) 1999-1999 Stefan Monnier <monnier@cs.yale.edu> ;; ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 2 of the License, or ;; (at your option) any later version. ;; ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; ;; You should have received a copy of the GNU General Public License ;; along with this program; if not, write to the Free Software ;; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ;; (unless (fboundp 'set-keymap-parents) (defun set-keymap-parents (m parents) (if (keymapp parents) (setq parents (list parents))) (set-keymap-parent m (if (cdr parents) (reduce (lambda (m1 m2) (let ((m (copy-keymap m1))) (set-keymap-parent m m2) m)) parents :from-end t) (car parents))))) ;; for XEmacs (when (and (not (boundp 'temporary-file-directory)) (fboundp 'temp-directory)) (defvar temporary-file-directory (temp-directory))) (unless (fboundp 'make-temp-file) ;; Copied from Emacs-21's subr.el (defun make-temp-file (prefix &optional dir-flag) "Create a temporary file. The returned file name (created by appending some random characters at the end of PREFIX, and expanding against `temporary-file-directory' if necessary, is guaranteed to point to a newly created empty file. You can then use `write-region' to write new data into the file. If DIR-FLAG is non-nil, create a new empty directory instead of a file." (let (file) (while (condition-case () (progn (setq file (make-temp-name (expand-file-name prefix temporary-file-directory))) (if dir-flag (make-directory file) (write-region "" nil file nil 'silent nil 'excl)) nil) (file-already-exists t)) ;; the file was somehow created by someone else between ;; `make-temp-name' and `write-region', let's try again. nil) file)) ;; (provide 'sml-compat)
root@smlnj-gforge.cs.uchicago.edu | ViewVC Help |
Powered by ViewVC 1.0.0 |