* gnus-sum.el (gnus-summary-initial-limit): Inline
authorLars Magne Ingebrigtsen <larsi@gnus.org>
Wed, 16 Jan 2002 02:10:01 +0000 (02:10 +0000)
committerLars Magne Ingebrigtsen <larsi@gnus.org>
Wed, 16 Jan 2002 02:10:01 +0000 (02:10 +0000)
gnus-summary-limit-children.
(gnus-summary-initial-limit): Don't limit if
gnus-newsgroup-display is nil.
(gnus-summary-initial-limit): No, don't.

* gnus-util.el
(gnus-put-text-property-excluding-characters-with-faces): Inline
gnus-put-text-property.

* gnus-spec.el (gnus-default-format-specs): New variable.

* gnus-start.el (gnus-read-newsrc-file): Don't clear
gnus-format-specs.
(gnus-read-newsrc-el-file): Default to gnus-default-format-specs.

* gnus-spec.el (gnus-update-format-specifications): Really check
the Gnus version of the .newsrc.eld file.
(gnus-format-specs): Save the new default summary format.

* gnus-util.el (gnus-parent-id): Check whether references is empty
before splitting.

* gnus-sum.el (gnus-summary-from-or-to-or-newsgroups): Inline some
functions.
(gnus-gather-threads-by-references): Inline
`gnus-split-references'.

* gnus-spec.el (gnus-summary-line-format-spec): New, optimized
default value of gnus-summary-line-format-spec.

lisp/ChangeLog
lisp/gnus-fun.el
lisp/gnus-spec.el
lisp/gnus-start.el
lisp/gnus-sum.el
lisp/gnus-util.el

index 34f2392..67c418c 100644 (file)
@@ -1,3 +1,36 @@
+2002-01-16  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus-sum.el (gnus-summary-initial-limit): Inline
+       gnus-summary-limit-children. 
+       (gnus-summary-initial-limit): Don't limit if
+       gnus-newsgroup-display is nil.
+       (gnus-summary-initial-limit): No, don't.
+
+       * gnus-util.el
+       (gnus-put-text-property-excluding-characters-with-faces): Inline
+       gnus-put-text-property. 
+
+       * gnus-spec.el (gnus-default-format-specs): New variable.
+
+       * gnus-start.el (gnus-read-newsrc-file): Don't clear
+       gnus-format-specs. 
+       (gnus-read-newsrc-el-file): Default to gnus-default-format-specs. 
+
+       * gnus-spec.el (gnus-update-format-specifications): Really check
+       the Gnus version of the .newsrc.eld file.
+       (gnus-format-specs): Save the new default summary format.
+
+       * gnus-util.el (gnus-parent-id): Check whether references is empty
+       before splitting.
+
+       * gnus-sum.el (gnus-summary-from-or-to-or-newsgroups): Inline some
+       functions. 
+       (gnus-gather-threads-by-references): Inline
+       `gnus-split-references'. 
+
+       * gnus-spec.el (gnus-summary-line-format-spec): New, optimized
+       default value of gnus-summary-line-format-spec.
+
 2002-01-15  ShengHuo ZHU  <zsh@cs.rochester.edu>
 
        * nnslashdot.el (nnslashdot-retrieve-headers-1): A better error
index eb46557..301760a 100644 (file)
@@ -190,6 +190,42 @@ colors of the displayed X-Faces."
               pbm 'pbm t :ascent 'center :face 'gnus-x-face))))
          (gnus-add-wash-type 'xface))))))
 
+(defun gnus-grab-cam-x-face ()
+  "Grab a picture off the camera and make it into an X-Face."
+  (interactive)
+  (shell-command "xawtv-remote snap ppm")
+  (let ((file nil))
+    (while (null (setq file (directory-files "/tftpboot/sparky/tmp"
+                                            t "snap.*ppm")))
+      (sleep-for 1))
+    (setq file (car file))
+    (with-temp-buffer
+      (shell-command
+       (format "pnmcut -left 110 -top 60 -width 144 -height 144 '%s' | ppmnorm 2>/dev/null | pnmscale -width 48 | ppmtopgm | pgmtopbm | pbmtoxbm | compface"
+              file)
+       (current-buffer))
+      ;;(sleep-for 3)
+      (delete-file file)
+      (buffer-string))))
+
+(defun gnus-grab-gray-x-face ()
+  "Grab a picture off the camera and make it into an X-Face."
+  (interactive)
+  (shell-command "xawtv-remote snap ppm")
+  (let ((file nil))
+    (while (null (setq file (directory-files "/tftpboot/sparky/tmp"
+                                            t "snap.*ppm")))
+      (sleep-for 1))
+    (setq file (car file))
+    (with-temp-buffer
+      (shell-command
+       (format "pnmcut -left 70 -top 100 -width 144 -height 144 '%s' | ppmquant 256 2>/dev/null | ppmtogif > '%s.gif'"
+              file file)
+       (current-buffer))
+      (delete-file file))
+    (gnus-convert-image-to-gray-x-face (concat file ".gif") 3)
+    (delete-file (concat file ".gif"))))
+
 (provide 'gnus-fun)
 
 ;;; gnus-fun.el ends here
index 9ca177c..7c1caa8 100644 (file)
@@ -74,6 +74,8 @@
 (defvar gnus-tmp-article-number)
 (defvar gnus-mouse-face)
 (defvar gnus-mouse-face-prop)
+(defvar gnus-tmp-header)
+(defvar gnus-tmp-from)
 
 (defun gnus-summary-line-format-spec ()
   (insert gnus-tmp-unread gnus-tmp-replied
    (point)
    (progn
      (insert
-      gnus-tmp-opening-bracket
-      (format "%4d: %-20s"
-             gnus-tmp-lines
-             (if (> (length gnus-tmp-name) 20)
-                 (substring gnus-tmp-name 0 20)
-               gnus-tmp-name))
-      gnus-tmp-closing-bracket)
+      (format "%c%4s: %-23s%c" gnus-tmp-opening-bracket gnus-tmp-lines
+             (let ((val
+                    (inline
+                      (gnus-summary-from-or-to-or-newsgroups
+                       gnus-tmp-header gnus-tmp-from))))
+               (if (> (length val) 23)
+                   (substring val 0 23)
+                 val))
+             gnus-tmp-closing-bracket))
      (point))
    gnus-mouse-face-prop gnus-mouse-face)
   (insert " " gnus-tmp-subject-or-nil "\n"))
     (group "%M\%S\%p\%P\%5y: %(%g%)%l\n" ,gnus-group-line-format-spec)
     (summary-dummy "*  %(:                          :%) %S\n"
                   ,gnus-summary-dummy-line-format-spec)
-    (summary "%U\%R\%z\%I\%(%[%4L: %-23,23n%]%) %s\n"
+    (summary "%U%R%z%I%(%[%4L: %-23,23f%]%) %s\n"
             ,gnus-summary-line-format-spec))
   "Alist of format specs.")
 
