Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
emacs
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
1
Issues
1
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
emacs
emacs
Commits
1e484d64
Commit
1e484d64
authored
Jun 22, 1998
by
Dan Nicolaescu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
*** empty log message ***
parent
e65f17fe
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
108 additions
and
24 deletions
+108
-24
lisp/cus-dep.el
lisp/cus-dep.el
+69
-1
lisp/cus-edit.el
lisp/cus-edit.el
+28
-5
lisp/midnight.el
lisp/midnight.el
+11
-18
No files found.
lisp/cus-dep.el
View file @
1e484d64
...
...
@@ -27,6 +27,7 @@
(
require
'cl
)
(
require
'widget
)
(
require
'cus-face
)
(
require
'autoload
)
(
defun
custom-make-dependencies
()
"Batch function to extract custom dependencies from .el files.
...
...
@@ -40,7 +41,8 @@ Usage: emacs -batch -l ./cus-dep.el -f custom-make-dependencies DIRS"
(
message
"Directory %s"
(
car
all-subdirs
))
(
let
((
files
(
directory-files
(
car
all-subdirs
)
nil
"\\`[^=].*\\.el\\'"
))
(
default-directory
default-directory
)
file
)
file
is-autoloaded
)
(
cd
(
car
all-subdirs
))
(
while
files
(
setq
file
(
car
files
)
...
...
@@ -54,11 +56,17 @@ Usage: emacs -batch -l ./cus-dep.el -f custom-make-dependencies DIRS"
(
condition-case
nil
(
while
(
re-search-forward
"^(defcustom\\|^(defface\\|^(defgroup"
nil
t
)
(
setq
is-autoloaded
nil
)
(
beginning-of-line
)
(
save-excursion
(
forward-line
-1
)
(
if
(
looking-at
generate-autoload-cookie
)
(
setq
is-autoloaded
t
)))
(
let
((
expr
(
read
(
current-buffer
))))
(
condition-case
nil
(
progn
(
eval
expr
)
(
put
(
nth
1
expr
)
'custom-autoloaded
is-autoloaded
)
(
put
(
nth
1
expr
)
'custom-where
name
))
(
error
nil
))))
(
error
nil
)))))
...
...
@@ -91,6 +99,66 @@ Usage: emacs -batch -l ./cus-dep.el -f custom-make-dependencies DIRS"
(when found
(insert "
))
\n
"))))))
(insert "
\
;;; These are for handling :version. We need to have a minimum of
;;; information so `custom-changed-variables' could do its job.
;;; For both groups and variables we have to set `custom-version'.
;;; For variables we also set the `standard-value' and for groups
;;; `group-documentation' (which is shown in the customize buffer, so
;;; we don't have to load the file containing the group.
;;; `custom-versions-load-alist' is an alist that has as car a version
;;; number and as elts the files that have variables that contain that
;;; version. These files should be loaded before showing the
;;; customization buffer that `customize-changed-options' generates.
;;; This macro is used so we don't modify the information about
;;; variables and groups if it's already set. (We don't know when
;;; cus-load.el is going to be loaded and at that time some of the
;;; files might be loaded and some others might not).
(
defmacro
custom-put-if-not
(
symbol
propname
value
)
`
(
unless
(
get
,
symbol
,
propname
)
(
put
,
symbol
,
propname
,
value
)))
")
(let ((version-alist nil))
(mapatoms (lambda (symbol)
(let ((version (get symbol 'custom-version))
where)
(when version
(setq where (get symbol 'custom-where))
(when (and where
;; Don't bother to do anything if it's
;; autoloaded because we will have all
;; this info when emacs is running
;; anyway.
(not (get symbol 'custom-autoloaded)))
(insert "
(
custom-put-if-not
'
" (symbol-name symbol)
"
'custom-version
")
(prin1 version (current-buffer))
(insert "
)
\n
")
(insert "
(
put
'
" (symbol-name symbol))
(if (get symbol 'standard-value)
;; This means it's a variable
(progn
(insert "
'standard-value
t
)
\n
")
(if (assoc version version-alist)
(unless
(member where
(cdr (assoc version version-alist)))
(push where (cdr (assoc version version-alist))))
(push (cons version (list where)) version-alist)))
;; This is a group
(insert "
'group-documentation
")
(prin1 (get symbol 'group-documentation) (current-buffer))
(insert "
)
\n
")))))))
(insert "
\n
(
defvar
custom-versions-load-alist
"
(if version-alist "
'
" ""))
(prin1 version-alist (current-buffer))
(insert "
\n
\"For
internal
use
by
custom.\"
)
\n
"))
(insert "
\
\(provide
'cus-load
)
...
...
lisp/cus-edit.el
View file @
1e484d64
...
...
@@ -880,9 +880,12 @@ option."
(
interactive
"sCustomize options changed, since version (default all versions): "
)
(
if
(
equal
since-version
""
)
(
setq
since-version
nil
))
(
let
((
found
nil
))
(
let
((
found
nil
)
(
versions
nil
))
(
mapatoms
(
lambda
(
symbol
)
(
and
(
or
(
boundp
symbol
)
;; For variables not yet loaded.
(
get
symbol
'standard-value
)
;; For groups the previous test fails, this one
;; could be used to determine if symbol is a
;; group. Is there a better way for this?
...
...
@@ -890,7 +893,11 @@ option."
(
let
((
version
(
get
symbol
'custom-version
)))
(
and
version
(
or
(
null
since-version
)
(
customize-version-lessp
since-version
version
))))
(
customize-version-lessp
since-version
version
))
(
if
(
member
version
versions
)
t
;;; Collect all versions that we use.
(
push
version
versions
))))
(
setq
found
;; We have to set the right thing here,
;; depending if we have a group or a
...
...
@@ -900,7 +907,23 @@ option."
(
cons
(
list
symbol
'custom-variable
)
found
))))))
(
if
(
not
found
)
(
error
"No user options have changed defaults in recent Emacs versions"
)
(
custom-buffer-create
(
custom-sort-items
found
t
nil
)
(
put
'custom-versions-load-alist
'custom-loads
;; Get all the files that correspond to element from the
;; VERSIONS list. This could use some simplification.
(
let
((
flist
nil
))
(
while
versions
(
push
(
copy-sequence
(
cdr
(
assoc
(
car
versions
)
custom-versions-load-alist
)))
flist
)
(
setq
versions
(
cdr
versions
)))
(
apply
'nconc
flist
)))
;; Because we set all the files needed to be loaded as a
;; `custom-loads' property to `custom-versions-load-alist' this
;; call will actually load them.
(
custom-load-symbol
'custom-versions-load-alist
)
;; Clean up
(
put
'custom-versions-load-alist
'custom-loads
nil
)
(
custom-buffer-create
(
custom-sort-items
found
t
'first
)
"*Customize Changed Options*"
))))
(
defun
customize-version-lessp
(
version1
version2
)
...
...
@@ -1183,7 +1206,7 @@ Reset all values in this buffer to their standard settings."
(length (length options)))
(mapcar (lambda (entry)
(prog2
(message "
Creating
customization
items
%2d%%...
"
(message "
Creating
customization
items
...
%2d%%
"
(/ (* 100.0 count) length))
(widget-create (nth 1 entry)
:tag (custom-unlispify-tag-name
...
...
@@ -1196,7 +1219,7 @@ Reset all values in this buffer to their standard settings."
options))))
(unless (eq (preceding-char) ?\n)
(widget-insert "
\n
"))
(message "
Creating
customization
items
%2d%%...
done
" 100)
(message "
Creating
customization
items
...
%2d%%
done
" 100)
(unless (eq custom-buffer-style 'tree)
(mapcar 'custom-magic-reset custom-options))
(message "
Creating
customization
setup...
")
...
...
lisp/midnight.el
View file @
1e484d64
...
...
@@ -40,7 +40,8 @@
(
defgroup
midnight
nil
"Run something every day at midnight."
:group
'calendar
)
:group
'calendar
:version
"20.3"
)
(
defcustom
midnight-mode
t
"*Non-nil means run `midnight-hook' at midnight.
...
...
@@ -49,7 +50,6 @@ call `cancel-timer' or `timer-activate' on `midnight-timer' instead."
:type
'boolean
:group
'midnight
:require
'midnight
:version
"20.3"
:set
(
lambda
(
symb
val
)
(
set
symb
val
)
(
require
'midnight
)
(
if
val
(
timer-activate
midnight-timer
)
...
...
@@ -83,8 +83,7 @@ Currently displayed and/or modified (unsaved) buffers, as well as buffers
matching `clean-buffer-list-kill-never-buffer-names' and
`clean-buffer-list-kill-never-regexps' are excluded."
:type
'integer
:group
'midnight
:version
"20.3"
)
:group
'midnight
)
(
defcustom
clean-buffer-list-delay-special
3600
"*The number of seconds before some buffers become eligible for autokilling.
...
...
@@ -92,8 +91,7 @@ Buffers matched by `clean-buffer-list-kill-regexps' and
`clean-buffer-list-kill-buffer-names' are killed if they were last
displayed more than this many seconds ago."
:type
'integer
:group
'midnight
:version
"20.3"
)
:group
'midnight
)
(
defcustom
clean-buffer-list-kill-regexps
nil
"*List of regexps saying which buffers will be killed at midnight.
...
...
@@ -106,8 +104,7 @@ See also `clean-buffer-list-kill-buffer-names',
`clean-buffer-list-kill-never-regexps' and
`clean-buffer-list-kill-never-buffer-names'."
:type
'list
:group
'midnight
:version
"20.3"
)
:group
'midnight
)
(
defcustom
clean-buffer-list-kill-buffer-names
'
(
"*Help*"
"*Apropos*"
"*Man "
"*Buffer List*"
"*Compile-Log*"
"*info*"
)
...
...
@@ -121,8 +118,7 @@ See also `clean-buffer-list-kill-regexps',
`clean-buffer-list-kill-never-regexps' and
`clean-buffer-list-kill-never-buffer-names'."
:type
'list
:group
'midnight
:version
"20.3"
)
:group
'midnight
)
(
defcustom
clean-buffer-list-kill-never-buffer-names
'
(
"*scratch*"
"*Messages*"
)
...
...
@@ -132,8 +128,8 @@ Note that this does override `clean-buffer-list-kill-regexps' and
`clean-buffer-list-kill-buffer-names' so a buffer matching any of these
two lists will NOT be killed if it is also present in this list."
:type
'list
:group
'midnight
:version
"20.3"
)
:group
'midnight
)
(
defcustom
clean-buffer-list-kill-never-regexps
'
(
"^ \*Minibuf-.*\*$"
)
"*List of regexp saying which buffers will never be killed at midnight.
...
...
@@ -143,8 +139,7 @@ Note that this does override `clean-buffer-list-kill-regexps' and
`clean-buffer-list-kill-buffer-names' so a buffer matching any of these
two lists will NOT be killed if it also matches anything in this list."
:type
'list
:group
'midnight
:version
"20.3"
)
:group
'midnight
)
(
defun
midnight-find
(
el
ls
test
&optional
key
)
"A stopgap solution to the absence of `find' in ELisp."
...
...
@@ -198,8 +193,7 @@ The relevant vartiables are `clean-buffer-list-delay-general',
"The hook run `midnight-delay' seconds after midnight every day.
The default value is `clean-buffer-list'."
:type
'hook
:group
'midnight
:version
"20.3"
)
:group
'midnight
)
(
defun
midnight-next
()
"Return the number of seconds till the next midnight."
...
...
@@ -237,8 +231,7 @@ If you wish, you can use a string instead, it will be passed as the
first argument to `run-at-time'."
:type
'sexp
:set
'midnight-delay-set
:group
'midnight
:version
"20.3"
)
:group
'midnight
)
(
provide
'midnight
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment