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
Open sidebar
emacs
emacs
Commits
94c66ce5
Commit
94c66ce5
authored
Oct 09, 2012
by
Stefan Monnier
Browse files
* lisp/emacs-lisp/cl-macs.el (cl-defstruct): Obey the :read-only property.
parent
7518fc12
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
29 additions
and
23 deletions
+29
-23
lisp/ChangeLog
lisp/ChangeLog
+5
-2
lisp/emacs-lisp/cl-loaddefs.el
lisp/emacs-lisp/cl-loaddefs.el
+1
-1
lisp/emacs-lisp/cl-macs.el
lisp/emacs-lisp/cl-macs.el
+23
-20
No files found.
lisp/ChangeLog
View file @
94c66ce5
2012-10-09 Stefan Monnier <monnier@iro.umontreal.ca>
* emacs-lisp/cl-macs.el (cl-defstruct): Obey the :read-only property.
2012-10-09 Fabián Ezequiel Gallina <fgallina@cuca>
Implemented `backward-up-list'-like navigation.
...
...
@@ -20,8 +24,7 @@
2012-10-08 Fabián Ezequiel Gallina <fgallina@cuca>
Fix shell handling of unbalanced quotes and parens in output.
* progmodes/python.el (python-rx-constituents): Added
string-delimiter.
* progmodes/python.el (python-rx-constituents): Add string-delimiter.
(python-syntax-propertize-function): Use it.
(python-shell-output-syntax-table): New var.
(inferior-python-mode): Prevent unbalanced parens/quotes from
...
...
lisp/emacs-lisp/cl-loaddefs.el
View file @
94c66ce5
...
...
@@ -260,7 +260,7 @@ Remove from SYMBOL's plist the property PROPNAME and its value.
;;;;;; cl-typecase cl-ecase cl-case cl-load-time-value cl-eval-when
;;;;;; cl-destructuring-bind cl-function cl-defmacro cl-defun cl-gentemp
;;;;;; cl-gensym cl--compiler-macro-cXXr cl--compiler-macro-list*)
;;;;;; "
cl-macs
" "
cl-macs.el
" "
6951d080daefb5194b1d21fe9b2deae4
")
;;;;;; "
cl-macs
" "
cl-macs.el
" "
885919e79dbcd11081cfb2e039b470c7
")
;;; Generated autoloads from cl-macs.el
(autoload 'cl--compiler-macro-list* "
cl-macs
" "
\
...
...
lisp/emacs-lisp/cl-macs.el
View file @
94c66ce5
...
...
@@ -2324,26 +2324,29 @@ value, that slot cannot be set via `setf'.
(
if
(
=
pos
0
)
'
(
car
cl-x
)
`
(
nth
,
pos
cl-x
))))
forms
)
(
push
(
cons
accessor
t
)
side-eff
)
;; Don't bother defining a setf-expander, since gv-get can use
;; the compiler macro to get the same result.
;;(push `(gv-define-setter ,accessor (cl-val cl-x)
;; ,(if (cadr (memq :read-only (cddr desc)))
;; `(progn (ignore cl-x cl-val)
;; (error "%s is a read-only slot"
;; ',accessor))
;; ;; If cl is loaded only for compilation,
;; ;; the call to cl--struct-setf-expander would
;; ;; cause a warning because it may not be
;; ;; defined at run time. Suppress that warning.
;; `(progn
;; (declare-function
;; cl--struct-setf-expander "cl-macs"
;; (x name accessor pred-form pos))
;; (cl--struct-setf-expander
;; cl-val cl-x ',name ',accessor
;; ,(and pred-check `',pred-check)
;; ,pos))))
;; forms)
(
if
(
cadr
(
memq
:read-only
(
cddr
desc
)))
(
push
`
(
gv-define-expander
,
accessor
(
lambda
(
_cl-do
_cl-x
)
(
error
"%s is a read-only slot"
',accessor
)))
forms
)
;; For normal slots, we don't need to define a setf-expander,
;; since gv-get can use the compiler macro to get the
;; same result.
;; (push `(gv-define-setter ,accessor (cl-val cl-x)
;; ;; If cl is loaded only for compilation,
;; ;; the call to cl--struct-setf-expander would
;; ;; cause a warning because it may not be
;; ;; defined at run time. Suppress that warning.
;; (progn
;; (declare-function
;; cl--struct-setf-expander "cl-macs"
;; (x name accessor pred-form pos))
;; (cl--struct-setf-expander
;; cl-val cl-x ',name ',accessor
;; ,(and pred-check `',pred-check)
;; ,pos)))
;; forms)
)
(
if
print-auto
(
nconc
print-func
(
list
`
(
princ
,
(
format
" %s"
slot
)
cl-s
)
...
...
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