Merge from emacs--devo--0

Patches applied:

 * emacs--devo--0  (patch 427-436)

   - Update from CVS
   - Merge from gnus--rel--5.10

 * gnus--rel--5.10  (patch 134-136)

   - Merge from emacs--devo--0
   - Update from CVS

Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-110
This commit is contained in:
Miles Bader 2006-09-14 09:24:00 +00:00
commit 863153c57b
109 changed files with 3131 additions and 1650 deletions

View file

@ -66,13 +66,13 @@
;;
;; The corresponding Lisp bindat specification looks like this:
;;
;; (setq header-spec
;; (setq header-bindat-spec
;; '((dest-ip ip)
;; (src-ip ip)
;; (dest-port u16)
;; (src-port u16)))
;;
;; (setq data-spec
;; (setq data-bindat-spec
;; '((type u8)
;; (opcode u8)
;; (length u16r) ;; little endian order
@ -80,12 +80,12 @@
;; (data vec (length))
;; (align 4)))
;;
;; (setq packet-spec
;; '((header struct header-spec)
;; (setq packet-bindat-spec
;; '((header struct header-bindat-spec)
;; (items u8)
;; (fill 3)
;; (item repeat (items)
;; (struct data-spec))))
;; (struct data-bindat-spec))))
;;
;;
;; A binary data representation may look like
@ -121,6 +121,9 @@
;; Binary Data Structure Specification Format
;; ------------------------------------------
;; We recommend using names that end in `-bindat-spec'; such names
;; are recognized automatically as "risky" variables.
;; The data specification is formatted as follows:
;; SPEC ::= ( ITEM... )
@ -342,8 +345,8 @@
(defun bindat-unpack (spec bindat-raw &optional bindat-idx)
"Return structured data according to SPEC for binary data in BINDAT-RAW.
BINDAT-RAW is a unibyte string or vector. Optional third arg BINDAT-IDX specifies
the starting offset in BINDAT-RAW."
BINDAT-RAW is a unibyte string or vector.
Optional third arg BINDAT-IDX specifies the starting offset in BINDAT-RAW."
(when (multibyte-string-p bindat-raw)
(error "String is multibyte"))
(unless bindat-idx (setq bindat-idx 0))

View file

@ -149,13 +149,20 @@ be a symbol, or any generalized variable allowed by `setf'."
(if (symbolp place) (list 'setq place (list 'cons x place))
(list 'callf2 'cons x place)))
(defvar pushnew-internal)
(defmacro pushnew (x place &rest keys)
"(pushnew X PLACE): insert X at the head of the list if not already there.
Like (push X PLACE), except that the list is unmodified if X is `eql' to
an element already on the list.
\nKeywords supported: :test :test-not :key
\n(fn X PLACE [KEYWORD VALUE]...)"
(if (symbolp place) (list 'setq place (list* 'adjoin x place keys))
(if (symbolp place)
(if (null keys)
`(let ((pushnew-internal ,place))
(add-to-list 'pushnew-internal ,x nil 'eql)
(setq ,place pushnew-internal))
(list 'setq place (list* 'adjoin x place keys)))
(list* 'callf2 'adjoin x place keys)))
(defun cl-set-elt (seq n val)

View file

@ -432,7 +432,7 @@ Emacs Lisp mode) that support Eldoc.")
;; Prime the command list.
(eldoc-add-command-completions
"backward-" "beginning-of-" "move-beginning-of-" "delete-other-windows"
"delete-window"
"delete-window" "handle-select-window"
"end-of-" "move-end-of-" "exchange-point-and-mark" "forward-"
"indent-for-tab-command" "goto-" "mark-page" "mark-paragraph"
"mouse-set-point" "move-" "pop-global-mark" "next-" "other-window"

View file

@ -32,9 +32,11 @@
;; Layout of a timer vector:
;; [triggered-p high-seconds low-seconds usecs repeat-delay
;; function args idle-delay]
;; triggered-p is nil if the timer is active (waiting to be triggered),
;; t if it is inactive ("already triggered", in theory)
(defun timer-create ()
"Create a timer object."
"Create a timer object which can be passed to `timer-activate'."
(let ((timer (make-vector 8 nil)))
(aset timer 0 t)
timer))
@ -173,6 +175,10 @@ fire repeatedly that many seconds apart."
(defun timer-activate (timer &optional triggered-p reuse-cell)
"Put TIMER on the list of active timers.
If TRIGGERED-P is t, that means to make the timer inactive
\(put it on the list, but mark it as already triggered).
To remove from the list, use `cancel-timer'.
REUSE-CELL, if non-nil, is a cons cell to reuse instead
of allocating a new one."
(if (and (timerp timer)
@ -256,10 +262,10 @@ of allocating a new one."
(setq timer-idle-list (delq timer timer-idle-list))
nil)
;; Remove TIMER from the list of active timers or idle timers.
;; Only to be used in this file. It returns the cons cell
;; that was removed from the list.
(defun cancel-timer-internal (timer)
"Remove TIMER from the list of active timers or idle timers.
Only to be used in this file. It returns the cons cell
that was removed from the timer list."
(let ((cell1 (memq timer timer-list))
(cell2 (memq timer timer-idle-list)))
(if cell1
@ -270,7 +276,9 @@ of allocating a new one."
;;;###autoload
(defun cancel-function-timers (function)
"Cancel all timers scheduled by `run-at-time' which would run FUNCTION."
"Cancel all timers which would run FUNCTION.
This affects ordinary timers such as are scheduled by `run-at-time',
and idle timers such as are scheduled by `run-with-idle-timer'."
(interactive "aCancel timers of function: ")
(let ((tail timer-list))
(while tail
@ -284,9 +292,12 @@ of allocating a new one."
(setq tail (cdr tail)))))
;; Record the last few events, for debugging.
(defvar timer-event-last-2 nil)
(defvar timer-event-last-1 nil)
(defvar timer-event-last nil)
(defvar timer-event-last nil
"Last timer that was run.")
(defvar timer-event-last-1 nil
"Next-to-last timer that was run.")
(defvar timer-event-last-2 nil
"Third-to-last timer that was run.")
(defvar timer-max-repeats 10
"*Maximum number of times to repeat a timer, if real time jumps.")
@ -440,6 +451,7 @@ This function returns a timer object which you can use in `cancel-timer'."
timer))
(defun with-timeout-handler (tag)
"This is the timer function used for the timer made by `with-timeout'."
(throw tag 'timeout))
;;;###autoload (put 'with-timeout 'lisp-indent-function 1)