From 887c1c6b9a3e884aa23aeb2d417efe7b5e2acd0d Mon Sep 17 00:00:00 2001 From: 10sr Date: Wed, 7 Dec 2011 02:49:22 +0900 Subject: [PATCH 1/2] modify pack functions --- .emacs.el | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/.emacs.el b/.emacs.el index 168b5e5..0388d82 100644 --- a/.emacs.el +++ b/.emacs.el @@ -1151,25 +1151,27 @@ if arg is omitted use value of `buffer-list'." (let* ((dir-default (dired-dwim-target-directory)) (archive-default (my-pack-file-extension (file-name-nondirectory (car infiles)))) (archive ;; (if (interactive-p) - (read-file-name "Output file to pack : " ;; (format "Output file to pack (default for %s) : " - ;; archive-default) + (read-file-name "Output file to pack : " dir-default - nil ;; archive-default + nil nil archive-default) ;; (concat dir-default archive-default) - ))) - (apply 'my-pack - archive - infiles))) + )) + (apply 'my-pack + archive + infiles)))) (revert-buffer) ;; (dired-unmark-all-marks) ) (defun my-pack-file-name-association (filename) "" - (assoc (my-file-name-extension-with-tar filename) - my-pack-program-alist)) + (let ((case-fold-search nil)) + (assoc-default filename + my-pack-program-alist + 'string-match-p + nil))) (defun my-file-name-extension-with-tar (filename) "if FILENAME has extension with tar, like \"tar.gz\", return that. @@ -1195,13 +1197,11 @@ otherwise, return FILENAME with `my-pack-default-extension'" "7z") (defvar my-pack-program-alist - (list (list "7z" (concat my-7z-program-name " a") (concat my-7z-program-name " x")) - '("tar" "tar cf" "tar xf") - '("tgz" "tar czf" "tar xzf") - '("txz" "tar cJf" "tar xJf") - '("zip" "zip -r" "unzip"))) -(string-match-p "\\.gz\\'" "aaa.gz") ; \' matches string end, $ may match the point before newline. -;; (case-fold-search nil) + `(("\\.7z\\'" ,(concat my-7z-program-name " a"), (concat my-7z-program-name " x")) + ("\\.tar\\'" "tar cf" "tar xf") + ("\\.tgz\\'" "tar czf" "tar xzf") + ("\\.zip\\'" "zip -r" "unzip"))) +(string-match-p "\\.gz\\'" "aaa.gz") ; \' matches string end, $ also matches the point before newline. (defun my-unpack (archive) "" @@ -1210,7 +1210,7 @@ otherwise, return FILENAME with `my-pack-default-extension'" (lst (my-pack-file-name-association earchive)) ) (if lst - (shell-command (concat (nth 2 + (shell-command (concat (nth 1 lst) " " (shell-quote-argument earchive))) @@ -1219,12 +1219,12 @@ otherwise, return FILENAME with `my-pack-default-extension'" (defun my-pack (archive &rest files) "pack files FILES into file ARCHIVE. if ARCHIVE have extension defined in `pack-program-alist', use that command. -otherwise, use `pack-default-extension'. for pack." +otherwise, use `pack-default-extension' for pack." (let* ((archive-ext (my-pack-file-extension (expand-file-name archive))) (lst (my-pack-file-name-association archive-ext)) ) (if lst - (shell-command (concat (nth 1 lst) + (shell-command (concat (nth 0 lst) " " (shell-quote-argument archive-ext) " " From f96b396f0f2087aba85ed26e69f3faa01664dd6b Mon Sep 17 00:00:00 2001 From: 10sr Date: Thu, 8 Dec 2011 21:11:04 +0900 Subject: [PATCH 2/2] small bug fixes --- .emacs.el | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/.emacs.el b/.emacs.el index 0388d82..3408b2a 100644 --- a/.emacs.el +++ b/.emacs.el @@ -1191,20 +1191,22 @@ otherwise, return FILENAME with `my-pack-default-extension'" (defvar my-7z-program-name (or (executable-find "7z") (executable-find "7za") - (executable-find "7zr"))) + (executable-find "7zr")) + "path to 7z program.") (defvar my-pack-default-extension - "7z") + "7z" + "default suffix for packing. filename with this suffix must matches `pack-program-alist'") (defvar my-pack-program-alist `(("\\.7z\\'" ,(concat my-7z-program-name " a"), (concat my-7z-program-name " x")) ("\\.tar\\'" "tar cf" "tar xf") ("\\.tgz\\'" "tar czf" "tar xzf") ("\\.zip\\'" "zip -r" "unzip"))) -(string-match-p "\\.gz\\'" "aaa.gz") ; \' matches string end, $ also matches the point before newline. +;; (string-match-p "\\.gz\\'" "aaa.gz") ; \' matches string end, $ also matches the point before newline. (defun my-unpack (archive) - "" + "unpack ARCHIVE. command for unpacking is defined in `pack-program-alist'" (interactive "fArchive to extract: ") (let* ((earchive (expand-file-name archive)) (lst (my-pack-file-name-association earchive)) @@ -1217,7 +1219,7 @@ otherwise, return FILENAME with `my-pack-default-extension'" (message "this is not archive file defined in `pack-program-alist'!")))) (defun my-pack (archive &rest files) - "pack files FILES into file ARCHIVE. + "pack FILES into ARCHIVE. if ARCHIVE have extension defined in `pack-program-alist', use that command. otherwise, use `pack-default-extension' for pack." (let* ((archive-ext (my-pack-file-extension (expand-file-name archive))) @@ -1235,7 +1237,7 @@ otherwise, use `pack-default-extension' for pack." (defun my-pop-to-buffer-erase-noselect (buffer-or-name) "pop up buffer using `display-buffer' and return that buffer." - (let ((bf (get-buffer-create buffer-or-name))) + (let ((bf (get-buffer-create buffer-or-name))) (with-current-buffer bf (cd ".") (erase-buffer)) @@ -1594,7 +1596,7 @@ if arg given, use that eshell buffer, otherwise make new eshell buffer." ("ut" "slogin 03110414@un001.ecc.u-tokyo.ac.jp") ("aptin" "sudo apt-get install") ("u" "uname") - ("eless" "cat >>> (with-current-buffer (get-buffer-create \"*eshell output\") (erase-buffer) (setq buffer-read-only nil) (current-buffer)); (view-buffer (get-buffer \"*eshell output*\"))"))) + ("eless" "cat >>> (with-current-buffer (get-buffer-create \"*eshell output\") (erase-buffer) (setq buffer-read-only nil) (current-buffer" (add-to-list 'eshell-output-filter-functions 'eshell-truncate-buffer) (apply 'eshell/addpath exec-path) (set (make-variable-buffer-local 'scroll-margin) 0) @@ -1602,7 +1604,7 @@ if arg given, use that eshell buffer, otherwise make new eshell buffer." (eshell/export "GIT_EDITOR=") (eshell/export "LC_MESSAGES=C") (eshell/export "TERM=xterm") - )) + ))))) ;; (eval-after-load "em-alias" ;; '(progn ;; (eshell/alias "ll" "ls -l") @@ -1841,6 +1843,7 @@ this is test, does not rename files" ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; forked from http://d.hatena.ne.jp/khiker/20100119/window_resize (define-key my-prefix-map (kbd "C-w") 'my-window-organizer) + (defun my-window-organizer () "Control window size and position." (interactive) @@ -2026,3 +2029,4 @@ this is test, does not rename files" (setq w32-enable-synthesized-fonts t)) (setq file-name-coding-system 'sjis)) +