Gnus development mailing list
 help / color / mirror / Atom feed
* Re: Limiting number of Incomingxxxx mails
       [not found]       ` <ulm0i27hs.fsf_-_@hschmi22.userfqdn.rz-online.de>
@ 2003-02-19 21:12         ` Reiner Steib
  2003-02-22 22:05           ` Lars Magne Ingebrigtsen
  0 siblings, 1 reply; 12+ messages in thread
From: Reiner Steib @ 2003-02-19 21:12 UTC (permalink / raw)


[-- Attachment #1: Type: text/plain, Size: 1499 bytes --]

On Fri, Feb 14 2003, Frank Schmitt wrote:

> We have been talking in gnu.emacs.gnus about possibilities of reducing
> the amount of diskspace the Incoming* files need. Perhaps there's
> somebody who thinks our ideas are cool and wants to implement them?
>
> Reiner Steib <4.uce.03.r.s@nurfuerspam.de> writes:
[...]
>> (defcustom mail-source-delete-incoming nil
>>   "*If t, delete incoming files after handling.
>> If a positive number, delete files, older than number days.  If set to the
>> symbol `compress', compress the files.  If it is a negative number, compress
>> the files and delete compressed files older than that number of
>> days.  If nil, never delete."

I have write `mail-source-delete-old-incoming' but the function *needs
review* and testing.  I haven't worked with elisp times and
file-attributes before, so my approach might be too complicated or
complete nonsense. ;-) *Feedback welcome*!

With the attached patch, old (>= 3 days) incoming files will be
deleted (after confirmation!).  You may also test the function without
applying the patch[1]:

,----[ C-h f mail-source-delete-old-incoming RET ]
| mail-source-delete-old-incoming is an interactive Lisp function in `...'.
| (mail-source-delete-old-incoming &optional AGE CONFIRM)
| 
| Remove incoming files older than AGE days.
| If CONFIRM is non-nil, ask for confirmation before removing a file.
`----

`M-: (mail-source-delete-old-incoming 7 t) RET'

If you set gnus-verbose to 10 you'll get lots of debugging output.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: mail-source.delete-old-incoming.01.patch --]
[-- Type: text/x-patch, Size: 3844 bytes --]

--- mail-source.el.~6.29.~	Mon Feb 17 11:37:23 2003
+++ mail-source.el	Wed Feb 19 20:45:23 2003
@@ -262,8 +262,20 @@
   :group 'mail-source
   :type 'integer)
 
-(defcustom mail-source-delete-incoming nil
-  "*If non-nil, delete incoming files after handling."
+(defcustom mail-source-delete-incoming 3; nil
+  "*If non-nil, delete incoming files after handling.
+If t, delete immediately, if nil, never delete.  If a positive number, delete
+files older than number of days."
+  ;; Note: The removing happens in `mail-source-callback', i.e. no old
+  ;; incoming files will be deleted, unless you receive new mail.
+  ;;
+  ;; You may also set this to `t' and call `mail-source-delete-old-incoming'
+  ;; from a hook or interactively.
+  :group 'mail-source
+  :type 'integer)
+
+(defcustom mail-source-delete-old-incoming-confirm t; nil
+  "*If non-nil, ask for for confirmation before deleting old incoming files."
   :group 'mail-source
   :type 'boolean)
 
@@ -506,6 +518,44 @@
 	  (setq newname (make-temp-name newprefix)))
 	newname))))
 
