[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/vlf 6192573ee0: Require Emacs-24.4; avoid `defadvice`;
From: |
Stefan Monnier |
Subject: |
[elpa] externals/vlf 6192573ee0: Require Emacs-24.4; avoid `defadvice`; fix compiler warnings |
Date: |
Mon, 16 Oct 2023 22:44:33 -0400 (EDT) |
branch: externals/vlf
commit 6192573ee088079bf1f81abc2bf2a370a5a92397
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Commit: Stefan Monnier <monnier@iro.umontreal.ca>
Require Emacs-24.4; avoid `defadvice`; fix compiler warnings
Try and make some docstrings fit 80 columns.
Use `advice-add` instead of `defadvice`.
Prefer #' to quote function names.
Remove redundant `:group` arguments.
* vlf.el: Remove duplicate `Maintainer:`. Require Emacs-24.4.
Remove `URL:` since the development now happens in `elpa.git`.
("hexl"): Don't bother using `eval-after-load` since advice can be
added before the functions themselves are defined.
* vlf-setup.el (vlf-application): Fix typo in :type format.
(file-size-human-readable): Delete backward compatibility definition.
(vlf-disable-for-function): Delete macro.
(vlf--disabled): New function to replace it.
(tags-verify-table, tag-find-file-of-tag-noselect)
(helm-etags-create-buffer): Use it along with `advice-add`.
* .gitignore: Add ELPA patterns.
* vlf-ediff.el (vlf-ediff-files): Avoid obsolete `ediff-add-to-history`.
(vlf--ediff-next-difference, vlf--ediff-prev-difference):
Use `with-current-buffer`.
* vlf-write.el (vlf-save-in-place): Fix `const` format.
---
.gitignore | 6 ++-
vlf-base.el | 10 ++---
vlf-ediff.el | 33 +++++++--------
vlf-follow.el | 6 +--
vlf-occur.el | 23 +++++------
vlf-setup.el | 63 ++++++++++++-----------------
vlf-tune.el | 20 ++++-----
vlf-write.el | 7 ++--
vlf.el | 128 +++++++++++++++++++++++++++++-----------------------------
9 files changed, 141 insertions(+), 155 deletions(-)
diff --git a/.gitignore b/.gitignore
index 6ba3e70f49..36fce167ca 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,6 @@
*.elc
-*~
\ No newline at end of file
+*~
+
+# ELPA-generated files
+/vlf-autoloads.el
+/vlf-pkg.el
diff --git a/vlf-base.el b/vlf-base.el
index 1c1c8e255e..55ee3a5802 100644
--- a/vlf-base.el
+++ b/vlf-base.el
@@ -1,6 +1,6 @@
;;; vlf-base.el --- VLF primitive operations -*- lexical-binding: t -*-
-;; Copyright (C) 2014-2017 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2023 Free Software Foundation, Inc.
;; Keywords: large files, chunk
;; Author: Andrey Kotlarski <m00naticus@gmail.com>
@@ -264,8 +264,8 @@ bytes added to the end."
(defun vlf-insert-file-contents (start end adjust-start adjust-end
&optional position)
- "Adjust chunk at absolute START to END till content can be\
-properly decoded. ADJUST-START determines if trying to prepend bytes
+ "Adjust chunk at absolute START to END so it can be properly decoded.
+ADJUST-START determines if trying to prepend bytes
to the beginning, ADJUST-END - append to the end.
Use buffer POSITION as start if given.
Return number of bytes moved back for proper decoding and number of
@@ -302,8 +302,8 @@ bytes added to the end."
(vlf-tune-insert-file-contents start end))))
(defun vlf-adjust-start (start end position adjust-end)
- "Adjust chunk beginning at absolute START to END till content can\
-be properly decoded. Use buffer POSITION as start.
+ "Adjust chunk beginning at absolute START to END so it can be properly
decoded.
+Use buffer POSITION as start.
ADJUST-END is non-nil if end would be adjusted later.
Return number of bytes moved back for proper decoding."
(let* ((safe-start (max 0 (- start 4)))
diff --git a/vlf-ediff.el b/vlf-ediff.el
index a28e24e220..6f3c9357f1 100644
--- a/vlf-ediff.el
+++ b/vlf-ediff.el
@@ -1,6 +1,6 @@
;;; vlf-ediff.el --- VLF ediff functionality -*- lexical-binding: t -*-
-;; Copyright (C) 2014-2017 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2023 Free Software Foundation, Inc.
;; Keywords: large files, compare, ediff
;; Author: Andrey Kotlarski <m00naticus@gmail.com>
@@ -86,7 +86,7 @@ respectively of difference list, runs ediff over the adjacent
chunks."
ediff-last-dir-B
(file-name-directory f)))
(progn
- (ediff-add-to-history
+ (add-to-history
'file-name-history
(ediff-abbreviate-file-name
(expand-file-name
@@ -100,18 +100,16 @@ respectively of difference list, runs ediff over the
adjacent chunks."
(let ((buffer-B (vlf file-B t)))
(vlf-ediff-buffers buffer-A buffer-B))))
-(defadvice ediff-next-difference (around vlf-ediff-next-difference
- compile activate)
- "Move to the next VLF chunk and search for difference if at the end\
-of difference list."
+(advice-add 'ediff-next-difference :around #'vlf--ediff-next-difference)
+(defun vlf--ediff-next-difference (orig-fun &rest args)
+ "Move to the next VLF chunk if needed."
(if (and vlf-ediff-session
(<= (1- ediff-number-of-differences)
ediff-current-difference))
(let ((buffer-A ediff-buffer-A)
(buffer-B ediff-buffer-B)
(ediff-buffer (current-buffer)))
- (save-excursion
- (set-buffer buffer-A)
+ (with-current-buffer buffer-A
(vlf-next-chunk)
(set-buffer buffer-B)
(vlf-next-chunk)
@@ -119,19 +117,17 @@ of difference list."
'vlf-next-chunk))
(or (zerop ediff-number-of-differences)
(ediff-jump-to-difference 1)))
- ad-do-it))
+ (apply orig-fun args)))
-(defadvice ediff-previous-difference (around vlf-ediff-prev-difference
- compile activate)
- "Move to the previous VLF chunk and search for difference if at the\
-beginning of difference list."
+(advice-add 'ediff-previous-difference :around #'vlf--ediff-prev-difference)
+(defun vlf--ediff-prev-difference (orig-fun &rest args)
+ "Move to the previous VLF chunk if needed."
(if (and vlf-ediff-session
(<= ediff-current-difference 0))
(let ((buffer-A ediff-buffer-A)
(buffer-B ediff-buffer-B)
(ediff-buffer (current-buffer)))
- (save-excursion
- (set-buffer buffer-A)
+ (with-current-buffer buffer-A
(vlf-prev-chunk)
(set-buffer buffer-B)
(vlf-prev-chunk)
@@ -139,7 +135,7 @@ beginning of difference list."
'vlf-prev-chunk))
(or (zerop ediff-number-of-differences)
(ediff-jump-to-difference -1)))
- ad-do-it))
+ (apply orig-fun args)))
(defun vlf-next-chunk ()
"Move to next chunk."
@@ -151,8 +147,9 @@ beginning of difference list."
(defun vlf-ediff-next (buffer-A buffer-B ediff-buffer
&optional next-func)
- "Find next pair of chunks that differ in BUFFER-A and BUFFER-B\
-governed by EDIFF-BUFFER. NEXT-FUNC is used to jump to the next
+ "Find next pair of chunks that differ in BUFFER-A and BUFFER-B.
+The buffers are summed to be governed by EDIFF-BUFFER.
+NEXT-FUNC is used to jump to the next
logical chunks in case there is no difference at the current ones."
(set-buffer buffer-A)
(run-hook-with-args 'vlf-before-batch-functions 'ediff)
diff --git a/vlf-follow.el b/vlf-follow.el
index 52f35cd11d..7a92803dbb 100644
--- a/vlf-follow.el
+++ b/vlf-follow.el
@@ -1,6 +1,6 @@
;;; vlf-follow.el --- VLF chunk follows point functionality -*-
lexical-binding: t -*-
-;; Copyright (C) 2014-2017 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2023 Free Software Foundation, Inc.
;; Keywords: large files, follow, recenter
;; Author: Andrey Kotlarski <m00naticus@gmail.com>
@@ -67,9 +67,9 @@
(defun vlf-start-follow (interval)
"Continuously recenter chunk around point every INTERVAL seconds."
(setq vlf-follow-timer (run-with-idle-timer interval interval
- 'vlf-recenter
+ #'vlf-recenter
(current-buffer)))
- (add-hook 'kill-buffer-hook 'vlf-stop-follow nil t))
+ (add-hook 'kill-buffer-hook #'vlf-stop-follow nil t))
(defun vlf-toggle-follow ()
"Toggle continuous chunk recenter around current point."
diff --git a/vlf-occur.el b/vlf-occur.el
index 717513e599..604124df98 100644
--- a/vlf-occur.el
+++ b/vlf-occur.el
@@ -1,6 +1,6 @@
;;; vlf-occur.el --- Occur-like functionality for VLF -*- lexical-binding: t
-*-
-;; Copyright (C) 2014-2017 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2023 Free Software Foundation, Inc.
;; Keywords: large files, indexing, occur
;; Author: Andrey Kotlarski <m00naticus@gmail.com>
@@ -49,19 +49,19 @@
(defvar vlf-occur-mode-map
(let ((map (make-sparse-keymap)))
- (define-key map "n" 'vlf-occur-next-match)
- (define-key map "p" 'vlf-occur-prev-match)
- (define-key map "\C-m" 'vlf-occur-visit)
- (define-key map "\M-\r" 'vlf-occur-visit-new-buffer)
- (define-key map [mouse-1] 'vlf-occur-visit)
- (define-key map "o" 'vlf-occur-show)
- (define-key map [remap save-buffer] 'vlf-occur-save)
+ (define-key map "n" #'vlf-occur-next-match)
+ (define-key map "p" #'vlf-occur-prev-match)
+ (define-key map "\C-m" #'vlf-occur-visit)
+ (define-key map "\M-\r" #'vlf-occur-visit-new-buffer)
+ (define-key map [mouse-1] #'vlf-occur-visit)
+ (define-key map "o" #'vlf-occur-show)
+ (define-key map [remap save-buffer] #'vlf-occur-save)
map)
"Keymap for command `vlf-occur-mode'.")
(define-derived-mode vlf-occur-mode special-mode "VLF[occur]"
"Major mode for showing occur matches of VLF opened files."
- (add-hook 'write-file-functions 'vlf-occur-save nil t))
+ (add-hook 'write-file-functions #'vlf-occur-save nil t))
(defun vlf-occur-next-match ()
"Move cursor to next match."
@@ -82,9 +82,8 @@
(point-max)))))
(defun vlf-occur-show (&optional event)
- "Visit current `vlf-occur' link in a vlf buffer but stay in the \
-occur buffer. If original VLF buffer has been killed,
-open new VLF session each time.
+ "Visit current `vlf-occur' link in a vlf buffer but stay in the occur buffer.
+If original VLF buffer has been killed, open new VLF session each time.
EVENT may hold details of the invocation."
(interactive (list last-nonmenu-event))
(let ((occur-buffer (if event
diff --git a/vlf-setup.el b/vlf-setup.el
index aa061d0f28..77aec7e901 100644
--- a/vlf-setup.el
+++ b/vlf-setup.el
@@ -1,6 +1,6 @@
;;; vlf-setup.el --- VLF integration with other packages -*- lexical-binding:
t -*-
-;; Copyright (C) 2014-2017 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2023 Free Software Foundation, Inc.
;; Keywords: large files, integration
;; Author: Andrey Kotlarski <m00naticus@gmail.com>
@@ -31,7 +31,7 @@
(defcustom vlf-batch-size 1000000
"Defines how large each batch of file data initially is (in bytes)."
- :group 'vlf :type 'integer)
+ :type 'integer)
(defcustom vlf-application 'ask
"Determines when `vlf' will be offered on opening files.
@@ -39,25 +39,20 @@ Possible values are: nil to never use it;
`ask' offer `vlf' when file size is beyond `large-file-warning-threshold';
`dont-ask' automatically use `vlf' for large files;
`always' use `vlf' for all files."
- :group 'vlf :type '(radio (const :format "%v " nil)
- (const :format "%v " ask)
- (const :format "%v " dont-ask)
- (const :format "%v" always)))
+ :type '(radio (const :format "%v " nil)
+ (const :format "%v " ask)
+ (const :format "%v " dont-ask)
+ (const :format "%v " always)))
(defcustom vlf-forbidden-modes-list
'(archive-mode tar-mode jka-compr git-commit-mode image-mode
doc-view-mode doc-view-mode-maybe ebrowse-tree-mode)
"Major modes which VLF will not be automatically applied to."
- :group 'vlf :type '(list symbol))
+ :type '(list symbol))
(defvar dired-mode-map)
(declare-function dired-get-file-for-visit "dired")
-(unless (fboundp 'file-size-human-readable)
- (defun file-size-human-readable (file-size)
- "Print FILE-SIZE in MB."
- (format "%.3fMB" (/ file-size 1048576.0))))
-
(defun vlf-determine-major-mode (filename)
"Determine major mode from FILENAME."
(let ((name filename)
@@ -73,26 +68,26 @@ Possible values are: nil to never use it;
(if (memq system-type '(windows-nt cygwin))
;; System is case-insensitive.
(let ((case-fold-search t))
- (assoc-default name auto-mode-alist 'string-match))
+ (assoc-default name auto-mode-alist #'string-match))
;; System is case-sensitive.
(or ;; First match case-sensitively.
(let ((case-fold-search nil))
- (assoc-default name auto-mode-alist 'string-match))
+ (assoc-default name auto-mode-alist #'string-match))
;; Fallback to case-insensitive match.
(and auto-mode-case-fold
(let ((case-fold-search t))
(assoc-default name auto-mode-alist
- 'string-match))))))
+ #'string-match))))))
(if (and mode (consp mode))
(cadr mode)
mode)))
(autoload 'vlf "vlf" "View Large FILE in batches." t)
-(defadvice abort-if-file-too-large (around vlf-if-file-too-large
- compile activate)
- "If file SIZE larger than `large-file-warning-threshold', \
-allow user to view file with `vlf', open it normally, or abort.
+(advice-add 'abort-if-file-too-large :around #'vlf--if-file-too-large)
+(defun vlf--if-file-too-large (orig-fun size op-type filename &rest args)
+ "If file is too large, prompt user to view file with `vlf'.
+\"Too large\" is defined by `large-file-warning-threshold'.
OP-TYPE specifies the file operation being performed over FILENAME."
(cond
((or (not size) (zerop size)))
@@ -100,7 +95,7 @@ OP-TYPE specifies the file operation being performed over
FILENAME."
(not filename)
(memq (vlf-determine-major-mode filename)
vlf-forbidden-modes-list))
- ad-do-it)
+ (apply orig-fun size op-type filename args))
((eq vlf-application 'always)
(vlf filename)
(error ""))
@@ -131,29 +126,23 @@ OP-TYPE specifies the file operation being performed over
FILENAME."
(error "Aborted"))))))))
;; disable for some functions
-(defmacro vlf-disable-for-function (func file)
- "Build advice to disable VLF during execution of FUNC\
-defined in FILE."
- `(eval-after-load ,file
- '(defadvice ,func (around ,(intern (concat "vlf-"
- (symbol-name func)))
- compile activate)
- "Temporarily disable `vlf-mode'."
- (let ((vlf-application nil))
- ad-do-it))))
-
-(vlf-disable-for-function tags-verify-table "etags")
-(vlf-disable-for-function tag-find-file-of-tag-noselect "etags")
-(vlf-disable-for-function helm-etags-create-buffer "helm-tags")
-
-;; dired
+(defun vlf--disabled (orig-fun &rest args)
+ "Temporarily disable `vlf-mode'."
+ (let ((vlf-application nil))
+ (apply orig-fun args)))
+
+(dolist (func '(tags-verify-table
+ tag-find-file-of-tag-noselect
+ helm-etags-create-buffer))
+ (advice-add func :around #'vlf--disabled))
+
(defun dired-vlf ()
"In Dired, visit the file on this line in VLF mode."
(interactive)
(vlf (dired-get-file-for-visit)))
(eval-after-load "dired"
- '(define-key dired-mode-map "V" 'dired-vlf))
+ '(define-key dired-mode-map "V" #'dired-vlf))
(provide 'vlf-setup)
diff --git a/vlf-tune.el b/vlf-tune.el
index 7a860efde6..5b1590ebce 100644
--- a/vlf-tune.el
+++ b/vlf-tune.el
@@ -1,6 +1,6 @@
;;; vlf-tune.el --- VLF tuning operations -*- lexical-binding: t -*-
-;; Copyright (C) 2014-2017 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2023 Free Software Foundation, Inc.
;; Keywords: large files, batch size, performance
;; Author: Andrey Kotlarski <m00naticus@gmail.com>
@@ -32,16 +32,16 @@
(defcustom vlf-batch-size 1000000
"Defines how large each batch of file data initially is (in bytes)."
- :group 'vlf :type 'integer)
+ :type 'integer)
(put 'vlf-batch-size 'permanent-local t)
(defcustom vlf-tune-enabled t
"Whether to allow automatic change of batch size.
If nil, completely disable. If `stats', maintain measure statistics,
but don't change batch size. If t, measure and change."
- :group 'vlf :type '(choice (const :tag "Enabled" t)
- (const :tag "Just statistics" stats)
- (const :tag "Disabled" nil)))
+ :type '(choice (const :tag "Enabled" t)
+ (const :tag "Just statistics" stats)
+ (const :tag "Disabled" nil)))
(defvar vlf-file-size 0 "Total size in bytes of presented file.")
(make-variable-buffer-local 'vlf-file-size)
@@ -65,16 +65,16 @@ but don't change batch size. If t, measure and change."
'standard-value)))))
"Maximum batch size in bytes when auto tuning.
Avoid increasing this after opening file with VLF."
- :group 'vlf :type 'integer)
+ :type 'integer)
(defcustom vlf-tune-step (/ vlf-tune-max 10000)
"Step used for tuning in bytes.
Avoid decreasing this after opening file with VLF."
- :group 'vlf :type 'integer)
+ :type 'integer)
(defcustom vlf-tune-load-time 1.0
"How many seconds should batch take to load for best user experience."
- :group 'vlf :type 'float)
+ :type 'float)
(defvar vlf-tune-insert-bps nil
"Vector of bytes per second insert measurements.")
@@ -351,8 +351,8 @@ INDEX if given, specifies search independent of current
batch size."
(setq vlf-batch-size (* (1+ idx) vlf-tune-step))))))
(defun vlf-tune-binary (types min max)
- "Adjust `vlf-batch-size' to optimal value using binary search, \
-optimizing over TYPES.
+ "Adjust `vlf-batch-size' to optimal value using binary search.
+Optimizes over TYPES.
MIN and MAX specify interval of indexes to search."
(let ((sum (+ min max)))
(if (< (- max min) 3)
diff --git a/vlf-write.el b/vlf-write.el
index d5c87d5f6b..24057c4a06 100644
--- a/vlf-write.el
+++ b/vlf-write.el
@@ -1,6 +1,6 @@
;;; vlf-write.el --- Saving functionality for VLF -*- lexical-binding: t -*-
-;; Copyright (C) 2014-2017 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2023 Free Software Foundation, Inc.
;; Keywords: large files, saving
;; Author: Andrey Kotlarski <m00naticus@gmail.com>
@@ -33,7 +33,7 @@
"Should VLF save in place when additional adjustment of file content\
is needed."
:group 'vlf :type '(choice (const :tag "Always when applicable" t)
- (const :tag "Ask when applicable" 'ask)
+ (const :tag "Ask when applicable" ask)
(const :tag "Never" nil)))
(defun vlf-write ()
@@ -128,8 +128,7 @@ FILE if given is filename to be used, otherwise
`buffer-file-name'."
(progress-reporter-done reporter)))
(defun vlf-shift-batch (read-pos write-pos file)
- "Read `vlf-batch-size' bytes from READ-POS and write them \
-back at WRITE-POS using FILE.
+ "Shift `vlf-batch-size' bytes from READ-POS to WRITE-POS in FILE.
Return nil if EOF is reached, t otherwise."
(erase-buffer)
(vlf-verify-size t file)
diff --git a/vlf.el b/vlf.el
index 0bc628f839..ae918e0309 100644
--- a/vlf.el
+++ b/vlf.el
@@ -1,15 +1,15 @@
;;; vlf.el --- View Large Files -*- lexical-binding: t -*-
-;; Copyright (C) 2006-2020 Free Software Foundation, Inc.
+;; Copyright (C) 2006-2023 Free Software Foundation, Inc.
-;; Maintainer: Andrey Kotlarski <m00naticus@gmail.com>
;; Version: 1.7.2
+;; Package-Requires: ((emacs "24.4"))
;; Keywords: large files, utilities
;; Maintainer: Andrey Kotlarski <m00naticus@gmail.com>
;; Authors: 2006 Mathias Dahl <mathias.dahl@gmail.com>
;; 2012 Sam Steingold <sds@gnu.org>
;; 2013-2017 Andrey Kotlarski <m00naticus@gmail.com>
-;; URL: https://github.com/m00natic/vlfi
+;; Old-URL: https://github.com/m00natic/vlfi
;; This file is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
@@ -78,25 +78,25 @@ values are: `write', `ediff', `occur', `search',
`goto-line'."
(defvar vlf-mode-map
(let ((map (make-sparse-keymap)))
- (define-key map "n" 'vlf-next-batch)
- (define-key map "p" 'vlf-prev-batch)
- (define-key map " " 'vlf-next-batch-from-point)
- (define-key map "+" 'vlf-change-batch-size)
+ (define-key map "n" #'vlf-next-batch)
+ (define-key map "p" #'vlf-prev-batch)
+ (define-key map " " #'vlf-next-batch-from-point)
+ (define-key map "+" #'vlf-change-batch-size)
(define-key map "-"
(lambda () "Decrease vlf batch size by factor of 2."
(interactive)
(vlf-change-batch-size t)))
- (define-key map "s" 'vlf-re-search-forward)
- (define-key map "r" 'vlf-re-search-backward)
- (define-key map "%" 'vlf-query-replace)
- (define-key map "o" 'vlf-occur)
- (define-key map "[" 'vlf-beginning-of-file)
- (define-key map "]" 'vlf-end-of-file)
- (define-key map "j" 'vlf-jump-to-chunk)
- (define-key map "l" 'vlf-goto-line)
- (define-key map "e" 'vlf-ediff-buffers)
- (define-key map "f" 'vlf-toggle-follow)
- (define-key map "g" 'vlf-revert)
+ (define-key map "s" #'vlf-re-search-forward)
+ (define-key map "r" #'vlf-re-search-backward)
+ (define-key map "%" #'vlf-query-replace)
+ (define-key map "o" #'vlf-occur)
+ (define-key map "[" #'vlf-beginning-of-file)
+ (define-key map "]" #'vlf-end-of-file)
+ (define-key map "j" #'vlf-jump-to-chunk)
+ (define-key map "l" #'vlf-goto-line)
+ (define-key map "e" #'vlf-ediff-buffers)
+ (define-key map "f" #'vlf-toggle-follow)
+ (define-key map "g" #'vlf-revert)
map)
"Keymap for `vlf-mode'.")
@@ -115,9 +115,9 @@ values are: `write', `ediff', `occur', `search',
`goto-line'."
(file-size-human-readable vlf-file-size)))
(cond (vlf-mode
(set (make-local-variable 'require-final-newline) nil)
- (add-hook 'write-file-functions 'vlf-write nil t)
+ (add-hook 'write-file-functions #'vlf-write nil t)
(set (make-local-variable 'revert-buffer-function)
- 'vlf-revert)
+ #'vlf-revert)
(make-local-variable 'vlf-batch-size)
(setq vlf-file-size (vlf-get-file-size buffer-file-truename)
vlf-start-pos 0
@@ -126,7 +126,7 @@ values are: `write', `ediff', `occur', `search',
`goto-line'."
(start (* (/ pos vlf-batch-size) vlf-batch-size)))
(goto-char (byte-to-position (- pos start)))
(vlf-move-to-batch start))
- (add-hook 'after-change-major-mode-hook 'vlf-keep-alive t t)
+ (add-hook 'after-change-major-mode-hook #'vlf-keep-alive t t)
(vlf-keep-alive))
((or (not large-file-warning-threshold)
(< vlf-file-size large-file-warning-threshold)
@@ -136,9 +136,9 @@ values are: `write', `ediff', `occur', `search',
`goto-line'."
(kill-local-variable 'revert-buffer-function)
(vlf-stop-follow)
(kill-local-variable 'require-final-newline)
- (remove-hook 'write-file-functions 'vlf-write t)
+ (remove-hook 'write-file-functions #'vlf-write t)
(remove-hook 'after-change-major-mode-hook
- 'vlf-keep-alive t)
+ #'vlf-keep-alive t)
(if (derived-mode-p 'hexl-mode)
(let ((line (/ (1+ vlf-start-pos) hexl-bits))
(pos (point)))
@@ -163,7 +163,7 @@ values are: `write', `ediff', `occur', `search',
`goto-line'."
(defun vlf-keep-alive ()
"Keep `vlf-mode' on major mode change."
(if (derived-mode-p 'hexl-mode)
- (set (make-local-variable 'revert-buffer-function) 'vlf-revert))
+ (set (make-local-variable 'revert-buffer-function) #'vlf-revert))
(setq vlf-mode t))
;;;###autoload
@@ -225,60 +225,58 @@ When prefix argument is negative
(vlf-move-to-chunk start end)))
;; scroll auto batching
-(defadvice scroll-up (around vlf-scroll-up
- activate compile)
+(advice-add 'scroll-up :around #'vlf--scroll-up)
+(defun vlf--scroll-up (orig-fun &rest args)
"Slide to next batch if at end of buffer in `vlf-mode'."
(if (and vlf-mode (pos-visible-in-window-p (point-max)))
(progn (vlf-next-batch 1)
(goto-char (point-min)))
- ad-do-it))
+ (apply orig-fun args)))
-(defadvice scroll-down (around vlf-scroll-down
- activate compile)
+(advice-add 'scroll-down :around #'vlf--scroll-down)
+(defun vlf--scroll-down (orig-fun &rest args)
"Slide to previous batch if at beginning of buffer in `vlf-mode'."
(if (and vlf-mode (pos-visible-in-window-p (point-min)))
(progn (vlf-prev-batch 1)
(goto-char (point-max)))
- ad-do-it))
+ (apply orig-fun args)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; hexl mode integration
-(eval-after-load "hexl"
- '(progn
- (defadvice hexl-save-buffer (around vlf-hexl-save
- activate compile)
- "Prevent hexl save if `vlf-mode' is active."
- (if vlf-mode
- (vlf-write)
- ad-do-it))
-
- (defadvice hexl-scroll-up (around vlf-hexl-scroll-up
- activate compile)
- "Slide to next batch if at end of buffer in `vlf-mode'."
- (if (and vlf-mode (pos-visible-in-window-p (point-max))
- (or (not (numberp arg)) (< 0 arg)))
- (progn (vlf-next-batch 1)
- (goto-char (point-min)))
- ad-do-it))
-
- (defadvice hexl-scroll-down (around vlf-hexl-scroll-down
- activate compile)
- "Slide to previous batch if at beginning of buffer in `vlf-mode'."
- (if (and vlf-mode (pos-visible-in-window-p (point-min)))
- (progn (vlf-prev-batch 1)
- (goto-char (point-max)))
- ad-do-it))
-
- (defadvice hexl-mode-exit (around vlf-hexl-mode-exit
- activate compile)
- "Exit `hexl-mode' gracefully in case `vlf-mode' is active."
- (if (and vlf-mode (not (buffer-modified-p)))
- (vlf-with-undo-disabled
- (erase-buffer)
- ad-do-it
- (vlf-move-to-chunk-2 vlf-start-pos vlf-end-pos))
- ad-do-it))))
+(advice-add 'hexl-save-buffer :around #'vlf--hexl-save)
+(defun vlf--hexl-save (orig-fun &rest args)
+ "Prevent hexl save if `vlf-mode' is active."
+ (if vlf-mode
+ (vlf-write)
+ (apply orig-fun args)))
+
+(advice-add 'hexl-scroll-up :around #'vlf--hexl-scroll-up)
+(defun vlf--hexl-scroll-up (orig-fun &rest args)
+ "Slide to next batch if at end of buffer in `vlf-mode'."
+ (if (and vlf-mode (pos-visible-in-window-p (point-max))
+ (or (not (numberp (car args))) (< 0 (car args))))
+ (progn (vlf-next-batch 1)
+ (goto-char (point-min)))
+ (apply orig-fun args)))
+
+(advice-add 'hexl-scroll-down :around #'vlf--hexl-scroll-down)
+(defun vlf--hexl-scroll-down (orig-fun &rest args)
+ "Slide to previous batch if at beginning of buffer in `vlf-mode'."
+ (if (and vlf-mode (pos-visible-in-window-p (point-min)))
+ (progn (vlf-prev-batch 1)
+ (goto-char (point-max)))
+ (apply orig-fun args)))
+
+(advice-add 'hexl-mode-exit :around #'vlf--hexl-mode-exit)
+(defun vlf--hexl-mode-exit (orig-fun &rest args)
+ "Exit `hexl-mode' gracefully in case `vlf-mode' is active."
+ (if (and vlf-mode (not (buffer-modified-p)))
+ (vlf-with-undo-disabled
+ (erase-buffer)
+ (apply orig-fun args)
+ (vlf-move-to-chunk-2 vlf-start-pos vlf-end-pos))
+ (apply orig-fun args)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; utilities
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] externals/vlf 6192573ee0: Require Emacs-24.4; avoid `defadvice`; fix compiler warnings,
Stefan Monnier <=