/offlineimap/head: changeset 478
Added -l option. Updated documentation for it. Changed _msg to _display override in UI modules. Renamed "doc" to "docs" target in Makefile to avoid conflicting with a subdir.
This commit is contained in:
parent
d52c007857
commit
022655dddd
@ -17,7 +17,7 @@
|
|||||||
SHELL=/bin/bash
|
SHELL=/bin/bash
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
-python2.2 setup.py clean --all
|
-python2.3 setup.py clean --all
|
||||||
-rm -f `find . -name "*~"`
|
-rm -f `find . -name "*~"`
|
||||||
-rm -f `find . -name "*.tmp"`
|
-rm -f `find . -name "*.tmp"`
|
||||||
-rm -f bin/offlineimapc
|
-rm -f bin/offlineimapc
|
||||||
@ -34,7 +34,7 @@ clean:
|
|||||||
changelog:
|
changelog:
|
||||||
svn log -v > ChangeLog
|
svn log -v > ChangeLog
|
||||||
|
|
||||||
docs:
|
doc:
|
||||||
docbook2man offlineimap.sgml
|
docbook2man offlineimap.sgml
|
||||||
docbook2man offlineimap.sgml
|
docbook2man offlineimap.sgml
|
||||||
docbook2html -u offlineimap.sgml
|
docbook2html -u offlineimap.sgml
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/env python2.2
|
#!/usr/bin/env python2.3
|
||||||
# Startup from system-wide installation
|
# Startup from system-wide installation
|
||||||
# Copyright (C) 2002, 2003 John Goerzen
|
# Copyright (C) 2002, 2003 John Goerzen
|
||||||
# <jgoerzen@complete.org>
|
# <jgoerzen@complete.org>
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
offlineimap (3.99.18) unstable; urgency=low
|
offlineimap (3.99.18) unstable; urgency=low
|
||||||
|
|
||||||
* Made a fix for Python2.3 compatibility.
|
* Made a fix for Python2.3 compatibility.
|
||||||
|
This application now defaults to Python2.3! If you do not have Python
|
||||||
|
2.3, things may not work as expected.
|
||||||
|
* Removed warning when thread debug is specified. Closes: #195739.
|
||||||
|
|
||||||
-- John Goerzen <jgoerzen@complete.org> Tue, 27 May 2003 16:58:54 -0500
|
-- John Goerzen <jgoerzen@complete.org> Tue, 27 May 2003 16:58:54 -0500
|
||||||
|
|
||||||
|
@ -2,13 +2,13 @@ Source: offlineimap
|
|||||||
Section: mail
|
Section: mail
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Maintainer: John Goerzen <jgoerzen@complete.org>
|
Maintainer: John Goerzen <jgoerzen@complete.org>
|
||||||
Build-Depends-Indep: debhelper (>> 3.0.0), python2.2 (>= 2.2.1-4), python2.2-dev (>= 2.2.1-4), groff, docbook-utils
|
Build-Depends-Indep: debhelper (>> 3.0.0), python2.3 (>= 2.2.104), python2.3-dev (>= 2.2.104), groff, docbook-utils
|
||||||
Standards-Version: 3.5.2
|
Standards-Version: 3.5.2
|
||||||
|
|
||||||
Package: offlineimap
|
Package: offlineimap
|
||||||
Architecture: all
|
Architecture: all
|
||||||
Depends: python2.2
|
Depends: python2.3
|
||||||
Suggests: python2.2-tk
|
Suggests: python2.3-tk
|
||||||
Description: IMAP/Maildir synchronization and reader support
|
Description: IMAP/Maildir synchronization and reader support
|
||||||
OfflineIMAP is a tool to simplify your e-mail reading. With
|
OfflineIMAP is a tool to simplify your e-mail reading. With
|
||||||
OfflimeIMAP, you can:
|
OfflimeIMAP, you can:
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
# This is the debhelper compatibility version to use.
|
# This is the debhelper compatibility version to use.
|
||||||
export DH_COMPAT=3
|
export DH_COMPAT=3
|
||||||
|
|
||||||
PYTHON=python2.2
|
PYTHON=python2.3
|
||||||
PACKAGE=offlineimap
|
PACKAGE=offlineimap
|
||||||
|
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
>OfflineIMAP Manual</TITLE
|
>OfflineIMAP Manual</TITLE
|
||||||
><META
|
><META
|
||||||
NAME="GENERATOR"
|
NAME="GENERATOR"
|
||||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.77+"></HEAD
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.7"></HEAD
|
||||||
><BODY
|
><BODY
|
||||||
CLASS="REFERENCE"
|
CLASS="REFERENCE"
|
||||||
BGCOLOR="#FFFFFF"
|
BGCOLOR="#FFFFFF"
|
||||||
@ -64,31 +64,24 @@ NAME="AEN18"
|
|||||||
><B
|
><B
|
||||||
CLASS="COMMAND"
|
CLASS="COMMAND"
|
||||||
>offlineimap</B
|
>offlineimap</B
|
||||||
> [-1] [-P <TT
|
> [-1] [-P <VAR
|
||||||
CLASS="REPLACEABLE"
|
CLASS="REPLACEABLE"
|
||||||
><I
|
>profiledir</VAR
|
||||||
>profiledir</I
|
>] [-a <VAR
|
||||||
></TT
|
|
||||||
>] [-a <TT
|
|
||||||
CLASS="REPLACEABLE"
|
CLASS="REPLACEABLE"
|
||||||
><I
|
>accountlist</VAR
|
||||||
>accountlist</I
|
>] [-c <VAR
|
||||||
></TT
|
|
||||||
>] [-c <TT
|
|
||||||
CLASS="REPLACEABLE"
|
CLASS="REPLACEABLE"
|
||||||
><I
|
>configfile</VAR
|
||||||
>configfile</I
|
>] [-d <VAR
|
||||||
></TT
|
|
||||||
>] [-d <TT
|
|
||||||
CLASS="REPLACEABLE"
|
CLASS="REPLACEABLE"
|
||||||
><I
|
>debugtype[,...]</VAR
|
||||||
>debugtype[,...]</I
|
>] [-l <VAR
|
||||||
></TT
|
|
||||||
>] [-o] [-u <TT
|
|
||||||
CLASS="REPLACEABLE"
|
CLASS="REPLACEABLE"
|
||||||
><I
|
>filename</VAR
|
||||||
>interface</I
|
>] [-o] [-u <VAR
|
||||||
></TT
|
CLASS="REPLACEABLE"
|
||||||
|
>interface</VAR
|
||||||
>]</P
|
>]</P
|
||||||
><P
|
><P
|
||||||
><B
|
><B
|
||||||
@ -99,7 +92,7 @@ CLASS="COMMAND"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT1"
|
CLASS="REFSECT1"
|
||||||
><A
|
><A
|
||||||
NAME="AEN38"
|
NAME="AEN40"
|
||||||
></A
|
></A
|
||||||
><H2
|
><H2
|
||||||
>Description</H2
|
>Description</H2
|
||||||
@ -196,7 +189,7 @@ CLASS="APPLICATION"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN56"
|
NAME="AEN58"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>Method of Operation</H3
|
>Method of Operation</H3
|
||||||
@ -243,7 +236,7 @@ CLASS="APPLICATION"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT1"
|
CLASS="REFSECT1"
|
||||||
><A
|
><A
|
||||||
NAME="AEN65"
|
NAME="AEN67"
|
||||||
></A
|
></A
|
||||||
><H2
|
><H2
|
||||||
>Quick Start</H2
|
>Quick Start</H2
|
||||||
@ -348,7 +341,7 @@ CLASS="APPLICATION"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT1"
|
CLASS="REFSECT1"
|
||||||
><A
|
><A
|
||||||
NAME="AEN87"
|
NAME="AEN89"
|
||||||
></A
|
></A
|
||||||
><H2
|
><H2
|
||||||
>Installation</H2
|
>Installation</H2
|
||||||
@ -376,7 +369,7 @@ CLASS="APPLICATION"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN93"
|
NAME="AEN95"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>Prerequisites</H3
|
>Prerequisites</H3
|
||||||
@ -440,7 +433,7 @@ CLASS="APPLICATION"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN107"
|
NAME="AEN109"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>System-Wide Installation, Debian</H3
|
>System-Wide Installation, Debian</H3
|
||||||
@ -486,7 +479,7 @@ CLASS="COMMAND"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN119"
|
NAME="AEN121"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>System-Wide Installation, Other</H3
|
>System-Wide Installation, Other</H3
|
||||||
@ -529,7 +522,7 @@ CLASS="COMMAND"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN129"
|
NAME="AEN131"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>Single-Account Installation</H3
|
>Single-Account Installation</H3
|
||||||
@ -614,7 +607,7 @@ CLASS="FILENAME"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT1"
|
CLASS="REFSECT1"
|
||||||
><A
|
><A
|
||||||
NAME="AEN150"
|
NAME="AEN152"
|
||||||
></A
|
></A
|
||||||
><H2
|
><H2
|
||||||
>Options</H2
|
>Options</H2
|
||||||
@ -650,11 +643,9 @@ CLASS="PROPERTY"
|
|||||||
</P
|
</P
|
||||||
></DD
|
></DD
|
||||||
><DT
|
><DT
|
||||||
>-P <TT
|
>-P <VAR
|
||||||
CLASS="REPLACEABLE"
|
CLASS="REPLACEABLE"
|
||||||
><I
|
>profiledir</VAR
|
||||||
>profiledir</I
|
|
||||||
></TT
|
|
||||||
></DT
|
></DT
|
||||||
><DD
|
><DD
|
||||||
><P
|
><P
|
||||||
@ -662,11 +653,9 @@ CLASS="REPLACEABLE"
|
|||||||
CLASS="APPLICATION"
|
CLASS="APPLICATION"
|
||||||
>OfflineIMAP</SPAN
|
>OfflineIMAP</SPAN
|
||||||
> into profile mode. The program
|
> into profile mode. The program
|
||||||
will create <TT
|
will create <VAR
|
||||||
CLASS="REPLACEABLE"
|
CLASS="REPLACEABLE"
|
||||||
><I
|
>profiledir</VAR
|
||||||
>profiledir</I
|
|
||||||
></TT
|
|
||||||
>
|
>
|
||||||
(it must not already exist). As it runs, Python profiling
|
(it must not already exist). As it runs, Python profiling
|
||||||
information
|
information
|
||||||
@ -674,22 +663,20 @@ CLASS="REPLACEABLE"
|
|||||||
is present for debugging and optimization only, and should NOT be used
|
is present for debugging and optimization only, and should NOT be used
|
||||||
unless you have a specific reason to do so. It will significantly
|
unless you have a specific reason to do so. It will significantly
|
||||||
slow program performance, may reduce reliability, and can generate
|
slow program performance, may reduce reliability, and can generate
|
||||||
huge amounts of data. You must use the <TT
|
huge amounts of data. You must use the <VAR
|
||||||
CLASS="OPTION"
|
CLASS="OPTION"
|
||||||
>-1</TT
|
>-1</VAR
|
||||||
> option when
|
> option when
|
||||||
you use <TT
|
you use <VAR
|
||||||
CLASS="OPTION"
|
CLASS="OPTION"
|
||||||
>-P</TT
|
>-P</VAR
|
||||||
>.
|
>.
|
||||||
</P
|
</P
|
||||||
></DD
|
></DD
|
||||||
><DT
|
><DT
|
||||||
>-a <TT
|
>-a <VAR
|
||||||
CLASS="REPLACEABLE"
|
CLASS="REPLACEABLE"
|
||||||
><I
|
>accountlist</VAR
|
||||||
>accountlist</I
|
|
||||||
></TT
|
|
||||||
></DT
|
></DT
|
||||||
><DD
|
><DD
|
||||||
><P
|
><P
|
||||||
@ -707,11 +694,9 @@ CLASS="PROPERTY"
|
|||||||
</P
|
</P
|
||||||
></DD
|
></DD
|
||||||
><DT
|
><DT
|
||||||
>-c <TT
|
>-c <VAR
|
||||||
CLASS="REPLACEABLE"
|
CLASS="REPLACEABLE"
|
||||||
><I
|
>configfile</VAR
|
||||||
>configfile</I
|
|
||||||
></TT
|
|
||||||
></DT
|
></DT
|
||||||
><DD
|
><DD
|
||||||
><P
|
><P
|
||||||
@ -723,25 +708,23 @@ CLASS="FILENAME"
|
|||||||
</P
|
</P
|
||||||
></DD
|
></DD
|
||||||
><DT
|
><DT
|
||||||
>-d <TT
|
>-d <VAR
|
||||||
CLASS="REPLACEABLE"
|
CLASS="REPLACEABLE"
|
||||||
><I
|
>debugtype[,...]</VAR
|
||||||
>debugtype[,...]</I
|
|
||||||
></TT
|
|
||||||
></DT
|
></DT
|
||||||
><DD
|
><DD
|
||||||
><P
|
><P
|
||||||
>Enables debugging for OfflineIMAP. This is useful if
|
>Enables debugging for OfflineIMAP. This is useful if
|
||||||
you are trying to track down a malfunction or figure out what is going
|
you are trying to track down a malfunction or figure out what is going
|
||||||
on under the hood. I suggest that you use this with
|
on under the hood. I suggest that you use this with
|
||||||
<TT
|
<VAR
|
||||||
CLASS="OPTION"
|
CLASS="OPTION"
|
||||||
>-1</TT
|
>-1</VAR
|
||||||
> to make the results more sensible.</P
|
> to make the results more sensible.</P
|
||||||
><P
|
><P
|
||||||
><TT
|
><VAR
|
||||||
CLASS="OPTION"
|
CLASS="OPTION"
|
||||||
>-d</TT
|
>-d</VAR
|
||||||
> requires one or more debugtypes,
|
> requires one or more debugtypes,
|
||||||
separated by commas. These define what exactly will be
|
separated by commas. These define what exactly will be
|
||||||
debugged, and include three options: <SPAN
|
debugged, and include three options: <SPAN
|
||||||
@ -774,6 +757,20 @@ CLASS="PROPERTY"
|
|||||||
</P
|
</P
|
||||||
></DD
|
></DD
|
||||||
><DT
|
><DT
|
||||||
|
>-l
|
||||||
|
<VAR
|
||||||
|
CLASS="REPLACEABLE"
|
||||||
|
>filename</VAR
|
||||||
|
></DT
|
||||||
|
><DD
|
||||||
|
><P
|
||||||
|
> Enables logging to filename. This will log everything
|
||||||
|
that goes to the screen to the specified file.
|
||||||
|
Additionally, if any debugging is specified with -d,
|
||||||
|
then debug messages will not go to the screen, but
|
||||||
|
instead to the logfile only.</P
|
||||||
|
></DD
|
||||||
|
><DT
|
||||||
>-o</DT
|
>-o</DT
|
||||||
><DD
|
><DD
|
||||||
><P
|
><P
|
||||||
@ -791,11 +788,9 @@ CLASS="PROPERTY"
|
|||||||
>Show summary of options.</P
|
>Show summary of options.</P
|
||||||
></DD
|
></DD
|
||||||
><DT
|
><DT
|
||||||
>-u <TT
|
>-u <VAR
|
||||||
CLASS="REPLACEABLE"
|
CLASS="REPLACEABLE"
|
||||||
><I
|
>interface</VAR
|
||||||
>interface</I
|
|
||||||
></TT
|
|
||||||
></DT
|
></DT
|
||||||
><DD
|
><DD
|
||||||
><P
|
><P
|
||||||
@ -810,7 +805,7 @@ CLASS="REPLACEABLE"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT1"
|
CLASS="REFSECT1"
|
||||||
><A
|
><A
|
||||||
NAME="AEN212"
|
NAME="AEN219"
|
||||||
></A
|
></A
|
||||||
><H2
|
><H2
|
||||||
>User Interfaces</H2
|
>User Interfaces</H2
|
||||||
@ -826,9 +821,9 @@ CLASS="APPLICATION"
|
|||||||
CLASS="PROPERTY"
|
CLASS="PROPERTY"
|
||||||
>ui</SPAN
|
>ui</SPAN
|
||||||
> option in the configuration file specifies
|
> option in the configuration file specifies
|
||||||
user interface preferences. The <TT
|
user interface preferences. The <VAR
|
||||||
CLASS="OPTION"
|
CLASS="OPTION"
|
||||||
>-u</TT
|
>-u</VAR
|
||||||
> command-line
|
> command-line
|
||||||
option can override the configuration file setting. The available
|
option can override the configuration file setting. The available
|
||||||
values for the configuration file or command-line are described
|
values for the configuration file or command-line are described
|
||||||
@ -836,7 +831,7 @@ CLASS="OPTION"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN218"
|
NAME="AEN225"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>Tk.Blinkenlights</H3
|
>Tk.Blinkenlights</H3
|
||||||
@ -992,7 +987,7 @@ CLASS="FIRSTTERM"
|
|||||||
>, in part, as:
|
>, in part, as:
|
||||||
</P
|
</P
|
||||||
><A
|
><A
|
||||||
NAME="AEN281"
|
NAME="AEN288"
|
||||||
></A
|
></A
|
||||||
><BLOCKQUOTE
|
><BLOCKQUOTE
|
||||||
CLASS="BLOCKQUOTE"
|
CLASS="BLOCKQUOTE"
|
||||||
@ -1029,7 +1024,7 @@ CLASS="EMPHASIS"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN287"
|
NAME="AEN294"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>Curses.Blinkenlights</H3
|
>Curses.Blinkenlights</H3
|
||||||
@ -1047,7 +1042,7 @@ NAME="AEN287"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN291"
|
NAME="AEN298"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>Tk.VerboseUI</H3
|
>Tk.VerboseUI</H3
|
||||||
@ -1064,7 +1059,7 @@ NAME="AEN291"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN294"
|
NAME="AEN301"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>TTY.TTYUI</H3
|
>TTY.TTYUI</H3
|
||||||
@ -1077,7 +1072,7 @@ NAME="AEN294"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN297"
|
NAME="AEN304"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>Noninteractive.Basic</H3
|
>Noninteractive.Basic</H3
|
||||||
@ -1097,7 +1092,7 @@ CLASS="APPLICATION"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN301"
|
NAME="AEN308"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>Noninteractive.Quiet</H3
|
>Noninteractive.Quiet</H3
|
||||||
@ -1114,7 +1109,7 @@ NAME="AEN301"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT1"
|
CLASS="REFSECT1"
|
||||||
><A
|
><A
|
||||||
NAME="AEN304"
|
NAME="AEN311"
|
||||||
></A
|
></A
|
||||||
><H2
|
><H2
|
||||||
>Examples</H2
|
>Examples</H2
|
||||||
@ -1126,7 +1121,7 @@ NAME="AEN304"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN307"
|
NAME="AEN314"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>Multiple Accounts with Mutt</H3
|
>Multiple Accounts with Mutt</H3
|
||||||
@ -1199,7 +1194,7 @@ spoolfile=+Personal/INBOX</PRE
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN326"
|
NAME="AEN333"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>UW-IMAPD and References</H3
|
>UW-IMAPD and References</H3
|
||||||
@ -1258,7 +1253,7 @@ holdconnectionopen = no</PRE
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN334"
|
NAME="AEN341"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>pythonfile Configuration File Option</H3
|
>pythonfile Configuration File Option</H3
|
||||||
@ -1324,7 +1319,7 @@ CLASS="PROPERTY"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT1"
|
CLASS="REFSECT1"
|
||||||
><A
|
><A
|
||||||
NAME="AEN347"
|
NAME="AEN354"
|
||||||
></A
|
></A
|
||||||
><H2
|
><H2
|
||||||
>Errors</H2
|
>Errors</H2
|
||||||
@ -1335,7 +1330,7 @@ NAME="AEN347"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN350"
|
NAME="AEN357"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>UID validity problem for folder</H3
|
>UID validity problem for folder</H3
|
||||||
@ -1382,17 +1377,13 @@ CLASS="FILENAME"
|
|||||||
><PRE
|
><PRE
|
||||||
CLASS="PROGRAMLISTING"
|
CLASS="PROGRAMLISTING"
|
||||||
>rm -r ~/Folders/INBOX
|
>rm -r ~/Folders/INBOX
|
||||||
rm -r ~/.offlineimap/Account-<TT
|
rm -r ~/.offlineimap/Account-<VAR
|
||||||
CLASS="REPLACEABLE"
|
CLASS="REPLACEABLE"
|
||||||
><I
|
>AccountName</VAR
|
||||||
>AccountName</I
|
|
||||||
></TT
|
|
||||||
>
|
>
|
||||||
rm -r ~/.offlineimap/Repository-<TT
|
rm -r ~/.offlineimap/Repository-<VAR
|
||||||
CLASS="REPLACEABLE"
|
CLASS="REPLACEABLE"
|
||||||
><I
|
>RepositoryName</VAR
|
||||||
>RepositoryName</I
|
|
||||||
></TT
|
|
||||||
></PRE
|
></PRE
|
||||||
><P
|
><P
|
||||||
> (Of course, replace AccountName and RepositoryName
|
> (Of course, replace AccountName and RepositoryName
|
||||||
@ -1452,7 +1443,7 @@ TARGET="_top"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT1"
|
CLASS="REFSECT1"
|
||||||
><A
|
><A
|
||||||
NAME="AEN375"
|
NAME="AEN382"
|
||||||
></A
|
></A
|
||||||
><H2
|
><H2
|
||||||
>Other Frequently Asked Questions</H2
|
>Other Frequently Asked Questions</H2
|
||||||
@ -1721,7 +1712,7 @@ CLASS="PROPERTY"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT1"
|
CLASS="REFSECT1"
|
||||||
><A
|
><A
|
||||||
NAME="AEN471"
|
NAME="AEN478"
|
||||||
></A
|
></A
|
||||||
><H2
|
><H2
|
||||||
>Conforming To</H2
|
>Conforming To</H2
|
||||||
@ -1760,14 +1751,14 @@ TARGET="_top"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT1"
|
CLASS="REFSECT1"
|
||||||
><A
|
><A
|
||||||
NAME="AEN484"
|
NAME="AEN491"
|
||||||
></A
|
></A
|
||||||
><H2
|
><H2
|
||||||
>Notes</H2
|
>Notes</H2
|
||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN486"
|
NAME="AEN493"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>Deleting Local Folders</H3
|
>Deleting Local Folders</H3
|
||||||
@ -1799,7 +1790,7 @@ CLASS="APPLICATION"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN493"
|
NAME="AEN500"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>Multiple Instances</H3
|
>Multiple Instances</H3
|
||||||
@ -1828,7 +1819,7 @@ CLASS="PROPERTY"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN500"
|
NAME="AEN507"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>Copying Messages Between Folders</H3
|
>Copying Messages Between Folders</H3
|
||||||
@ -1858,7 +1849,7 @@ CLASS="APPLICATION"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN506"
|
NAME="AEN513"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>Use with Evolution</H3
|
>Use with Evolution</H3
|
||||||
@ -1871,9 +1862,9 @@ CLASS="APPLICATION"
|
|||||||
CLASS="APPLICATION"
|
CLASS="APPLICATION"
|
||||||
>OfflineIMAP</SPAN
|
>OfflineIMAP</SPAN
|
||||||
> account to have
|
> account to have
|
||||||
<TT
|
<VAR
|
||||||
CLASS="OPTION"
|
CLASS="OPTION"
|
||||||
>sep = /</TT
|
>sep = /</VAR
|
||||||
> in its configuration. Then, configure
|
> in its configuration. Then, configure
|
||||||
Evolution with the
|
Evolution with the
|
||||||
"Maildir-format mail directories" server type. For the path, you will need to
|
"Maildir-format mail directories" server type. For the path, you will need to
|
||||||
@ -1894,7 +1885,7 @@ CLASS="APPLICATION"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN514"
|
NAME="AEN521"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>Use with KMail</H3
|
>Use with KMail</H3
|
||||||
@ -1928,7 +1919,7 @@ CLASS="APPLICATION"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN522"
|
NAME="AEN529"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>Mailing List</H3
|
>Mailing List</H3
|
||||||
@ -1947,7 +1938,7 @@ TARGET="_top"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT2"
|
CLASS="REFSECT2"
|
||||||
><A
|
><A
|
||||||
NAME="AEN526"
|
NAME="AEN533"
|
||||||
></A
|
></A
|
||||||
><H3
|
><H3
|
||||||
>Bugs</H3
|
>Bugs</H3
|
||||||
@ -1973,12 +1964,12 @@ TARGET="_top"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT1"
|
CLASS="REFSECT1"
|
||||||
><A
|
><A
|
||||||
NAME="AEN532"
|
NAME="AEN539"
|
||||||
></A
|
></A
|
||||||
><H2
|
><H2
|
||||||
>Copyright</H2
|
>Copyright</H2
|
||||||
><P
|
><P
|
||||||
>OfflineIMAP, and this manual, are Copyright © 2002, 2003 John Goerzen.</P
|
>OfflineIMAP, and this manual, are Copyright © 2002, 2003 John Goerzen.</P
|
||||||
><P
|
><P
|
||||||
> This program is free software; you can redistribute it and/or modify
|
> This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -2011,7 +2002,7 @@ CLASS="APPLICATION"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT1"
|
CLASS="REFSECT1"
|
||||||
><A
|
><A
|
||||||
NAME="AEN541"
|
NAME="AEN548"
|
||||||
></A
|
></A
|
||||||
><H2
|
><H2
|
||||||
>Author</H2
|
>Author</H2
|
||||||
@ -2020,12 +2011,12 @@ NAME="AEN541"
|
|||||||
CLASS="APPLICATION"
|
CLASS="APPLICATION"
|
||||||
>OfflineIMAP</SPAN
|
>OfflineIMAP</SPAN
|
||||||
>, its libraries, documentation, and all included files, except where
|
>, its libraries, documentation, and all included files, except where
|
||||||
noted, was written by John Goerzen <TT
|
noted, was written by John Goerzen <CODE
|
||||||
CLASS="EMAIL"
|
CLASS="EMAIL"
|
||||||
><<A
|
><<A
|
||||||
HREF="mailto:jgoerzen@complete.org"
|
HREF="mailto:jgoerzen@complete.org"
|
||||||
>jgoerzen@complete.org</A
|
>jgoerzen@complete.org</A
|
||||||
>></TT
|
>></CODE
|
||||||
> and
|
> and
|
||||||
copyright is held as stated in the COPYRIGHT section.
|
copyright is held as stated in the COPYRIGHT section.
|
||||||
</P
|
</P
|
||||||
@ -2063,7 +2054,7 @@ TARGET="_top"
|
|||||||
><DIV
|
><DIV
|
||||||
CLASS="REFSECT1"
|
CLASS="REFSECT1"
|
||||||
><A
|
><A
|
||||||
NAME="AEN553"
|
NAME="AEN560"
|
||||||
></A
|
></A
|
||||||
><H2
|
><H2
|
||||||
>See Also</H2
|
>See Also</H2
|
||||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -7,7 +7,7 @@ NAME
|
|||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
offlineimap [ -1 ] [ -P profiledir ] [ -a accountlist ] [ -c configfile
|
offlineimap [ -1 ] [ -P profiledir ] [ -a accountlist ] [ -c configfile
|
||||||
] [ -d debugtype[,...] ] [ -o ] [ -u interface ]
|
] [ -d debugtype[,...] ] [ -l filename ] [ -o ] [ -u interface ]
|
||||||
|
|
||||||
|
|
||||||
offlineimap -h | --help
|
offlineimap -h | --help
|
||||||
@ -237,6 +237,12 @@ OPTIONS
|
|||||||
option will enable debugging for certain Maildir operations.
|
option will enable debugging for certain Maildir operations.
|
||||||
And thread will debug the threading model.
|
And thread will debug the threading model.
|
||||||
|
|
||||||
|
-l filename
|
||||||
|
Enables logging to filename. This will log everything that goes
|
||||||
|
to the screen to the specified file. Additionally, if any
|
||||||
|
debugging is specified with -d, then debug messages will not go
|
||||||
|
to the screen, but instead to the logfile only.
|
||||||
|
|
||||||
-o Run only once, ignoring all autorefresh settings in the configu-
|
-o Run only once, ignoring all autorefresh settings in the configu-
|
||||||
ration file.
|
ration file.
|
||||||
|
|
||||||
@ -708,7 +714,8 @@ NOTES
|
|||||||
status or contribute to fixing them.
|
status or contribute to fixing them.
|
||||||
|
|
||||||
COPYRIGHT
|
COPYRIGHT
|
||||||
OfflineIMAP, and this manual, are Copyright 2002, 2003 John Goerzen.
|
OfflineIMAP, and this manual, are Copyright (C) 2002, 2003 John
|
||||||
|
Goerzen.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify it
|
This program is free software; you can redistribute it and/or modify it
|
||||||
under the terms of the GNU General Public License as published by the
|
under the terms of the GNU General Public License as published by the
|
||||||
@ -716,9 +723,9 @@ COPYRIGHT
|
|||||||
option) any later version.
|
option) any later version.
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful, but
|
This program is distributed in the hope that it will be useful, but
|
||||||
WITHOUT ANY WARRANTY; without even the implied warranty of MER-
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
CHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Gen-
|
||||||
Public License for more details.
|
eral Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
@ -748,4 +755,4 @@ SEE ALSO
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
John Goerzen 22 April 2003 OFFLINEIMAP(1)
|
John Goerzen 02 June 2003 OFFLINEIMAP(1)
|
||||||
|
@ -3,13 +3,13 @@
|
|||||||
.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>
|
.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>
|
||||||
.\" Please send any bug reports, improvements, comments, patches,
|
.\" Please send any bug reports, improvements, comments, patches,
|
||||||
.\" etc. to Steve Cheng <steve@ggi-project.org>.
|
.\" etc. to Steve Cheng <steve@ggi-project.org>.
|
||||||
.TH "OFFLINEIMAP" "1" "22 April 2003" "John Goerzen" "OfflineIMAP Manual"
|
.TH "OFFLINEIMAP" "1" "02 June 2003" "John Goerzen" "OfflineIMAP Manual"
|
||||||
|
|
||||||
.SH NAME
|
.SH NAME
|
||||||
OfflineIMAP \- Powerful IMAP/Maildir synchronization and reader support
|
OfflineIMAP \- Powerful IMAP/Maildir synchronization and reader support
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
||||||
\fBofflineimap\fR [ \fB-1\fR ] [ \fB-P \fIprofiledir\fB\fR ] [ \fB-a \fIaccountlist\fB\fR ] [ \fB-c \fIconfigfile\fB\fR ] [ \fB-d \fIdebugtype[,...]\fB\fR ] [ \fB-o\fR ] [ \fB-u \fIinterface\fB\fR ]
|
\fBofflineimap\fR [ \fB-1\fR ] [ \fB-P \fIprofiledir\fB\fR ] [ \fB-a \fIaccountlist\fB\fR ] [ \fB-c \fIconfigfile\fB\fR ] [ \fB-d \fIdebugtype[,...]\fB\fR ] [ \fB-l \fIfilename\fB\fR ] [ \fB-o\fR ] [ \fB-u \fIinterface\fB\fR ]
|
||||||
|
|
||||||
|
|
||||||
\fBofflineimap\fR \fB-h\fR | \fB--help\fR
|
\fBofflineimap\fR \fB-h\fR | \fB--help\fR
|
||||||
@ -287,6 +287,13 @@ from the debugging output before sending it to anyone else. The
|
|||||||
certain Maildir operations. And \fIthread\fR
|
certain Maildir operations. And \fIthread\fR
|
||||||
will debug the threading model.
|
will debug the threading model.
|
||||||
.TP
|
.TP
|
||||||
|
\fB-l \fIfilename\fB\fR
|
||||||
|
Enables logging to filename. This will log everything
|
||||||
|
that goes to the screen to the specified file.
|
||||||
|
Additionally, if any debugging is specified with -d,
|
||||||
|
then debug messages will not go to the screen, but
|
||||||
|
instead to the logfile only.
|
||||||
|
.TP
|
||||||
\fB-o\fR
|
\fB-o\fR
|
||||||
Run only once, ignoring all
|
Run only once, ignoring all
|
||||||
\fIautorefresh\fR settings in the configuration
|
\fIautorefresh\fR settings in the configuration
|
||||||
@ -827,7 +834,7 @@ The Web site also lists all current bugs, where you can check their
|
|||||||
status or contribute to fixing them.
|
status or contribute to fixing them.
|
||||||
.SH "COPYRIGHT"
|
.SH "COPYRIGHT"
|
||||||
.PP
|
.PP
|
||||||
OfflineIMAP, and this manual, are Copyright © 2002, 2003 John Goerzen.
|
OfflineIMAP, and this manual, are Copyright (C) 2002, 2003 John Goerzen.
|
||||||
.PP
|
.PP
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/env python2.2
|
#!/usr/bin/env python2.3
|
||||||
# Startup from single-user installation
|
# Startup from single-user installation
|
||||||
# Copyright (C) 2002, 2003 John Goerzen
|
# Copyright (C) 2002, 2003 John Goerzen
|
||||||
# <jgoerzen@complete.org>
|
# <jgoerzen@complete.org>
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
<refentryinfo>
|
<refentryinfo>
|
||||||
<address><email>jgoerzen@complete.org</email></address>
|
<address><email>jgoerzen@complete.org</email></address>
|
||||||
<author><firstname>John</firstname><surname>Goerzen</surname></author>
|
<author><firstname>John</firstname><surname>Goerzen</surname></author>
|
||||||
<date> $Date: 2003-04-22 10:47:25 -0500 (Tue, 22 Apr 2003) $ </date>
|
<date> $Date: 2003-06-02 09:06:18 -0500 (Mon, 02 Jun 2003) $ </date>
|
||||||
</refentryinfo>
|
</refentryinfo>
|
||||||
|
|
||||||
<refmeta>
|
<refmeta>
|
||||||
@ -33,6 +33,7 @@
|
|||||||
<arg>-a <replaceable>accountlist</replaceable></arg>
|
<arg>-a <replaceable>accountlist</replaceable></arg>
|
||||||
<arg>-c <replaceable>configfile</replaceable></arg>
|
<arg>-c <replaceable>configfile</replaceable></arg>
|
||||||
<arg>-d <replaceable>debugtype[,...]</replaceable></arg>
|
<arg>-d <replaceable>debugtype[,...]</replaceable></arg>
|
||||||
|
<arg>-l <replaceable>filename</replaceable></arg>
|
||||||
<arg>-o</arg>
|
<arg>-o</arg>
|
||||||
<arg>-u <replaceable>interface</replaceable></arg>
|
<arg>-u <replaceable>interface</replaceable></arg>
|
||||||
</cmdsynopsis>
|
</cmdsynopsis>
|
||||||
@ -370,6 +371,16 @@ cd offlineimap-x.y.z</ProgramListing>
|
|||||||
certain Maildir operations. And <property>thread</property>
|
certain Maildir operations. And <property>thread</property>
|
||||||
will debug the threading model.
|
will debug the threading model.
|
||||||
</para></listitem>
|
</para></listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry><term>-l
|
||||||
|
<replaceable>filename</replaceable></term>
|
||||||
|
<listitem><para>
|
||||||
|
Enables logging to filename. This will log everything
|
||||||
|
that goes to the screen to the specified file.
|
||||||
|
Additionally, if any debugging is specified with -d,
|
||||||
|
then debug messages will not go to the screen, but
|
||||||
|
instead to the logfile only.</para>
|
||||||
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
<varlistentry><term>-o</term>
|
<varlistentry><term>-o</term>
|
||||||
<listitem><para>Run only once, ignoring all
|
<listitem><para>Run only once, ignoring all
|
||||||
|
@ -1129,6 +1129,9 @@ class IMAP4_SSL(IMAP4):
|
|||||||
self.port = port
|
self.port = port
|
||||||
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||||
self.sock.connect((host, port))
|
self.sock.connect((host, port))
|
||||||
|
if sys.version_info[0] <= 2 and sys.version_info[1] <= 2:
|
||||||
|
self.sslobj = socket.ssl(self.sock, self.keyfile, self.certfile)
|
||||||
|
else:
|
||||||
self.sslobj = socket.ssl(self.sock._sock, self.keyfile, self.certfile)
|
self.sslobj = socket.ssl(self.sock._sock, self.keyfile, self.certfile)
|
||||||
self.sslobj = sslwrapper(self.sslobj)
|
self.sslobj = sslwrapper(self.sslobj)
|
||||||
|
|
||||||
|
@ -229,32 +229,48 @@ class IMAPServer:
|
|||||||
until the Event object as passed is true. This method is expected
|
until the Event object as passed is true. This method is expected
|
||||||
to be invoked in a separate thread, which should be join()'d after
|
to be invoked in a separate thread, which should be join()'d after
|
||||||
the event is set."""
|
the event is set."""
|
||||||
|
ui = UIBase.getglobalui()
|
||||||
|
ui.debug('imap', 'keepalive thread started')
|
||||||
while 1:
|
while 1:
|
||||||
|
ui.debug('imap', 'keepalive: top of loop')
|
||||||
event.wait(timeout)
|
event.wait(timeout)
|
||||||
|
ui.debug('imap', 'keepalive: after wait')
|
||||||
if event.isSet():
|
if event.isSet():
|
||||||
|
ui.debug('imap', 'keepalive: event is set; exiting')
|
||||||
return
|
return
|
||||||
|
ui.debug('imap', 'keepalive: acquiring connectionlock')
|
||||||
self.connectionlock.acquire()
|
self.connectionlock.acquire()
|
||||||
numconnections = len(self.assignedconnections) + \
|
numconnections = len(self.assignedconnections) + \
|
||||||
len(self.availableconnections)
|
len(self.availableconnections)
|
||||||
self.connectionlock.release()
|
self.connectionlock.release()
|
||||||
|
ui.debug('imap', 'keepalive: connectionlock released')
|
||||||
threads = []
|
threads = []
|
||||||
imapobjs = []
|
imapobjs = []
|
||||||
|
|
||||||
for i in range(numconnections):
|
for i in range(numconnections):
|
||||||
|
ui.debug('imap', 'keepalive: processing connection %d of %d' % (i, numconnections))
|
||||||
imapobj = self.acquireconnection()
|
imapobj = self.acquireconnection()
|
||||||
|
ui.debug('imap', 'keepalive: connection %d acquired' % i)
|
||||||
imapobjs.append(imapobj)
|
imapobjs.append(imapobj)
|
||||||
thr = threadutil.ExitNotifyThread(target = imapobj.noop)
|
thr = threadutil.ExitNotifyThread(target = imapobj.noop)
|
||||||
thr.setDaemon(1)
|
thr.setDaemon(1)
|
||||||
thr.start()
|
thr.start()
|
||||||
threads.append(thr)
|
threads.append(thr)
|
||||||
|
ui.debug('imap', 'keepalive: thread started')
|
||||||
|
|
||||||
|
ui.debug('imap', 'keepalive: joining threads')
|
||||||
|
|
||||||
for thr in threads:
|
for thr in threads:
|
||||||
# Make sure all the commands have completed.
|
# Make sure all the commands have completed.
|
||||||
thr.join()
|
thr.join()
|
||||||
|
|
||||||
|
ui.debug('imap', 'keepalive: releasing connections')
|
||||||
|
|
||||||
for imapobj in imapobjs:
|
for imapobj in imapobjs:
|
||||||
self.releaseconnection(imapobj)
|
self.releaseconnection(imapobj)
|
||||||
|
|
||||||
|
ui.debug('imap', 'keepalive: bottom of loop')
|
||||||
|
|
||||||
class ConfigedIMAPServer(IMAPServer):
|
class ConfigedIMAPServer(IMAPServer):
|
||||||
"""This class is designed for easier initialization given a ConfigParser
|
"""This class is designed for easier initialization given a ConfigParser
|
||||||
object and an account name. The passwordhash is used if
|
object and an account name. The passwordhash is used if
|
||||||
|
@ -82,6 +82,9 @@ def startup(versionno):
|
|||||||
if debugtype == 'thread':
|
if debugtype == 'thread':
|
||||||
threading._VERBOSE = 1
|
threading._VERBOSE = 1
|
||||||
|
|
||||||
|
if '-l' in options:
|
||||||
|
ui.setlogfd(open(options['-l'], 'wt'))
|
||||||
|
|
||||||
if '-o' in options:
|
if '-o' in options:
|
||||||
# FIXME: maybe need a better
|
# FIXME: maybe need a better
|
||||||
for section in accounts.getaccountlist(config):
|
for section in accounts.getaccountlist(config):
|
||||||
|
@ -488,7 +488,7 @@ class Blinkenlights(BlinkenBase, UIBase):
|
|||||||
return s.af[accountname]
|
return s.af[accountname]
|
||||||
|
|
||||||
|
|
||||||
def _msg(s, msg, color = None):
|
def _display(s, msg, color = None):
|
||||||
if "\n" in msg:
|
if "\n" in msg:
|
||||||
for thisline in msg.split("\n"):
|
for thisline in msg.split("\n"):
|
||||||
s._msg(thisline)
|
s._msg(thisline)
|
||||||
|
@ -30,7 +30,7 @@ class TTYUI(UIBase):
|
|||||||
def isusable(s):
|
def isusable(s):
|
||||||
return sys.stdout.isatty() and sys.stdin.isatty()
|
return sys.stdout.isatty() and sys.stdin.isatty()
|
||||||
|
|
||||||
def _msg(s, msg):
|
def _display(s, msg):
|
||||||
s.outputlock.acquire()
|
s.outputlock.acquire()
|
||||||
try:
|
try:
|
||||||
if (currentThread().getName() == 'MainThread'):
|
if (currentThread().getName() == 'MainThread'):
|
||||||
|
@ -222,7 +222,7 @@ class VerboseUI(UIBase):
|
|||||||
finally:
|
finally:
|
||||||
s.tflock.release()
|
s.tflock.release()
|
||||||
|
|
||||||
def _msg(s, msg):
|
def _display(s, msg):
|
||||||
s.gettf().setmessage(msg)
|
s.gettf().setmessage(msg)
|
||||||
|
|
||||||
def threadExited(s, thread):
|
def threadExited(s, thread):
|
||||||
@ -504,7 +504,7 @@ class Blinkenlights(BlinkenBase, VerboseUI):
|
|||||||
lo, hi = s.text.vbar.get()
|
lo, hi = s.text.vbar.get()
|
||||||
s.text.vbar.set(1.0 - (hi - lo), 1.0)
|
s.text.vbar.set(1.0 - (hi - lo), 1.0)
|
||||||
|
|
||||||
def _msg(s, msg):
|
def _display(s, msg):
|
||||||
if "\n" in msg:
|
if "\n" in msg:
|
||||||
for thisline in msg.split("\n"):
|
for thisline in msg.split("\n"):
|
||||||
s._msg(thisline)
|
s._msg(thisline)
|
||||||
|
@ -21,7 +21,8 @@ import re, time, sys, traceback, threading, thread
|
|||||||
from StringIO import StringIO
|
from StringIO import StringIO
|
||||||
|
|
||||||
debugtypes = {'imap': 'IMAP protocol debugging',
|
debugtypes = {'imap': 'IMAP protocol debugging',
|
||||||
'maildir': 'Maildir repository debugging'}
|
'maildir': 'Maildir repository debugging',
|
||||||
|
'thread': 'Threading debugging'}
|
||||||
|
|
||||||
globalui = None
|
globalui = None
|
||||||
def setglobalui(newui):
|
def setglobalui(newui):
|
||||||
@ -39,10 +40,27 @@ class UIBase:
|
|||||||
s.debugmessages = {}
|
s.debugmessages = {}
|
||||||
s.debugmsglen = 50
|
s.debugmsglen = 50
|
||||||
s.threadaccounts = {}
|
s.threadaccounts = {}
|
||||||
|
s.logfile = None
|
||||||
|
|
||||||
################################################## UTILS
|
################################################## UTILS
|
||||||
def _msg(s, msg):
|
def _msg(s, msg):
|
||||||
"""Generic tool called when no other works."""
|
"""Generic tool called when no other works."""
|
||||||
|
s._log(msg)
|
||||||
|
s._display(msg)
|
||||||
|
|
||||||
|
def _log(s, msg):
|
||||||
|
"""Log it to disk. Returns true if it wrote something; false
|
||||||
|
otherwise."""
|
||||||
|
if s.logfile:
|
||||||
|
s.logfile.write("%s: %s\n" % (threading.currentThread().getName(),
|
||||||
|
msg))
|
||||||
|
return s.logfile
|
||||||
|
|
||||||
|
def setlogfd(s, logfd):
|
||||||
|
s.logfile = logfd
|
||||||
|
|
||||||
|
def _display(s, msg):
|
||||||
|
"""Display a message."""
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
|
|
||||||
def warn(s, msg, minor = 0):
|
def warn(s, msg, minor = 0):
|
||||||
@ -82,8 +100,9 @@ class UIBase:
|
|||||||
while len(s.debugmessages[thisthread]) > s.debugmsglen:
|
while len(s.debugmessages[thisthread]) > s.debugmsglen:
|
||||||
s.debugmessages[thisthread] = s.debugmessages[thisthread][1:]
|
s.debugmessages[thisthread] = s.debugmessages[thisthread][1:]
|
||||||
|
|
||||||
|
if not s._log("DEBUG[%s]: %s"):
|
||||||
if debugtype in s.debuglist:
|
if debugtype in s.debuglist:
|
||||||
s._msg("DEBUG[%s]: %s" % (debugtype, msg))
|
s._display("DEBUG[%s]: %s" % (debugtype, msg))
|
||||||
|
|
||||||
def add_debug(s, debugtype):
|
def add_debug(s, debugtype):
|
||||||
global debugtypes
|
global debugtypes
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/env python2.2
|
#!/usr/bin/env python2.3
|
||||||
|
|
||||||
# $Id: setup.py,v 1.1 2002/06/21 18:10:49 jgoerzen Exp $
|
# $Id: setup.py,v 1.1 2002/06/21 18:10:49 jgoerzen Exp $
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user