From 187c350ede6907ae6e23dafbd529fa146a4ddf4e Mon Sep 17 00:00:00 2001
From: David Byers <david.byers@liu.se>
Date: Mon, 21 May 2001 12:39:16 +0000
Subject: [PATCH] =?UTF-8?q?Synkning=20inf=C3=B6r=20release=20av=200.46.2-B?=
 =?UTF-8?q?ETA-1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 doc/Makefile           |  2 +-
 doc/NEWS-0.46.1        | 10 ++++++++++
 src/ChangeLog          | 36 ++++++++++++++++++++++++++++++++++++
 src/commands1.el       |  6 ++++++
 src/edit-text.el       |  2 ++
 src/english-strings.el |  8 +++++++-
 src/lyskom-rest.el     |  6 +++++-
 src/option-edit.el     |  2 ++
 src/review.el          | 39 +++++++++++++++++++++++++++++++++------
 src/swedish-strings.el |  6 ++++++
 src/vars.el.in         |  5 +++++
 src/view-text.el       |  4 +++-
 12 files changed, 116 insertions(+), 10 deletions(-)

diff --git a/doc/Makefile b/doc/Makefile
index b208405c..094e8053 100644
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -22,7 +22,7 @@
 #
 # Please mail bug reports to bug-lyskom@lysator.liu.se.
 
-CLIENTVERSION = 0.46.1
+CLIENTVERSION = 0.46.2-BETA-1
 
 SHELL = /bin/sh
 RM = rm -f
diff --git a/doc/NEWS-0.46.1 b/doc/NEWS-0.46.1
index 36827424..5c753b5c 100644
--- a/doc/NEWS-0.46.1
+++ b/doc/NEWS-0.46.1
@@ -60,6 +60,16 @@
     eller set-buffer-multibyte i din .emacs.
 
 
+    XEmacs 21.2
+    -----------
+
+    En del användare har rapporterat problem i med elispklienten i
+    XEmacs 21.2. Om klienten fungerar i XEmacs 21.2 så är det ren tur.
+    Om den inte fungerar så är det dags att uppgradera till en
+    tidigare version. När XEmacs 21.2 har börjat stabiliseras så
+    kommer säkert någon att se till att elispklienten fungerar där.
+
+
 
     Kompilering
     -----------
diff --git a/src/ChangeLog b/src/ChangeLog
index 1d057d6b..51a2bbfe 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,39 @@
+2001-05-21  David Byers  <davby@sen2.ida.liu.se>
+
+	* Release av 0.46.1-BETA-1
+
+2001-05-21  David Byers  <davby@ida.liu.se>
+
+	* option-edit.el: Added kom-review-uses-cache.
+
+	* view-text.el (lyskom-view-text): Don't prefetch stuff if we are
+	reviewing and will delete the prefetched stuff anyway.
+
+	* lyskom-rest.el (kom-view): Check kom-review-uses-cache.
+	(kom-view-next-text): Same here.
+
+	* edit-text.el (lyskom-edit-show-commented): Check
+	kom-review-uses-cache.
+
+	* commands1.el (lyskom-view-commented-text): Check
+	kom-review-uses-cache. 
+
+	* review.el (kom-find-root): Check kom-review-uses-cache.
+	(kom-review-comments): Same here.
+	(kom-review-tree): Same here.
+	(kom-find-root): Same here.
+	(kom-find-root-review): Same here.
+	(lyskom-find-root): Same here (two places)
+	(lyskom-review-comments): Same here.
+	(kom-review-last-normally-read): Same here.
+	(kom-review-noconversion): Same here.
+
+	* commands1.el (kom-view-commented-text): Check
+	kom-review-uses-cache. 
+	(kom-view-previous-commented-text): Same here.
+
+	* vars.el.in (kom-review-uses-cache): New variable.
+
 2001-05-15  David Byers  <davby@ida.liu.se>
 
 	* commands1.el (kom-jump): Probably works in tree review mode, at