+(defvar gnus-default-format-specs gnus-format-specs)
+
 (defvar gnus-article-mode-line-format-spec nil)
 (defvar gnus-summary-mode-line-format-spec nil)
 (defvar gnus-group-mode-line-format-spec nil)
   ;; Make the indentation array.
   ;; See whether all the stored info needs to be flushed.
   (when (or force
+           (not gnus-newsrc-file-version)
            (not (equal (gnus-continuum-version)
-                       (cdr (assq 'gnus-version gnus-format-specs))))
+                       (gnus-continuum-version gnus-newsrc-file-version)))
            (not (equal emacs-version
                        (cdr (assq 'version gnus-format-specs)))))
     (setq gnus-format-specs nil))
index 5bd53fa..295d4c9 100644 (file)
@@ -611,7 +611,7 @@ the first newsgroup."
 (defun gnus-clear-system ()
   "Clear all variables and buffers."
   ;; Clear Gnus variables.
-  (let ((variables gnus-variable-list))
+  (let ((variables (delete 'gnus-format-specs gnus-variable-list)))
     (while variables
       (set (car variables) nil)
       (setq variables (cdr variables))))
@@ -2014,7 +2014,7 @@ newsgroup."
   "Read startup file.
 If FORCE is non-nil, the .newsrc file is read."
   ;; Reset variables that might be defined in the .newsrc.eld file.
-  (let ((variables gnus-variable-list))
+  (let ((variables (delete 'gnus-format-specs gnus-variable-list)))
     (while variables
       (set (car variables) nil)
       (setq variables (cdr variables))))
@@ -2099,8 +2099,8 @@ If FORCE is non-nil, the .newsrc file is read."
             (and gnus-newsrc-file-version
                  (gnus-continuum-version gnus-newsrc-file-version))))
        (when (or (not version)
-                 (< version 5.090002))
-         (setq gnus-format-specs nil)))
+                 (< version 5.090009))
+         (setq gnus-format-specs gnus-default-format-specs)))
       (when gnus-newsrc-assoc
        (setq gnus-newsrc-alist gnus-newsrc-assoc)))
     (gnus-make-hashtable-from-newsrc-alist)
index de8df4e..d06ee42 100644 (file)
@@ -2987,11 +2987,12 @@ buffer that was in action when the last article was fetched."
            (cond
             ((setq to (cdr (assq 'To extra-headers)))
              (concat "-> "
-                     (gnus-summary-extract-address-component
-                      (funcall gnus-decode-encoded-word-function to))))
+                     (inline
+                       (gnus-summary-extract-address-component
+                        (funcall gnus-decode-encoded-word-function to)))))
             ((setq newsgroups (cdr (assq 'Newsgroups extra-headers)))
              (concat "=> " newsgroups)))))
-     (gnus-summary-extract-address-component gnus-tmp-from))))
+     (inline (gnus-summary-extract-address-component gnus-tmp-from)))))
 
 (defun gnus-summary-insert-line (gnus-tmp-header
                                 gnus-tmp-level gnus-tmp-current
@@ -3427,7 +3428,7 @@ If NO-DISPLAY, don't generate a summary buffer."
     (while threads
       (when (setq references (mail-header-references (caar threads)))
        (setq id (mail-header-id (caar threads))
-             ids (gnus-split-references references)
+             ids (inline (gnus-split-references references))
              entered nil)
        (while (setq ref (pop ids))
          (setq ids (delete ref ids))
index 92a1af9..4802e83 100644 (file)
@@ -477,7 +477,8 @@ jabbering all the time."
 (defsubst gnus-parent-id (references &optional n)
   "Return the last Message-ID in REFERENCES.
 If N, return the Nth ancestor instead."
-  (when references
+  (when (and references
+            (not (zerop (length references))))
     (let ((ids (inline (gnus-split-references references))))
       (while (nthcdr (or n 1) ids)
        (setq ids (cdr ids)))
@@ -675,9 +676,10 @@ Bind `print-quoted' and `print-readably' to t while printing."
       (when (get-text-property b 'gnus-face)
        (setq b (next-single-property-change b 'gnus-face nil end)))
       (when (/= b end)
-       (gnus-put-text-property
-        b (setq b (next-single-property-change b 'gnus-face nil end))
-        prop val)))))
+       (inline
+         (gnus-put-text-property
+          b (setq b (next-single-property-change b 'gnus-face nil end))
+          prop val))))))
 
 ;;; Protected and atomic operations.  dmoore@ucsd.edu 21.11.1996
 ;;; The primary idea here is to try to protect internal datastructures