]> code.delx.au - gnu-emacs/blobdiff - lisp/emacs-lisp/ewoc.el
Calc: Update mode line after change mode
[gnu-emacs] / lisp / emacs-lisp / ewoc.el
index a71f3c7244c31bb00446444af6ccfa22ce35f417..932b7fb262366a3f4dcd4a45808882cc82c0d0ae 100644 (file)
@@ -1,6 +1,6 @@
-;;; ewoc.el --- utility to maintain a view of a list of objects in a buffer
+;;; ewoc.el --- utility to maintain a view of a list of objects in a buffer  -*- lexical-binding: t -*-
 
-;; Copyright (C) 1991-2011 Free Software Foundation, Inc.
+;; Copyright (C) 1991-2016 Free Software Foundation, Inc.
 
 ;; Author: Per Cederqvist <ceder@lysator.liu.se>
 ;;     Inge Wallin <inge@lysator.liu.se>
@@ -26,7 +26,7 @@
 ;;; Commentary:
 
 ;; Ewoc Was Once Cookie
-;; But now it's Emacs' Widget for Object Collections
+;; But now it's Emacs's Widget for Object Collections
 
 ;; As the name implies this derives from the `cookie' package (part
 ;; of Elib).  The changes are pervasive though mostly superficial:
 
 ;;; Code:
 
-(eval-when-compile (require 'cl))
+(eval-when-compile (require 'cl-lib))
 
 ;; The doubly linked list is implemented as a circular list with a dummy
 ;; node first and last. The dummy node is used as "the dll".
-(defstruct (ewoc--node
+(cl-defstruct (ewoc--node
            (:type vector)              ;ewoc--node-nth needs this
             (:constructor nil)
            (:constructor ewoc--node-create (start-marker data)))
@@ -140,7 +140,7 @@ and (ewoc--node-nth dll -1) returns the last node."
 \f
 ;;; The ewoc data type
 
-(defstruct (ewoc
+(cl-defstruct (ewoc
            (:constructor nil)
            (:constructor ewoc--create (buffer pretty-printer dll))
            (:conc-name ewoc--))
@@ -216,10 +216,9 @@ NODE and leaving the new node's start there.  Return the new node."
     (ewoc--adjust m (point) R dll)))
 
 (defun ewoc--wrap (func)
-  (lexical-let ((ewoc--user-pp func))
-    (lambda (data)
-      (funcall ewoc--user-pp data)
-      (insert "\n"))))
+  (lambda (data)
+    (funcall func data)
+    (insert "\n")))
 
 \f
 ;;; ===========================================================================