;;; tutorial.el --- tutorial for Emacs
-;; Copyright (C) 2006-2013 Free Software Foundation, Inc.
+;; Copyright (C) 2006-2015 Free Software Foundation, Inc.
-;; Maintainer: FSF
+;; Maintainer: emacs-devel@gnu.org
;; Keywords: help, internal
;; Package: emacs
" RET instead."))
(insert "\n\nWith your current key bindings"
" you can use "
- (if (string-match "^the .*menus?$" where)
+ (if (string-match-p "^the .*menus?$" where)
""
"the key")
where
(symbol-name cx)))))))
(defconst tutorial--default-keys
- ;; On window system, `suspend-emacs' is replaced in the default
- ;; keymap
+ ;; On window system, `suspend-emacs' is replaced in the default keymap.
(let* ((suspend-emacs 'suspend-frame)
(default-keys
+ ;; The first few are not mentioned but are basic:
`((ESC-prefix [27])
(Control-X-prefix [?\C-x])
(mode-specific-command-prefix [?\C-c])
(def-fun-txt (nth 2 tk))
(where (nth 3 tk))
(remark (nth 4 tk))
- (rem-fun (command-remapping def-fun))
(key-txt (key-description key))
- (key-fun (with-current-buffer tutorial-buffer (key-binding key)))
- tot-len)
+ (key-fun (with-current-buffer tutorial-buffer (key-binding key))))
(unless (eq def-fun key-fun)
;; Insert key binding description:
(when (string= key-txt explain-key-desc)
(start (point))
(case-fold-search nil)
(keybindings-regexp
- (concat "[[:space:]]\\("
+ ;; Accept either [:space:] or [:punct:] before the key
+ ;; binding because the Hebrew tutorial uses directional
+ ;; controls and Hebrew character maqaf, the Hebrew hyphen,
+ ;; immediately before the binding string.
+ (concat "\\(?:[[:space:]]\\|[[:punct:]]\\)\\("
(mapconcat (lambda (kdf) (regexp-quote
(tutorial--key-description
(nth 1 kdf))))
saved-file
(error-message-string err))))
;; An error is raised here?? Is this a bug?
- (condition-case nil
- (undo-only)
- (error nil))
+ (ignore-errors (undo-only))
;; Restore point
(goto-char old-point)
(if save-err
;; or just delete the <<...>> line if a [...] line follows.
(cond ((save-excursion
(forward-line 1)
- (looking-at "\\["))
+ (looking-at-p "\\["))
(delete-region (point) (progn (forward-line 1) (point))))
((looking-at "<<Blank lines inserted.*>>")
(replace-match "[Middle of page left blank for didactic purposes. Text continues below]"))
;; inserted at the start of the buffer, the "type C-v to
;; move to the next screen" might not be visible on the
;; first screen (n < 0). How will the novice know what to do?
- (let ((n (- (window-height (selected-window))
+ (let ((n (- (window-height)
(count-lines (point-min) (point))
6)))
(if (< n 8)