;;; ielm.el --- interaction mode for Emacs Lisp
-;; Copyright (C) 1994, 2002, 2003, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 2001, 2002, 2003, 2004, 2005,
+;; 2006, 2007, 2008 Free Software Foundation, Inc.
;; Author: David Smith <maa036@lancaster.ac.uk>
;; Maintainer: FSF
;; This file is part of GNU Emacs.
-;; GNU Emacs is free software; you can redistribute it and/or modify
+;; GNU Emacs 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, or (at your option)
-;; any later version.
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING. If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
(defvar ielm-map nil)
(if ielm-map nil
- (if (string-match "Lucid" emacs-version)
+ (if (featurep 'xemacs)
;; Lemacs
(progn
(setq ielm-map (make-sparse-keymap))
;;; Utility functions
-(defun ielm-is-whitespace (string)
- "Return non-nil if STRING is all whitespace."
- (or (string= string "") (string-match "\\`[ \t\n]+\\'" string)))
+(defun ielm-is-whitespace-or-comment (string)
+ "Return non-nil if STRING is all whitespace or a comment."
+ (or (string= string "")
+ (string-match "\\`[ \t\n]*\\(?:;.*\\)*\\'" string)))
;;; Evaluation
(ielm-output "") ; result to display
(ielm-wbuf ielm-working-buffer) ; current buffer after evaluation
(ielm-pmark (ielm-pm)))
- (if (not (ielm-is-whitespace ielm-string))
+ (if (not (ielm-is-whitespace-or-comment ielm-string))
(progn
(condition-case err
(let (rout)
(setq ielm-result "Working buffer has been killed"
ielm-error-type "IELM Error"
ielm-wbuf (current-buffer))
- (if (ielm-is-whitespace (substring ielm-string ielm-pos))
+ (if (ielm-is-whitespace-or-comment
+ (substring ielm-string ielm-pos))
;; To correctly handle the ielm-local variables *,
;; ** and ***, we need a temporary buffer to be
;; current at entry to the inner of the next two let
(provide 'ielm)
-;;; arch-tag: ef60e4c0-9c4f-4bdb-8402-271313329790
+;; arch-tag: ef60e4c0-9c4f-4bdb-8402-271313329790
;;; ielm.el ends here