X-Git-Url: https://git.distorted.org.uk/~mdw/profile/blobdiff_plain/8c521a226f62e21f8e2376f5efa15fbd84f4a76a..2ae647c441f0c6cc5e2b655048f8cf9b20c00ef7:/dot-emacs.el diff --git a/dot-emacs.el b/dot-emacs.el index dbe689b..1b1a71c 100644 --- a/dot-emacs.el +++ b/dot-emacs.el @@ -1,7 +1,5 @@ ;;; -*- mode: emacs-lisp; coding: utf-8 -*- ;;; -;;; $Id$ -;;; ;;; Functions and macros for .emacs ;;; ;;; (c) 2004 Mark Wooding @@ -29,8 +27,6 @@ "Whether .emacs should optimize for rapid startup. This may be at the expense of cool features.") (let ((probe nil) (next command-line-args)) - (message "probe = %s" probe) - (message "next = %s" next) (while next (cond ((string= (car next) "--mdw-fast-startup") (setq mdw-fast-startup t) @@ -326,6 +322,7 @@ Not much right now. Just support for doing MailCrypt stuff." (setq local-abbrev-table text-mode-abbrev-table) (setq major-mode 'mdwmail-mode) (setq mode-name "[mdw] mail") + (set-buffer-file-coding-system 'utf-8) (make-local-variable 'paragraph-separate) (make-local-variable 'paragraph-start) (setq paragraph-start (concat "[ \t]*[-_][-_][-_]+$\\|^-- \\|-----\\|" @@ -364,6 +361,29 @@ Not much right now. Just support for doing MailCrypt stuff." (perform-replace "\n-- \n" "\n-- " nil nil nil))) (add-hook 'mail-setup-hook 'mdwmail-mangle-signature) +;;;----- Dired hacking ------------------------------------------------------ + +(defadvice dired-maybe-insert-subdir + (around mdw-marked-insertion first activate) + "The DIRNAME may be a list of directory names to insert. Interactively, if +files are marked, then insert all of them. With a numeric prefix argument, +select that many entries near point; with a non-numeric prefix argument, +prompt for listing options." + (interactive + (list (dired-get-marked-files nil + (and (integerp current-prefix-arg) + current-prefix-arg) + #'file-directory-p) + (and current-prefix-arg + (not (integerp current-prefix-arg)) + (read-string "Switches for listing: " + (or dired-subdir-switches + dired-actual-switches))))) + (let ((dirs (ad-get-arg 0))) + (dolist (dir (if (listp dirs) dirs (list dirs))) + (ad-set-arg 0 dir) + ad-do-it))) + ;;;----- URL viewing -------------------------------------------------------- (defun mdw-w3m-browse-url (url &optional new-session-p) @@ -426,7 +446,10 @@ a list of things: (make-variable-buffer-local 'mdw-fill-prefix) (defvar mdw-hanging-indents - "\\(\\(\\([*o]\\|--\\|[0-9]+\\.\\|\\[[0-9]+\\]\\|([a-zA-Z])\\)[ \t]+\\)?\\)" + (concat "\\(\\(" + "\\([*o]\\|-[-#]?\\|[0-9]+\\.\\|\\[[0-9]+\\]\\|([a-zA-Z])\\)" + "[ \t]+" + "\\)?\\)") "*Standard regular expression matching things which might be part of a hanging indent. This is mainly useful in `auto-fill-mode'.") @@ -586,6 +609,26 @@ doesn't cope with anything approximating a complicated case." (defvar mdw-number-face 'mdw-number-face "Face to use for numbers") (make-face 'mdw-number-face) +;; --- Backup file handling --- + +(defvar mdw-backup-disable-regexps nil + "*List of regular expressions: if a file name matches any of these then the +file is not backed up.") + +(defun mdw-backup-enable-predicate (name) + "[mdw]'s default backup predicate: allows a backup if the +standard predicate would allow it, and it doesn't match any of +the regular expressions in `mdw-backup-disable-regexps'." + (and (normal-backup-enable-predicate name) + (let ((answer t) (list mdw-backup-disable-regexps)) + (save-match-data + (while list + (if (string-match (car list) name) + (setq answer nil)) + (setq list (cdr list))) + answer)))) +(setq backup-enable-predicate 'mdw-backup-enable-predicate) + ;;;----- General fontification ---------------------------------------------- (defun mdw-set-fonts (frame faces) @@ -1258,7 +1301,7 @@ strip numbers instead." "del" "elif" "else" "except" "exec" "finally" "for" "from" "global" "if" "import" "in" "is" "lambda" "not" "or" "pass" "print" "raise" "return" "try" - "while" "yield"))) + "while" "with" "yield"))) (setq font-lock-keywords (list