+2006-12-23 Michael Kifer <kifer@cs.stonybrook.edu>
+
+ * ediff-diff.el (ediff-diff-options): clarify docstring.
+ (ediff-setup-diff-regions): disallow -u in ediff-diff-options.
+
+ * viper-cmd.el (viper-post-command-sentinel): protect against errors in
+ hooks.
+ (viper-add-newline-at-eob-if-necessary): add newline only if we
+ actually modify buffer; ignore errors if occur.
+
2006-12-22 Mark Davies <mark@mcs.vuw.ac.nz>
* configure.in: Add support for NetBSD on x86-64, hp800 and sh3el.
(defcustom ediff-diff-options ""
"*Options to pass to `ediff-diff-program'.
If Unix diff is used as `ediff-diff-program',
- then a useful option is `-w', to ignore space.
-Options `-c' and `-i' are not allowed. Case sensitivity can be
- toggled interactively using \\[ediff-toggle-ignore-case]."
+then a useful option is `-w', to ignore space.
+Options `-c', `-u', and `-i' are not allowed. Case sensitivity can be
+toggled interactively using \\[ediff-toggle-ignore-case].
+
+This variable is not for customizing the look of the differences produced by
+the command \\[ediff-show-diff-output]. Use the variable
+`ediff-custom-diff-options' for that."
:set 'ediff-reset-diff-options
:type 'string
:group 'ediff-diff)
;; ediff-setup-diff-regions-function, which can also have the value
;; ediff-setup-diff-regions3, which takes 4 arguments.
(defun ediff-setup-diff-regions (file-A file-B file-C)
- ;; looking for '-c', '-i', or a 'c', 'i' among clustered non-long options
- (if (string-match "^-[ci]\\| -[ci]\\|\\(^\\| \\)-[^- ]+[ci]"
+ ;; looking for '-c', '-i', '-u', or 'c', 'i', 'u' among clustered non-long options
+ (if (string-match "^-[ciu]\\| -[ciu]\\|\\(^\\| \\)-[^- ]+[ciu]"
ediff-diff-options)
- (error "Options `-c' and `-i' are not allowed in `ediff-diff-options'"))
+ (error "Options `-c', `-u', and `-i' are not allowed in `ediff-diff-options'"))
;; create, if it doesn't exist
(or (ediff-buffer-live-p ediff-diff-buffer)
(run-hook-with-args 'viper-before-change-functions beg end))
(defsubst viper-post-command-sentinel ()
- (run-hooks 'viper-post-command-hooks)
+ (condition-case conds
+ (run-hooks 'viper-post-command-hooks)
+ (error (viper-message-conditions conds)))
(if (eq viper-current-state 'vi-state)
(viper-restore-cursor-color 'after-insert-mode)))
(condition-case nil
(let (viper-vi-kbd-minor-mode) ; execute without kbd macros
- (setq result (eval form))
- )
+ (setq result (eval form)))
(error
(signal 'quit nil)))
(if (and (eobp)
(not (bolp))
require-final-newline
+ ;; add newline only if we actually edited buffer. otherwise it
+ ;; might unintentionally modify binary buffers
+ (buffer-modified-p)
(not (viper-is-in-minibuffer))
(not buffer-read-only))
- (insert "\n")))
+ ;; text property may be read-only
+ (condition-case nil
+ (insert "\n")
+ (error nil))
+ ))
))
(defun viper-yank-defun ()