+(defun mail-source-delete-old-incoming (&optional age confirm)
+  "Remove incoming files older than AGE days.
+If CONFIRM is non-nil, ask for confirmation before removing a file."
+  (interactive "P")
+  (let ((ddays 30) ;; fallback, if no valid AGE given
+	(high2days (/ 65536.0 60 60 24));; convert high bits to days
+	(low2days  (/ 1.0 65536.0))     ;; convert low bits to days
+	diff
+	files ffile bfile filetime fileday currday)
+    (setq diff (if (and (numberp age) (>= age 0))
+		   age
+		 ddays))
+    ;; (gnus-message 1 "Setting `confirm' to `t' (testing!)") ;; To be removed
+    ;; (setq confirm t) (sit-for 1) ;; To be removed
+    (setq
+     files (directory-files
+	    mail-source-directory t 
+	    (concat mail-source-incoming-file-prefix "*"))
+     currday (* (car (current-time)) high2days)
+     currday (+ currday (* low2days (nth 1 (current-time)))))
+    (gnus-message 8 "diff=`%s', currday=`%s'" diff currday);; To be removed
+    (while files
+      (setq
+       ffile (car files)
+       bfile (gnus-replace-in-string ffile "\\`.*/\\([^/]+\\)\\'" "\\1")
+       filetime (nth 5 (file-attributes ffile))
+       fileday (* (car filetime) high2days)
+       fileday (+ fileday (* low2days (nth 1 filetime)))
+       files (cdr files))
+      (gnus-message 9 "File `%s', fileday=`%s', `-c f'=`%s'";; To be removed
+		    bfile fileday (- currday fileday));; To be removed
+      (when (and (> (- currday fileday) diff)
+		 (gnus-message 8 "File `%s' is older than %s day(s)"
+			       bfile diff)
+		 (or (not confirm)
+		     (y-or-n-p (concat "Remove file `" bfile "'? "))))
+	(delete-file ffile)))))
+
 (defun mail-source-callback (callback info)
   "Call CALLBACK on the mail file, and then remove the mail file.
 Pass INFO on to CALLBACK."
@@ -519,7 +569,7 @@
 	(funcall callback mail-source-crash-box info)
       (when (file-exists-p mail-source-crash-box)
 	;; Delete or move the incoming mail out of the way.
-	(if mail-source-delete-incoming
+	(if (eq mail-source-delete-incoming t)
 	    (delete-file mail-source-crash-box)
 	  (let ((incoming
 		 (mail-source-make-complex-temp-name
@@ -528,8 +578,14 @@
 		   mail-source-directory))))
 	    (unless (file-exists-p (file-name-directory incoming))
 	      (make-directory (file-name-directory incoming) t))
-	    (rename-file mail-source-crash-box incoming t)))))))
-
+	    (rename-file mail-source-crash-box incoming t)
+	    ;; remove old incoming files?
+	    (when (and (numberp mail-source-delete-incoming)
+		       (>= mail-source-delete-incoming 0))
+	      (mail-source-delete-old-incoming
+	       mail-source-delete-incoming
+	       mail-source-delete-old-incoming-confirm))))))))
+  
 (defun mail-source-movemail (from to)
   "Move FROM to TO using movemail."
   (if (not (file-writable-p to))

[-- Attachment #3: Type: text/plain, Size: 236 bytes --]


Bye, Reiner.

[1] Extract `(defun mail-source-delete-old-incoming ...)' from the
    patch, remove the leading "+"-sign and eval it.
-- 
       ,,,
      (o o)
---ooO-(_)-Ooo--- PGP key available via WWW   http://rsteib.home.pages.de/

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Limiting number of Incomingxxxx mails
  2003-02-19 21:12         ` Limiting number of Incomingxxxx mails Reiner Steib
@ 2003-02-22 22:05           ` Lars Magne Ingebrigtsen
  2003-02-24 20:25             ` Reiner Steib
  0 siblings, 1 reply; 12+ messages in thread
From: Lars Magne Ingebrigtsen @ 2003-02-22 22:05 UTC (permalink / raw)


Reiner Steib <4.uce.03.r.s@nurfuerspam.de> writes:

> I have write `mail-source-delete-old-incoming' but the function *needs
> review* and testing. 

I'm not quite sure that such a function is a good idea.  The
Incoming* files are created only by pretest Gnusae, so they should
only be produced by versions of Gnus that are dangerous, mail-wise
speaking.  Having mechanisms for automatically deleting stuff in such
a situation might be counterproductive. 

-- 
(domestic pets only, the antidote for overdose, milk.)
   larsi@gnus.org * Lars Magne Ingebrigtsen



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Limiting number of Incomingxxxx mails
  2003-02-22 22:05           ` Lars Magne Ingebrigtsen
@ 2003-02-24 20:25             ` Reiner Steib
  2003-03-03 16:00               ` Ted Zlatanov
                                 ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Reiner Steib @ 2003-02-24 20:25 UTC (permalink / raw)


[-- Attachment #1: Type: text/plain, Size: 1701 bytes --]

On Sat, Feb 22 2003, Lars Magne Ingebrigtsen wrote:

[ `mail-source-delete-old-incoming' ] 
> I'm not quite sure that such a function is a good idea.  The
> Incoming* files are created only by pretest Gnusae, so they should
> only be produced by versions of Gnus that are dangerous, mail-wise
> speaking.  Having mechanisms for automatically deleting stuff in
> such a situation might be counterproductive.

The default value of `mail-source-delete-incoming' should still be
`nil' in pretest Gnusae, i.e. no automatically deleting, no change to
the current behavior.

I don't see any harm if Gnus would offer an option to delete old
files.  Note that additionally there's a `confirm' argument in
`mail-source-delete-old-incoming' and a variable
`mail-source-delete-old-incoming-confirm'.

I.e. the user has to change `mail-source-delete-incoming' to a
positive integer (default is nil) *and* change
`mail-source-delete-old-incoming-confirm' to nil (default is t) in
order to get automatic deleting without confirmation for every single
incoming file.  I suppose this should be enough protection. :-)

I'll add proper documentation, if this patch will be accepted.

--8<---------------cut here---------------start------------->8---
2003-02-24  Reiner Steib  <Reiner.Steib@gmx.de>

	* mail-source.el (mail-source-delete-incoming): Allow integer value.
	(mail-source-delete-old-incoming-confirm): New variable.
	(mail-source-delete-old-incoming): Use it.  New function.
	(mail-source-callback): Call `mail-source-delete-old-incoming' if
	`mail-source-delete-incoming' is a nonnegative integer.
--8<---------------cut here---------------end--------------->8---

Here's a revised version[1] of the patch:


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: mail-source.delete-old-incoming.02.patch --]
[-- Type: text/x-patch, Size: 3367 bytes --]

--- mail-source.el.~6.29.~	Mon Feb 17 11:37:23 2003
+++ mail-source.el	Mon Feb 24 21:07:41 2003
@@ -263,7 +263,21 @@
   :type 'integer)
 
 (defcustom mail-source-delete-incoming nil
-  "*If non-nil, delete incoming files after handling."
+  "*If non-nil, delete incoming files after handling.
+If t, delete immediately, if nil, never delete.  If a positive number, delete
+files older than number of days."
+  ;; Note: The removing happens in `mail-source-callback', i.e. no old
+  ;; incoming files will be deleted, unless you receive new mail.
+  ;;
+  ;; You may also set this to `nil' and call `mail-source-delete-old-incoming'
+  ;; from a hook or interactively.
+  :group 'mail-source
+  :type '(choice (const :tag "immediately" t)
+		 (const :tag "never" nil)
+		 (integer :tag "days")))
+
+(defcustom mail-source-delete-old-incoming-confirm t
+  "*If non-nil, ask for for confirmation before deleting old incoming files."
   :group 'mail-source
   :type 'boolean)
 
@@ -506,6 +520,34 @@
 	  (setq newname (make-temp-name newprefix)))
 	newname))))
 
+(defun mail-source-delete-old-incoming (&optional age confirm)
+  "Remove incoming files older than AGE days.
+If CONFIRM is non-nil, ask for confirmation before removing a file."
+  (interactive "P")
+  (let* ((high2days (/ 65536.0 60 60 24));; convert high bits to days
+	 (low2days  (/ 1.0 65536.0))     ;; convert low bits to days
+	 (diff (if (natnump age) age 30));; fallback, if no valid AGE given
+	 currday files)
+    (setq files (directory-files
+		 mail-source-directory t 
+		 (concat mail-source-incoming-file-prefix "*"))
+	  currday (* (car (current-time)) high2days)
+	  currday (+ currday (* low2days (nth 1 (current-time)))))
+    (while files
+      (let* ((ffile (car files))
+	     (bfile (gnus-replace-in-string
+		     ffile "\\`.*/\\([^/]+\\)\\'" "\\1"))
+	     (filetime (nth 5 (file-attributes ffile)))
+	     (fileday (* (car filetime) high2days))
+	     (fileday (+ fileday (* low2days (nth 1 filetime)))))
+	(setq files (cdr files))
+	(when (and (> (- currday fileday) diff)
+		   (gnus-message 8 "File `%s' is older than %s day(s)"
+				 bfile diff)
+		   (or (not confirm)
+		       (y-or-n-p (concat "Remove file `" bfile "'? "))))
+	  (delete-file ffile))))))
+
 (defun mail-source-callback (callback info)
   "Call CALLBACK on the mail file, and then remove the mail file.
 Pass INFO on to CALLBACK."
@@ -519,7 +561,7 @@
 	(funcall callback mail-source-crash-box info)
       (when (file-exists-p mail-source-crash-box)
 	;; Delete or move the incoming mail out of the way.
-	(if mail-source-delete-incoming
+	(if (eq mail-source-delete-incoming t)
 	    (delete-file mail-source-crash-box)
 	  (let ((incoming
 		 (mail-source-make-complex-temp-name
@@ -528,8 +570,13 @@
 		   mail-source-directory))))
 	    (unless (file-exists-p (file-name-directory incoming))
 	      (make-directory (file-name-directory incoming) t))
-	    (rename-file mail-source-crash-box incoming t)))))))
-
+	    (rename-file mail-source-crash-box incoming t)
+	    ;; remove old incoming files?
+	    (when (natnump mail-source-delete-incoming)
+	      (mail-source-delete-old-incoming
+	       mail-source-delete-incoming
+	       mail-source-delete-old-incoming-confirm))))))))
+  
 (defun mail-source-movemail (from to)
   "Move FROM to TO using movemail."
   (if (not (file-writable-p to))

[-- Attachment #3: Type: text/plain, Size: 232 bytes --]


Bye, Reiner.

[1] Simplified the code (thanks to JPW): Use natnump, set most
    variables in a let* form instead of using setq.
-- 
       ,,,
      (o o)
---ooO-(_)-Ooo--- PGP key available via WWW   http://rsteib.home.pages.de/

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Limiting number of Incomingxxxx mails
  2003-02-24 20:25             ` Reiner Steib
@ 2003-03-03 16:00               ` Ted Zlatanov
  2003-03-03 16:56                 ` Kai Großjohann
  2003-03-04  5:23                 ` Sriram Karra
  2003-03-03 17:07               ` Kai Großjohann
  2003-03-03 17:14               ` Kai Großjohann
  2 siblings, 2 replies; 12+ messages in thread
From: Ted Zlatanov @ 2003-03-03 16:00 UTC (permalink / raw)


On Mon, 24 Feb 2003, 4.uce.03.r.s@nurfuerspam.de wrote:
> 2003-02-24  Reiner Steib  <Reiner.Steib@gmx.de>
> 
> 	* mail-source.el (mail-source-delete-incoming): Allow
> 	integer value.  (mail-source-delete-old-incoming-confirm):
> 	New variable.  (mail-source-delete-old-incoming): Use it.
> 	New function.  (mail-source-callback): Call
> 	`mail-source-delete-old-incoming' if
> 	`mail-source-delete-incoming' is a nonnegative integer.

Was Reiner's patch ever approved or rejected?  I didn't see a message
either way.

I think the behavior it implements makes sense, since it's optional
and sensible.

Thanks
Ted



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Limiting number of Incomingxxxx mails
  2003-03-03 16:00               ` Ted Zlatanov
@ 2003-03-03 16:56                 ` Kai Großjohann
  2003-03-04  5:23                 ` Sriram Karra
  1 sibling, 0 replies; 12+ messages in thread
From: Kai Großjohann @ 2003-03-03 16:56 UTC (permalink / raw)


Ted Zlatanov <tzz@lifelogs.com> writes:

> Was Reiner's patch ever approved or rejected?  I didn't see a message
> either way.
>
> I think the behavior it implements makes sense, since it's optional
> and sensible.

I think there was some kind of discussion about it.  But I also think
it makes sense to delete old Incoming files.

Do you want me to dig it out from the archives?

-- 
A preposition is not a good thing to end a sentence with.



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Limiting number of Incomingxxxx mails
  2003-02-24 20:25             ` Reiner Steib
  2003-03-03 16:00               ` Ted Zlatanov
@ 2003-03-03 17:07               ` Kai Großjohann
  2003-03-03 18:30                 ` Reiner Steib
  2003-03-03 17:14               ` Kai Großjohann
  2 siblings, 1 reply; 12+ messages in thread
From: Kai Großjohann @ 2003-03-03 17:07 UTC (permalink / raw)


Reiner Steib <4.uce.03.r.s@nurfuerspam.de> writes:

> +    (while files
> +      (let* ((ffile (car files))
> [...]
> +	(setq files (cdr files))

This can be simplified to (let* ((ffile (pop files)) ...) ...).
(Unless you need the old value of files between the let* line and the
setq line -- I didn't look.)

-- 
A preposition is not a good thing to end a sentence with.



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Limiting number of Incomingxxxx mails
  2003-02-24 20:25             ` Reiner Steib
  2003-03-03 16:00               ` Ted Zlatanov
  2003-03-03 17:07               ` Kai Großjohann
@ 2003-03-03 17:14               ` Kai Großjohann
  2 siblings, 0 replies; 12+ messages in thread
From: Kai Großjohann @ 2003-03-03 17:14 UTC (permalink / raw)


Reiner Steib <4.uce.03.r.s@nurfuerspam.de> writes:

> I'll add proper documentation, if this patch will be accepted.

Committed.  (I hope that was the right thing to do.)
-- 
A preposition is not a good thing to end a sentence with.



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Limiting number of Incomingxxxx mails
  2003-03-03 17:07               ` Kai Großjohann
@ 2003-03-03 18:30                 ` Reiner Steib
  2003-03-03 20:23                   ` Kai Großjohann
                                     ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Reiner Steib @ 2003-03-03 18:30 UTC (permalink / raw)


On Mon, Mar 03 2003, Kai Großjohann wrote:

> Reiner Steib <4.uce.03.r.s@nurfuerspam.de> writes:
>
>> +    (while files
>> +      (let* ((ffile (car files))
>> [...]
>> +	(setq files (cdr files))
>
> This can be simplified to (let* ((ffile (pop files)) ...) ...).

Thanks for the suggestion, Kai.  `C-h f pop RET' says that "pop is a
Lisp macro in `cl'."  Doesn't Katsumi Yamaoka's [1] argument about
avoiding `cl' apply here?

BTW: I have committed the documentation to `gnus.texi' and some
doc-fixes.

Bye, Reiner.

[1] <news:yotl65r1rzer.fsf@jpl.org>
-- 
       ,,,
      (o o)
---ooO-(_)-Ooo--- PGP key available via WWW   http://rsteib.home.pages.de/



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Limiting number of Incomingxxxx mails
  2003-03-03 18:30                 ` Reiner Steib
@ 2003-03-03 20:23                   ` Kai Großjohann
  2003-03-03 21:46                   ` Jesper Harder
  2003-03-30  2:07                   ` Lars Magne Ingebrigtsen
  2 siblings, 0 replies; 12+ messages in thread
From: Kai Großjohann @ 2003-03-03 20:23 UTC (permalink / raw)


Reiner Steib <4.uce.03.r.s@nurfuerspam.de> writes:

> Thanks for the suggestion, Kai.  `C-h f pop RET' says that "pop is a
> Lisp macro in `cl'."  Doesn't Katsumi Yamaoka's [1] argument about
> avoiding `cl' apply here?

It seems that Richard (grudingly) says it's okay to use macros from
CL.  That means that CL is not used at run-time, only at compile-time.

-- 
A preposition is not a good thing to end a sentence with.



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Limiting number of Incomingxxxx mails
  2003-03-03 18:30                 ` Reiner Steib
  2003-03-03 20:23                   ` Kai Großjohann
@ 2003-03-03 21:46                   ` Jesper Harder
  2003-03-30  2:07                   ` Lars Magne Ingebrigtsen
  2 siblings, 0 replies; 12+ messages in thread
From: Jesper Harder @ 2003-03-03 21:46 UTC (permalink / raw)


Reiner Steib <4.uce.03.r.s@nurfuerspam.de> writes:

> `C-h f pop RET' says that "pop is a Lisp macro in `cl'."  Doesn't
> Katsumi Yamaoka's [1] argument about avoiding `cl' apply here?

`pop' is documented in the main elisp manual,
<info://elisp/List+Elements>, so it should be okay.



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Limiting number of Incomingxxxx mails
  2003-03-03 16:00               ` Ted Zlatanov
  2003-03-03 16:56                 ` Kai Großjohann
@ 2003-03-04  5:23                 ` Sriram Karra
  1 sibling, 0 replies; 12+ messages in thread
From: Sriram Karra @ 2003-03-04  5:23 UTC (permalink / raw)


On Mon, 03 Mar 2003, Ted Zlatanov wrote:

> On Mon, 24 Feb 2003, 4.uce.03.r.s@nurfuerspam.de wrote:
> > 2003-02-24  Reiner Steib  <Reiner.Steib@gmx.de>
> > 
> > 	* mail-source.el (mail-source-delete-incoming): Allow
> > 	integer value.  (mail-source-delete-old-incoming-confirm):
> 
> Was Reiner's patch ever approved or rejected?  I didn't see a message
> either way.
> 

I remember that Lars had some objections.  Do not recall exactly what,
though.  

-Sriram.


> I think the behavior it implements makes sense, since it's optional
> and sensible.
> 
> Thanks
> Ted
> 

-- 
Ignorance is the Mother of Devotion.
		-- Robert Burton



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Limiting number of Incomingxxxx mails
  2003-03-03 18:30                 ` Reiner Steib
  2003-03-03 20:23                   ` Kai Großjohann
  2003-03-03 21:46                   ` Jesper Harder
@ 2003-03-30  2:07                   ` Lars Magne Ingebrigtsen
  2 siblings, 0 replies; 12+ messages in thread
From: Lars Magne Ingebrigtsen @ 2003-03-30  2:07 UTC (permalink / raw)


Reiner Steib <4.uce.03.r.s@nurfuerspam.de> writes:

> Thanks for the suggestion, Kai.  `C-h f pop RET' says that "pop is a
> Lisp macro in `cl'."  Doesn't Katsumi Yamaoka's [1] argument about
> avoiding `cl' apply here?

Functions from `cl' should be avoided, but macros from `cl' is ok,
since those get expanded at byte-compile time.

-- 
(domestic pets only, the antidote for overdose, milk.)
   larsi@gnus.org * Lars Magne Ingebrigtsen



^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2003-03-30  2:07 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <xeq3r8abqkpm.fsf@desh.cisco.com>
     [not found] ` <v91y2b0zkh.fsf@marauder.physik.uni-ulm.de>
     [not found]   ` <u7kc37yaj.fsf@hschmi22.userfqdn.rz-online.de>
     [not found]     ` <v9ptpurj9a.fsf@marauder.physik.uni-ulm.de>
     [not found]       ` <ulm0i27hs.fsf_-_@hschmi22.userfqdn.rz-online.de>
2003-02-19 21:12         ` Limiting number of Incomingxxxx mails Reiner Steib
2003-02-22 22:05           ` Lars Magne Ingebrigtsen
2003-02-24 20:25             ` Reiner Steib
2003-03-03 16:00               ` Ted Zlatanov
2003-03-03 16:56                 ` Kai Großjohann
2003-03-04  5:23                 ` Sriram Karra
2003-03-03 17:07               ` Kai Großjohann
2003-03-03 18:30                 ` Reiner Steib
2003-03-03 20:23                   ` Kai Großjohann
2003-03-03 21:46                   ` Jesper Harder
2003-03-30  2:07                   ` Lars Magne Ingebrigtsen
2003-03-03 17:14               ` Kai Großjohann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).