diff --git a/src/commands1.el b/src/commands1.el
index 58544c35..126efd8c 100644
--- a/src/commands1.el
+++ b/src/commands1.el
@@ -188,6 +188,8 @@ optional arg TEXT-NO is present review the text that text commented instead."
   (if text-no
       (progn
 	(lyskom-tell-internat 'kom-tell-read)
+        (unless kom-review-uses-cache
+          (cache-del-text-stat text-no))
 	(lyskom-view-commented-text
 	 (blocking-do 'get-text-stat text-no)))
     (lyskom-insert-string 'confusion-what-to-view)))
@@ -202,6 +204,8 @@ the other ones."
                                                      lyskom-previous-text)))
   (cond (text-no
          (lyskom-tell-internat 'kom-tell-read)
+        (unless kom-review-uses-cache
+          (cache-del-text-stat text-no))
          (lyskom-view-commented-text
           (blocking-do 'get-text-stat lyskom-previous-text)))
         (t (lyskom-insert-string 'confusion-what-to-view))))
@@ -235,6 +239,8 @@ the other ones."
                 (lyskom-create-text-list (cdr text-nos))
                 lyskom-current-text)
                lyskom-reading-list t))
+          (unless kom-review-uses-cache
+            (cache-del-text-stat (car text-nos)))
           (lyskom-view-text (car text-nos)
 			    nil nil nil 
 			    nil nil nil
diff --git a/src/edit-text.el b/src/edit-text.el
index 208d0711..e7c532a8 100644
--- a/src/edit-text.el
+++ b/src/edit-text.el
@@ -1763,6 +1763,8 @@ the with-output-to-temp-buffer command is issued to make them both apear."
                (kom-deferred-printing nil))
            (save-selected-window
              (lyskom-display-buffer buf)
+             (unless kom-review-uses-cache
+               (cache-del-text-stat (text->text-no text)))
              (save-excursion (set-buffer buf)
                              (erase-buffer)
                              (lyskom-view-text (text->text-no text))
diff --git a/src/english-strings.el b/src/english-strings.el
index a83571b1..5d3a6263 100644
--- a/src/english-strings.el
+++ b/src/english-strings.el
@@ -3234,7 +3234,12 @@ be saved in the server. Otherwise it will be saved in your .emacs.")
     (kom-print-seconds-in-time-strings-doc . "\
   If this setting is on, some time strings (for example the creation
   time of texts and sent messages) will include seconds.")
-
+    (kom-review-uses-cache-doc . "\
+  If this is turned on, commands that review texts will use saved copies
+  of the text rather then get new copies from the server. This makes the
+  commands run significantly faster, but in some cases the texts may 
+  have changed since they were copied, and you will not see those 
+  changes.")
 
     ;;
     ;; Tags for variables
@@ -3396,6 +3401,7 @@ be saved in the server. Otherwise it will be saved in your .emacs.")
     (kom-dont-check-commented-authors-tag . "Authors not to check:")
     (kom-print-relative-dates-tag . "Show relative dates:")
     (kom-print-seconds-in-time-strings-tag . "Include seconds in time strings:")
+    (kom-review-uses-cache-tag . "Review commands use cached texts:")
     )
 )
 
diff --git a/src/lyskom-rest.el b/src/lyskom-rest.el
index 194a5df3..6cb37314 100644
--- a/src/lyskom-rest.el
+++ b/src/lyskom-rest.el
@@ -319,6 +319,8 @@ If the optional argument REFETCH is non-nil, all caches are cleared and
                  )
                (lyskom-tell-internat 'kom-tell-review)
                (lyskom-format-insert 'review-text-no text-no)
+               (unless kom-review-uses-cache
+                 (cache-del-text-stat text-no))
                (lyskom-view-text text-no))
               (t (lyskom-insert 'confusion-what-to-view))))
     (lyskom-end-of-command)))
@@ -400,7 +402,9 @@ If the optional argument REFETCH is non-nil, all caches are cleared and
 				is-review-tree))
 		 (mark-as-read (not is-review)))
 	    (when is-review
-              (delq text-no (read-info->text-list tri))) ;First entry only
+              (delq text-no (read-info->text-list tri)) ;First entry only
+              (unless kom-review-uses-cache
+                (cache-del-text-stat text-no)))
 	    (setq action
 		  (lyskom-view-text text-no mark-as-read 
 				    (and kom-read-depth-first
diff --git a/src/option-edit.el b/src/option-edit.el
index 8533b275..cf938f52 100644
--- a/src/option-edit.el
+++ b/src/option-edit.el
@@ -158,6 +158,7 @@
     [kom-follow-attachments]
     [kom-created-texts-are-read]
     [kom-created-texts-are-saved]
+    [kom-review-uses-cache]
     "\n"
     [kom-saved-file-name]
     [kom-default-mark]
@@ -492,6 +493,7 @@ customize buffer but do not save them to the server."
     (kom-enabled-prompt-format-executing (string))
     (kom-cite-string (string))
     (kom-created-texts-are-read (toggle (yes no)))
+    (kom-review-uses-cache (toggle (yes no)))
     (kom-created-texts-are-saved (choice ((const (no nil))
                                           (file nil :tag to-file))))
     (kom-default-mark (choice ((number (0 255) 
diff --git a/src/review.el b/src/review.el
index e48a09c5..097e5e41 100644
--- a/src/review.el
+++ b/src/review.el
@@ -978,11 +978,15 @@ instead. In this case the text TEXT-NO is first shown."
   (interactive (list (lyskom-read-text-no-prefix-arg 'review-tree-q)))
   (lyskom-tell-internat 'kom-tell-review)
   (if text-no
-      (let ((ts (blocking-do 'get-text-stat text-no)))
-	(lyskom-follow-comments ts
-				nil 'review
-				(lyskom-review-get-priority)
-				t))
+      (progn
+        (unless kom-review-uses-cache
+          (cache-del-text-stat text-no))
+        
+        (let ((ts (blocking-do 'get-text-stat text-no)))
+          (lyskom-follow-comments ts
+                                  nil 'review
+                                  (lyskom-review-get-priority)
+                                  t)))
     (lyskom-insert-string 'read-text-first)))
 
 
@@ -992,6 +996,8 @@ instead. In this case the text TEXT-NO is first shown."
   (lyskom-tell-internat 'kom-tell-review)
   (cond
    (text-no
+    (unless kom-review-uses-cache
+      (cache-del-text-stat text-no))
     (let* ((ts (blocking-do 'get-text-stat text-no))
 	   (r (lyskom-find-root ts t)))
       (cond ((> (length r) 1)
@@ -1004,7 +1010,9 @@ instead. In this case the text TEXT-NO is first shown."
                (lyskom-review-get-priority)
                (lyskom-create-text-list r)
                nil t) t))
-            (r (lyskom-view-text (car r)))
+            (r (unless kom-review-uses-cache
+                 (cache-del-text-stat (car r)))
+               (lyskom-view-text (car r)))
             (t (signal 'lyskom-internal-error "Could not find root")))
       )
     )
@@ -1019,6 +1027,8 @@ reviews the whole tree in deep-first order."
   (lyskom-tell-internat 'kom-tell-review)
   (cond
    (text-no
+    (unless kom-review-uses-cache
+      (cache-del-text-stat text-no))
     (let* ((ts (blocking-do 'get-text-stat text-no))
            (start (lyskom-find-root ts t)))
       (cond ((> (length start) 1)
@@ -1052,12 +1062,16 @@ If ALL is set, return a list of all root texts."
              (setq misclist (text-stat->misc-info-list head))
              (while misclist
                (cond ((eq (misc-info->type (car misclist)) 'COMM-TO)
+                      (unless kom-review-uses-cache
+                        (cache-del-text-stat (misc-info->comm-to (car misclist))))
                       (setq tmp
                             (cons
                              (blocking-do 'get-text-stat
                                           (misc-info->comm-to (car misclist)))
                              tmp)))
                      ((eq (misc-info->type (car misclist)) 'FOOTN-TO)
+                      (unless kom-review-uses-cache
+                        (cache-del-text-stat (misc-info->footn-to (car misclist))))
                       (setq tmp 
                             (cons
                              (blocking-do 'get-text-stat
@@ -1092,6 +1106,8 @@ Does a lyskom-end-of-command.
 Text is a text-no."
   (cond
    ((integerp text)
+    (unless kom-review-uses-cache
+      (cache-del-text-stat text))
     (lyskom-view-text text nil t nil (lyskom-review-get-priority) t))
    (t
     (signal 'lyskom-internal-error
@@ -1197,6 +1213,8 @@ text is shown and a REVIEW list is built to shown the other ones."
   (interactive (list (lyskom-read-text-no-prefix-arg 'review-comments-q)))
   (lyskom-tell-internat 'kom-tell-review)
   (cond (text-no
+         (unless kom-review-uses-cache
+           (cache-del-text-stat text-no))
          (lyskom-review-comments
           (blocking-do 'get-text-stat text-no)))
         (t lyskom-insert-string 'read-text-first)))
@@ -1223,6 +1241,8 @@ text is shown and a REVIEW list is built to shown the other ones."
          text-nos)
     ;; Only try to review texts that we can read.
     (while all-text-nos
+      (unless kom-review-uses-cache
+        (cache-del-text-stat (car all-text-nos)))
       (if (blocking-do 'get-text-stat (car all-text-nos))
           (setq text-nos (cons (car all-text-nos) text-nos)))
       (setq all-text-nos (cdr all-text-nos)))
@@ -1237,6 +1257,9 @@ text is shown and a REVIEW list is built to shown the other ones."
                 'REVIEW nil (lyskom-review-get-priority)
                 (lyskom-create-text-list (cdr text-nos))
                 lyskom-current-text) t))
+          ;; Don't check the no-cache thing here since we already
+          ;; did earlier. We may end up slightly out of sync with
+          ;; the server, but not so anyone will really notice.
 	  (lyskom-view-text (car text-nos)))
       (lyskom-insert-string 'no-such-text))))
 
@@ -1263,6 +1286,8 @@ text is shown and a REVIEW list is built to shown the other ones."
                 'REVIEW nil (lyskom-review-get-priority)
                 (lyskom-create-text-list (cdr text-nos))
                 lyskom-current-text) t))
+          (unless kom-review-uses-cache
+            (cache-del-text-stat (car text-nos)))
 	  (lyskom-view-text (car text-nos)))
       (lyskom-format-insert 'no-such-text))))
 
@@ -1280,6 +1305,8 @@ text is shown and a REVIEW list is built to shown the other ones."
       (let ((lyskom-format-special nil)
             (kom-smileys nil)
             (kom-autowrap nil))
+          (unless kom-review-uses-cache
+            (cache-del-text-stat text-no))
         (lyskom-view-text text-no))
     (lyskom-insert 'confusion-what-to-view)))
 
diff --git a/src/swedish-strings.el b/src/swedish-strings.el
index 643b8b1c..2fcad7ed 100644
--- a/src/swedish-strings.el
+++ b/src/swedish-strings.el
@@ -3670,6 +3670,11 @@ i servern. Annars sparas det i din .emacs.")
   Om denna inställning är påslagen kommer en del tidsangivelser (till
   exempel för visade inlägg och sända meddelanden) att inkludera
   sekunder.")
+    (kom-review-uses-cache-doc . "\
+  Om detta är påslaget så kommer kommandon som återser inlägg att 
+  använda sparade kopior av inläggen om de finns. Det gör att kommandona
+  går lite snabbare, men det finns en viss risk för att ett inlägg kan
+  ha ändrats sedan kopian sparades.")
 
 
     ;;
@@ -3832,6 +3837,7 @@ i servern. Annars sparas det i din .emacs.")
     (kom-dont-check-commented-authors-tag . "Författare som inte kontrolleras:")
     (kom-print-relative-dates-tag . "Visa relativa datumangivelser:")
     (kom-print-seconds-in-time-strings-tag . "Inkludera sekunder i tidsangivelser:")
+    (kom-review-uses-cache-tag . "Återsekommandon använder sparade inlägg:")
     )
 )
 
diff --git a/src/vars.el.in b/src/vars.el.in
index ec6bdbd0..ca703060 100644
--- a/src/vars.el.in
+++ b/src/vars.el.in
@@ -218,6 +218,11 @@ The value of this variable is the file name on which to save new texts."
   server
   inherited)
 
+(def-kom-var kom-review-uses-cache t
+  "*If non-nil, review commands don't use the cache."
+  server
+  inherited)
+
 (def-kom-var kom-postpone-default 17
   "*The number of articles to postpone by default."
   server)
diff --git a/src/view-text.el b/src/view-text.el
index ca3d04e6..3e2c9cea 100644
--- a/src/view-text.el
+++ b/src/view-text.el
@@ -377,7 +377,9 @@ Note that this function must not be called asynchronously."
 		       (progn
 			 ;; this is a bit silly, as it prefetches all
 			 ;; the texts many times.
-			 (lyskom-prefetch-texttree text-no)
+                         (unless (and build-review-tree
+                                      kom-review-uses-cache)
+                           (lyskom-prefetch-texttree text-no))
 			 (lyskom-follow-comments text-stat
 						 conf-stat mark-as-read
 						 priority build-review-tree)))
-- 
GitLab