Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
lyskom-elisp-client
lyskom-elisp-client
Commits
b2d3faed
Commit
b2d3faed
authored
May 13, 2010
by
David Byers
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Improve compatibility with bleeding edge emacs
parent
4a710cf3
Changes
21
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
308 additions
and
320 deletions
+308
-320
src/ChangeLog
src/ChangeLog
+7
-0
src/async.el
src/async.el
+1
-1
src/buffers.el
src/buffers.el
+47
-45
src/command.el
src/command.el
+2
-2
src/commands1.el
src/commands1.el
+1
-1
src/commands2.el
src/commands2.el
+6
-6
src/edit-text.el
src/edit-text.el
+124
-139
src/filter-edit.el
src/filter-edit.el
+1
-2
src/flags.el
src/flags.el
+6
-6
src/internal.el
src/internal.el
+1
-1
src/keyboard-menu.el
src/keyboard-menu.el
+1
-1
src/lyskom-buttons.el
src/lyskom-buttons.el
+1
-1
src/lyskom-rest.el
src/lyskom-rest.el
+24
-26
src/macros.el
src/macros.el
+1
-1
src/mship-edit.el
src/mship-edit.el
+7
-7
src/option-edit.el
src/option-edit.el
+25
-26
src/parse.el
src/parse.el
+2
-2
src/services.el
src/services.el
+7
-11
src/startup.el
src/startup.el
+19
-18
src/talkback.el
src/talkback.el
+9
-8
src/utilities.el
src/utilities.el
+16
-16
No files found.
src/ChangeLog
View file @
b2d3faed
2010-05-13 David Byers <davby@ida.liu.se>
Emacs 24 compatibility
* all: replaces many save-excursion with save-current-buffer in
order to avoid meaningless warnings in Gnu Emacs 24.1.
Menus on Macintosh:
* menus.el (lyskom-menu-encoding-rules): Applied patch from Mrten
Svensson for bug 1655.
Handle root review of root texts:
* view-text.el (lyskom-get-root-text-belongs-to): In node
transform, explicitly look in the cache (it's faster), and pass
text-no, not text-stat to lyskom-find-dag-roots.
...
...
@@ -11,6 +17,7 @@
in the cache (it's faster), and pass text-no, not text-stat to
lyskom-find-dag-roots.
Improve handing of startup compatbility check:
* utilities.el (lyskom-check-configuration): Also look at
mime-charset.
(lyskom-magic-minibuffer-post-command): Check that
...
...
src/async.el
View file @
b2d3faed
...
...
@@ -41,7 +41,7 @@
(
defun
lyskom-is-ignoring-async
(
buffer
message
&rest
args
)
(
save-
ex
cur
sion
(
save-cur
rent-buffer
(
set-buffer
buffer
)
(
let
((
tmp
(
assq
message
lyskom-ignoring-async-list
)))
(
and
tmp
(
equal
args
(
cdr
tmp
))))))
...
...
src/buffers.el
View file @
b2d3faed
...
...
@@ -87,37 +87,38 @@ they are created.")
(
defun
lyskom-set-buffer-parent
(
buffer
parent
)
"Set the parent buffer of BUFFER to PARENT. If buffer is already
a child of some buffer, reparent it."
(
save-excursion
(
set-buffer
buffer
)
(
if
(
and
lyskom-buffer-parent
(
buffer-live-p
lyskom-buffer-parent
))
(
lyskom-remove-buffer-child
lyskom-buffer-parent
buffer
))
(
setq
lyskom-buffer-parent
parent
)
(
if
parent
(
lyskom-add-buffer-child
parent
buffer
))))
(
save-current-buffer
(
set-buffer
buffer
)
(
if
(
and
lyskom-buffer-parent
(
buffer-live-p
lyskom-buffer-parent
))
(
lyskom-remove-buffer-child
lyskom-buffer-parent
buffer
))
(
setq
lyskom-buffer-parent
parent
)
(
if
parent
(
lyskom-add-buffer-child
parent
buffer
))))
(
defun
lyskom-remove-buffer-child
(
buffer
child
)
"Remove CHILD from BUFFER's list of children. Args: BUFFER CHILD"
(
save-
ex
cur
sion
(
set-buffer
buffer
)
(
if
(
boundp
'lyskom-buffer-children
)
(
setq
lyskom-buffer-children
(
delq
child
lyskom-buffer-children
)))))
(
save-cur
rent-buffer
(
set-buffer
buffer
)
(
if
(
boundp
'lyskom-buffer-children
)
(
setq
lyskom-buffer-children
(
delq
child
lyskom-buffer-children
)))))
(
defun
lyskom-add-buffer-child
(
buffer
child
)
"Add CHILD as a child of BUFFER. Args: BUFFER CHILD"
(
save-
ex
cur
sion
(
set-buffer
buffer
)
(
setq
lyskom-buffer-children
(
cons
child
lyskom-buffer-children
))))
(
save-cur
rent-buffer
(
set-buffer
buffer
)
(
setq
lyskom-buffer-children
(
cons
child
lyskom-buffer-children
))))
(
defun
lyskom-get-buffer-parent
(
buffer
)
"Return the parent of BUFFER or nil if it has no parent"
(
save-
ex
cur
sion
(
set-buffer
buffer
)
(
and
(
boundp
'lyskom-buffer-parent
)
lyskom-buffer-parent
)))
(
save-cur
rent-buffer
(
set-buffer
buffer
)
(
and
(
boundp
'lyskom-buffer-parent
)
lyskom-buffer-parent
)))
(
defun
lyskom-get-buffer-children
(
buffer
)
"Return the list of children of buffer BUFFER or nil if there are none."
(
save-
ex
cur
sion
(
set-buffer
buffer
)
(
and
(
boundp
'lyskom-buffer-children
)
lyskom-buffer-children
)))
(
save-cur
rent-buffer
(
set-buffer
buffer
)
(
and
(
boundp
'lyskom-buffer-children
)
lyskom-buffer-children
)))
(
defun
lyskom-buffer-root-ancestor
(
buffer
)
"Return the ultimate ancestor of buffer BUFFER."
...
...
@@ -218,9 +219,10 @@ the children object"
(
while
buffers
(
if
(
lyskom-buffer-p
(
car
buffers
))
(
setq
result
(
cons
(
car
buffers
)
result
))
(
save-excursion
(
set-buffer
(
car
buffers
))
(
setq
lyskom-session-has-unread-letters
nil
)
(
setq
lyskom-session-has-unreads
nil
)))
(
save-current-buffer
(
set-buffer
(
car
buffers
))
(
setq
lyskom-session-has-unread-letters
nil
)
(
setq
lyskom-session-has-unreads
nil
)))
(
setq
buffers
(
cdr
buffers
)))
(
nreverse
result
)))
...
...
@@ -238,15 +240,15 @@ If BUFFER is not specified, assume the current buffer"
(
unless
letters-only
(
lyskom-traverse-buffer-hierarchy
(
lambda
(
x
)
(
save-
ex
cur
sion
(
set-buffer
x
)
(
setq
lyskom-session-has-unreads
nil
)))
(
save-cur
rent-buffer
(
set-buffer
x
)
(
setq
lyskom-session-has-unreads
nil
)))
buffer
)
(
setq
lyskom-sessions-with-unread
(
delq
buffer
lyskom-sessions-with-unread
)))
(
lyskom-traverse-buffer-hierarchy
(
lambda
(
x
)
(
save-
ex
cur
sion
(
set-buffer
x
)
(
setq
lyskom-session-has-unread-letters
nil
)))
(
save-cur
rent-buffer
(
set-buffer
x
)
(
setq
lyskom-session-has-unread-letters
nil
)))
buffer
)
(
setq
lyskom-sessions-with-unread-letters
(
delq
buffer
lyskom-sessions-with-unread-letters
))
...
...
@@ -258,8 +260,8 @@ If BUFFER is not specified, assume the current buffer"
(
unless
(
memq
buffer
lyskom-sessions-with-unread
)
(
lyskom-traverse-buffer-hierarchy
(
lambda
(
x
)
(
save-
ex
cur
sion
(
set-buffer
x
)
(
setq
lyskom-session-has-unreads
t
)))
(
save-cur
rent-buffer
(
set-buffer
x
)
(
setq
lyskom-session-has-unreads
t
)))
buffer
)
(
setq
lyskom-sessions-with-unread
(
cons
buffer
lyskom-sessions-with-unread
)))
...
...
@@ -267,8 +269,8 @@ If BUFFER is not specified, assume the current buffer"
(
memq
buffer
lyskom-sessions-with-unread-letters
))
(
lyskom-traverse-buffer-hierarchy
(
lambda
(
x
)
(
save-
ex
cur
sion
(
set-buffer
x
)
(
setq
lyskom-session-has-unread-letters
t
)))
(
save-cur
rent-buffer
(
set-buffer
x
)
(
setq
lyskom-session-has-unread-letters
t
)))
buffer
)
(
setq
lyskom-sessions-with-unread-letters
(
cons
buffer
lyskom-sessions-with-unread-letters
)))
...
...
@@ -378,7 +380,7 @@ categories")
(
defun
lyskom-generate-new-buffer
(
name
)
(
setq
name
(
lyskom-recode-buffer-name
name
))
(
let
((
buf
(
generate-new-buffer
name
)))
(
save-
ex
cur
sion
(
save-cur
rent-buffer
(
set-buffer
buf
))
buf
))
...
...
@@ -393,24 +395,24 @@ The created buffer is made a child of the current buffer."
(
buffer
nil
))
(
if
(
and
unique
buffers
)
(
progn
(
setq
buffer
(
car
buffers
))
(
save-
ex
cur
sion
(
set-buffer
buffer
)
(
let
((
inhibit-read-only
t
))
(
save-cur
rent-buffer
(
set-buffer
buffer
)
(
let
((
inhibit-read-only
t
))
;;; +++ FIXME: This is that erase-buffer works if there are widgets
(
setq
before-change-functions
(
delq
'widget-before-change
before-change-functions
))
(
erase-buffer
))
(
kill-all-local-variables
)
(
if
(
equal
(
buffer-name
(
current-buffer
))
name
)
nil
(
rename-buffer
name
t
))))
(
setq
before-change-functions
(
delq
'widget-before-change
before-change-functions
))
(
erase-buffer
))
(
kill-all-local-variables
)
(
if
(
equal
(
buffer-name
(
current-buffer
))
name
)
nil
(
rename-buffer
name
t
))))
(
progn
(
setq
buffer
(
generate-new-buffer
name
))
(
lyskom-add-buffer-of-category
buffer
category
)))
(
lyskom-set-buffer-parent
buffer
(
current-buffer
))
(
lyskom-update-inherited-variables
buffer
)
(
save-
ex
cur
sion
(
set-buffer
buffer
)
(
setq
lyskom-buffer-category
category
))
(
save-cur
rent-buffer
(
set-buffer
buffer
)
(
setq
lyskom-buffer-category
category
))
buffer
))
...
...
@@ -491,7 +493,7 @@ Returns the window displaying BUFFER."
"-in-window"
)))
(
open
(
lyskom-default-value-safe
sym
))
(
saved-window-configuration
(
save-
ex
cur
sion
(
save-cur
rent-buffer
(
set-buffer
(
or
(
and
(
boundp
'lyskom-buffer
)
lyskom-buffer
)
(
current-buffer
)))
...
...
src/command.el
View file @
b2d3faed
...
...
@@ -682,8 +682,8 @@ chosen according to this"
(
run-hooks
'lyskom-after-command-hook
)
(
when
(
and
(
lyskom-have-feature
idle-time
)
(
not
lyskom-is-anonymous
))
(
save-excursion
(
set-buffer
lyskom-buffer
)
(
initiate-user-active
'background
nil
)))
(
lyskom-with-
lyskom-buffer
(
initiate-user-active
'background
nil
)))
(
if
kom-inhibit-typeahead
(
discard-input
))
;; lyskom-pending-commands should probably be a queue or a stack.
...
...
src/commands1.el
View file @
b2d3faed
...
...
@@ -1420,7 +1420,7 @@ Don't ask for confirmation."
(
lyskom-get-string
'ssh-unknown-host
))))
(
delete-process
proc
)
(
when
(
get-buffer
bufname
)
(
save-
ex
cur
sion
(
save-cur
rent-buffer
(
set-buffer
bufname
)
(
goto-char
(
point-max
))
(
insert
"\n--- closed connection ---\n"
)))))))
...
...
src/commands2.el
View file @
b2d3faed
...
...
@@ -1626,7 +1626,7 @@ If optional second argument MAY-BE-DEAD is non-nil, this function returns t
whether the session is alive or not. Otherwise it checks that the session
is alive."
(
when
(
buffer-live-p
buf
)
(
save-
ex
cur
sion
(
save-cur
rent-buffer
(
set-buffer
buf
)
(
and
(
eq
major-mode
'lyskom-mode
)
(
boundp
'lyskom-proc
)
...
...
@@ -1767,7 +1767,7 @@ See `kom-next-kom' and `kom-previous-kom' for related commands."
(
when
lyskom-sessions-with-unread
(
let
((
unreads
(
mapcar
(
lambda
(
buffer
)
(
save-
ex
cur
sion
(
save-cur
rent-buffer
(
set-buffer
buffer
)
(
vector
(
lyskom-format
"%#1P, %#2s%#3?b%[ (%#4s)%]%[%]"
...
...
@@ -2378,10 +2378,10 @@ This command accepts text number prefix arguments \(see
(
defun
lyskom-keep-alive-callback
(
buffer
)
(
condition-case
nil
(
save-
ex
cur
sion
(
set-buffer
buffer
)
(
if
(
eq
(
process-status
lyskom-proc
)
'open
)
(
initiate-get-time
'keep
nil
)
(
lyskom-stop-keep-alive
)))
(
save-cur
rent-buffer
(
set-buffer
buffer
)
(
if
(
eq
(
process-status
lyskom-proc
)
'open
)
(
initiate-get-time
'keep
nil
)
(
lyskom-stop-keep-alive
)))
(
error
(
lyskom-stop-keep-alive
))))
(
def-kom-command
kom-keep-alive
()
...
...
src/edit-text.el
View file @
b2d3faed
...
...
@@ -297,9 +297,6 @@ NUMBER is the number of the person. Used if the conf-stat is nil."
(
if
text-stat
(
let
((
mx-from
(
car
(
lyskom-get-aux-item
(
text-stat->aux-items
text-stat
)
17
)))
(
mx-author
(
car
(
lyskom-get-aux-item
(
text-stat->aux-items
text-stat
)
16
))))
(
lyskom-edit-insert-commented-author
(
if
(
or
mx-from
mx-author
)
(
lyskom-format-mx-author
mx-from
mx-author
)
...
...
@@ -659,16 +656,7 @@ This runs `kom-send-text-hook' and (for backwards compatibility)
(
lyskom-beep
kom-ding-on-no-subject
)
(
if
(
cdr-safe
(
cdr-safe
err
))
(
goto-char
(
car-safe
(
cdr-safe
(
cdr-safe
err
)))))
(
lyskom-message
"%s"
(
lyskom-get-string
(
car
(
cdr
err
))))
(
condition-case
nil
(
let
((
text
""
))
(
save-excursion
(
set-buffer
lyskom-buffer
)
(
if
(
and
(
string=
"kom.lysator.liu.se"
lyskom-server-name
)
(
eq
lyskom-pers-no
698
))
(
setq
text
"rende, IDI!"
)))
(
save-excursion
(
insert
text
)))
(
error
nil
)))
(
lyskom-message
"%s"
(
lyskom-get-string
(
car
(
cdr
err
)))))
(
lyskom-unknown-header
(
lyskom-message
"%s"
(
lyskom-get-string
(
car
(
cdr
err
)))))))
...
...
@@ -795,8 +783,7 @@ Cannot be called from a callback."
(
collector
(
make-collector
))
(
extra-headers
nil
)
(
buffer
(
current-buffer
))
(
me
(
save-excursion
(
set-buffer
lyskom-buffer
)
lyskom-pers-no
))
(
me
(
lyskom-with-lyskom-buffer
lyskom-pers-no
))
(
num-me
0
)
(
num-real-recpt
0
))
(
lyskom-ignore
text-stat
)
; Have no idea if its ever used...
...
...
@@ -837,15 +824,14 @@ Cannot be called from a callback."
;; Check for new comments
;;
(
when
(
save-excursion
(
set-buffer
lyskom-buffer
)
(
cond
((
null
kom-check-for-new-comments
)
nil
)
((
functionp
kom-check-for-new-comments
)
(
funcall
kom-check-for-new-comments
buffer
misc-list
subject
))
(
t
t
)))
(
when
(
lyskom-with-
lyskom-buffer
(
cond
((
null
kom-check-for-new-comments
)
nil
)
((
functionp
kom-check-for-new-comments
)
(
funcall
kom-check-for-new-comments
buffer
misc-list
subject
))
(
t
t
)))
(
lyskom-message
"%s"
(
lyskom-format
'checking-comments
))
(
save-excursion
(
set-buffer
lyskom-buffer
)
(
lyskom-with-lyskom-buffer
(
set-collector->value
collector
nil
)
(
mapc
(
lambda
(
text-stat
)
...
...
@@ -967,7 +953,7 @@ Cannot be called from a callback."
"lyskom-enriched"
t
)))
(
unwind-protect
(
save-
ex
cur
sion
(
save-cur
rent-buffer
(
set-buffer
buf
)
(
insert
lyskom-edit-text
)
(
goto-char
(
point-min
))
...
...
@@ -978,8 +964,7 @@ Cannot be called from a callback."
(
replace-in-string
(
buffer-substring
(
point
)
(
point-max
))
"<<"
"<"
t
)
lyskom-edit-text
))
(
save-excursion
(
set-buffer
lyskom-buffer
)
(
lyskom-with-lyskom-buffer
(
lyskom-j-or-n-p
(
lyskom-get-string
'send-formatted
))))
(
setq
lyskom-edit-text
(
buffer-substring
(
point
)
(
point-max
)))
...
...
@@ -1131,7 +1116,7 @@ info node in a LysKOM text."
(
interactive
)
(
condition-case
nil
(
let
((
link
nil
))
(
save-
ex
cur
sion
(
save-cur
rent-buffer
(
set-buffer
(
get-buffer
"*info*"
))
(
setq
link
(
format
"*Note %s: (%s)%s,"
Info-current-node
...
...
@@ -1206,7 +1191,7 @@ text was."
(
defun
lyskom-edit-move-recipients
(
conf-stat
insert-at
edit-buffer
)
(
save-
ex
cur
sion
(
save-cur
rent-buffer
(
set-buffer
edit-buffer
)
(
let*
((
headers
(
lyskom-edit-parse-headers
))
(
subject
(
lyskom-text-headers->subject
headers
))
...
...
@@ -1236,11 +1221,11 @@ text was."
miscs
)))))
(
lyskom-edit-replace-headers
subject
(
cons
'MISC-LIST
miscs
)
aux-list
))))
(
defun
lyskom-edit-do-add-recipient/copy
(
recpt-type
recpt-no
edit-buffer
)
(
save-
ex
cur
sion
(
save-cur
rent-buffer
(
set-buffer
edit-buffer
)
(
let*
((
headers
(
lyskom-edit-parse-headers
))
(
miscs
(
lyskom-edit-translate-headers
(
lyskom-text-headers->misc-info
headers
)))
...
...
@@ -1264,54 +1249,54 @@ RECPT-TYPE is the type of recipient to add."
(
insert-at
(
point-min-marker
))
(
conf-stat
(
lyskom-read-conf-stat
prompt
'
(
all
)
nil
nil
t
)))
(
lyskom-save-excursion
(
save-
ex
cur
sion
(
set-buffer
lyskom-buffer
)
;; +++ The information about msg-of-day might be old. We should
;; make sure it is up-to-date.
(
let
((
text-no
(
conf-stat->msg-of-day
conf-stat
))
(
win-config
nil
)
(
text
nil
)
(
text-stat
nil
)
(
collector
(
make-collector
)))
(
unless
(
zerop
text-no
)
(
initiate-get-text
'edit
'collector-push
text-no
collector
)
(
initiate-get-text-stat
'edit
'collector-push
text-no
collector
)
(
lyskom-wait-queue
'edit
)
(
setq
text-stat
(
elt
(
collector->value
collector
)
0
))
(
setq
text
(
elt
(
collector->value
collector
)
1
)))
(
when
(
or
(
null
text
)
(
null
text-stat
)
(
null
(
get-buffer-window
edit-buffer
))
(
progn
(
setq
win-config
(
current-window-configuration
))
(
with-output-to-temp-buffer
"*Motd*"
(
lyskom-princ
(
lyskom-format
'conf-has-motd-no
(
text->text-no
text
)
(
text->decoded-text-mass
text
text-stat
))))
(
j-or-n-p
(
lyskom-get-string
'still-want-to-add
))))
(
when
(
and
kom-confirm-add-recipients
(
eq
recpt-type
'RECPT
)
(
not
(
lyskom-j-or-n-p
(
lyskom-format
'really-add-as-recpt-q
conf-stat
))))
(
setq
recpt-type
'CC-RECPT
))
(
if
what-to-do
(
funcall
what-to-do
conf-stat
insert-at
edit-buffer
)
(
lyskom-edit-do-add-recipient/copy
recpt-type
(
conf-stat->conf-no
conf-stat
)
edit-buffer
)))
(
when
win-config
(
set-window-configuration
win-config
))))
(
save-cur
rent-buffer
(
set-buffer
lyskom-buffer
)
;; +++ The information about msg-of-day might be old. We should
;; make sure it is up-to-date.
(
let
((
text-no
(
conf-stat->msg-of-day
conf-stat
))
(
win-config
nil
)
(
text
nil
)
(
text-stat
nil
)
(
collector
(
make-collector
)))
(
unless
(
zerop
text-no
)
(
initiate-get-text
'edit
'collector-push
text-no
collector
)
(
initiate-get-text-stat
'edit
'collector-push
text-no
collector
)
(
lyskom-wait-queue
'edit
)
(
setq
text-stat
(
elt
(
collector->value
collector
)
0
))
(
setq
text
(
elt
(
collector->value
collector
)
1
)))
(
when
(
or
(
null
text
)
(
null
text-stat
)
(
null
(
get-buffer-window
edit-buffer
))
(
progn
(
setq
win-config
(
current-window-configuration
))
(
with-output-to-temp-buffer
"*Motd*"
(
lyskom-princ
(
lyskom-format
'conf-has-motd-no
(
text->text-no
text
)
(
text->decoded-text-mass
text
text-stat
))))
(
j-or-n-p
(
lyskom-get-string
'still-want-to-add
))))
(
when
(
and
kom-confirm-add-recipients
(
eq
recpt-type
'RECPT
)
(
not
(
lyskom-j-or-n-p
(
lyskom-format
'really-add-as-recpt-q
conf-stat
))))
(
setq
recpt-type
'CC-RECPT
))
(
if
what-to-do
(
funcall
what-to-do
conf-stat
insert-at
edit-buffer
)
(
lyskom-edit-do-add-recipient/copy
recpt-type
(
conf-stat->conf-no
conf-stat
)
edit-buffer
)))
(
when
win-config
(
set-window-configuration
win-config
))))
(
set-marker
insert-at
nil
))))
(
defun
lyskom-edit-sub-recipient/copy
(
recpt-no
edit-buffer
)
"Remove the recipient having RECPT-NO from EDIT-BUFFER"
(
save-
ex
cur
sion
(
save-cur
rent-buffer
(
set-buffer
edit-buffer
)
(
let*
((
headers
(
lyskom-edit-parse-headers
))
(
miscs
(
lyskom-edit-translate-headers
(
lyskom-text-headers->misc-info
headers
)))
...
...
@@ -1452,28 +1437,28 @@ link as a string."
(
defun
lyskom-edit-toggle-secret-aux
(
buf
arg
text
)
(
interactive
)
(
lyskom-
save-
ex
cur
sion
(
save-cur
rent-buffer
(
set-buffer
(
car
arg
))
(
goto-char
(
cdr
arg
))
(
lyskom-edit-toggle-aux-item-flag
buf
arg
text
'secret
)))
(
defun
lyskom-edit-toggle-anonymous-aux
(
buf
arg
text
)
(
interactive
)
(
save-
ex
cur
sion
(
save-cur
rent-buffer
(
set-buffer
(
car
arg
))
(
goto-char
(
cdr
arg
))
(
lyskom-edit-toggle-aux-item-flag
buf
arg
text
'anonymous
)))
(
defun
lyskom-edit-toggle-inherit-aux
(
buf
arg
text
)
(
interactive
)
(
save-
ex
cur
sion
(
save-cur
rent-buffer
(
set-buffer
(
car
arg
))
(
goto-char
(
cdr
arg
))
(
lyskom-edit-toggle-aux-item-flag
buf
arg
text
'inherit
)))
(
defun
lyskom-edit-delete-aux
(
buf
arg
text
)
(
interactive
)
(
save-
ex
cur
sion
(
save-cur
rent-buffer
(
set-buffer
(
car
arg
))
(
goto-char
(
cdr
arg
))
(
beginning-of-line
)
...
...
@@ -1481,8 +1466,7 @@ link as a string."
(
defun
lyskom-edit-generate-aux-item-flags
(
flags
)
(
save-excursion
(
let
((
str
(
mapconcat
'identity
(
let
((
str
(
mapconcat
'identity
(
delq
nil
(
list
(
and
(
aux-item-flags->secret
flags
)
...
...
@@ -1493,7 +1477,7 @@ link as a string."
(
lyskom-get-string
'inherit-aux-flag
))))
", "
)))
(
when
(
not
(
string=
str
""
))
(
format
" [%s]"
str
))))
)
(
format
" [%s]"
str
))))
(
defun
lyskom-edit-insert-aux-item-flags
(
flags
)
(
end-of-line
)
...
...
@@ -1593,53 +1577,54 @@ non-nil. If MATCH-NUMBER is 'angled, only match a number inside <>."
"Parse the headers of an article.
The value returned is a lyskom-text-headers structure."
(
goto-char
(
point-min
))
(
let
((
misc
nil
)
(
subject
nil
)
(
aux
nil
))
(
save-restriction
;; Narrow to headers
(
lyskom-edit-find-separator
t
)
(
narrow-to-region
(
point-min
)
(
point
))
(
goto-char
(
point-min
))
(
while
(
<
(
point
)
(
point-max
))
(
let
((
case-fold-search
t
)
(
n
nil
))
(
cond
((
setq
n
(
lyskom-looking-at-header
'recipient-prefix
'angled
))
(
setq
misc
(
nconc
misc
(
list
'RECPT
n
))))
((
setq
n
(
lyskom-looking-at-header
'carbon-copy-prefix
'angled
))
(
setq
misc
(
nconc
misc
(
list
'CC-RECPT
n
))))
((
setq
n
(
lyskom-looking-at-header
'blank-carbon-copy-prefix
'angled
))
(
setq
misc
(
nconc
misc
(
list
'BCC-RECPT
n
))))
((
setq
n
(
lyskom-looking-at-header
'comment-prefix
t
))
(
setq
misc
(
nconc
misc
(
list
'COMM-TO
n
))))
((
setq
n
(
lyskom-looking-at-header
'footnote-prefix
t
))
(
setq
misc
(
nconc
misc
(
list
'FOOTN-TO
n
))))
((
lyskom-looking-at-header
'header-subject
nil
)
(
setq
subject
(
lyskom-edit-extract-subject
)))
((
lyskom-looking-at
(
lyskom-get-string
'aux-item-prefix-regexp
))
(
goto-char
(
match-end
0
))
(
let
((
item
(
lyskom-edit-parse-aux-item
)))
(
if
item
(
setq
aux
(
cons
item
aux
))
(
signal
'lyskom-unknown-header
(
list
'unknown-header
(
point
))))))
((
lyskom-looking-at
(
lyskom-get-string
'comment-item-prefix
))
nil
)
((
or
(
lyskom-looking-at-header
'blank-carbon-copy-prefix
'empty
)
(
lyskom-looking-at-header
'carbon-copy-prefix
'empty
)
(
lyskom-looking-at-header
'recipient-prefix
'empty
))
nil
)
((
lyskom-looking-at-header
'add-recpt-button-text-regex
nil
)
nil
)
(
t
(
signal
'lyskom-unknown-header
(
list
'unknown-header
(
point
))))))
(
forward-line
1
)))
(
lyskom-create-lyskom-text-headers
subject
misc
aux
)))
(
save-excursion
(
goto-char
(
point-min
))
(
let
((
misc
nil
)
(
subject
nil
)
(
aux
nil
))
(
save-restriction
;; Narrow to headers
(
lyskom-edit-find-separator
t
)
(
narrow-to-region
(
point-min
)
(
point
))
(
goto-char
(
point-min
))
(
while
(
<
(
point
)
(
point-max
))
(
let
((
case-fold-search
t
)
(
n
nil
))
(
cond
((
setq
n
(
lyskom-looking-at-header
'recipient-prefix
'angled
))
(
setq
misc
(
nconc
misc
(
list
'RECPT
n
))))
((
setq
n
(
lyskom-looking-at-header
'carbon-copy-prefix
'angled
))
(
setq
misc
(
nconc
misc
(
list
'CC-RECPT
n
))))
((
setq
n
(
lyskom-looking-at-header
'blank-carbon-copy-prefix
'angled
))
(
setq
misc
(
nconc
misc
(
list
'BCC-RECPT
n
))))
((
setq
n
(
lyskom-looking-at-header
'comment-prefix
t
))
(
setq
misc
(
nconc
misc
(
list
'COMM-TO
n
))))
((
setq
n
(
lyskom-looking-at-header
'footnote-prefix
t
))
(
setq
misc
(
nconc
misc
(
list
'FOOTN-TO
n
))))
((
lyskom-looking-at-header
'header-subject
nil
)
(
setq
subject
(
lyskom-edit-extract-subject
)))
((
lyskom-looking-at
(
lyskom-get-string
'aux-item-prefix-regexp
))
(
goto-char
(
match-end
0
))
(
let
((
item
(
lyskom-edit-parse-aux-item
)))
(
if
item
(
setq
aux
(
cons
item
aux
))
(
signal
'lyskom-unknown-header
(
list
'unknown-header
(
point
))))))
((
lyskom-looking-at
(
lyskom-get-string
'comment-item-prefix
))
nil
)
((
or
(
lyskom-looking-at-header
'blank-carbon-copy-prefix
'empty
)
(
lyskom-looking-at-header
'carbon-copy-prefix
'empty
)
(
lyskom-looking-at-header
'recipient-prefix
'empty
))
nil
)
((
lyskom-looking-at-header
'add-recpt-button-text-regex
nil
)
nil
)
(
t
(
signal
'lyskom-unknown-header
(
list
'unknown-header
(
point
))))))
(
forward-line
1
)))
(
lyskom-create-lyskom-text-headers
subject
misc
aux
))))
(
defun
lyskom-edit-parse-aux-item
()
(
let
((
definitions
lyskom-aux-item-definitions
)
...
...
@@ -1737,8 +1722,8 @@ Point must be located on the line where the subject is."
(
initiate-get-conf-stat
'background