]> git.webhop.me Git - lcd4linux.git/commitdiff
[lcd4linux @ 2001-03-15 14:25:05 by ltoetsch]
authorltoetsch <ltoetsch@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>
Thu, 15 Mar 2001 14:25:05 +0000 (14:25 +0000)
committerltoetsch <ltoetsch@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>
Thu, 15 Mar 2001 14:25:05 +0000 (14:25 +0000)
added unread/total news

git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@124 3ae390bd-cb1e-0410-b409-cd5a39f66f1f

CREDITS
NEWS
README
TODO
configure
display.c
lcd4linux.conf.sample
mail.c
mail.h
mail2.c
socket.c

diff --git a/CREDITS b/CREDITS
index c814a413284a113b02dbbffa9168450182548bd3..15d7af10bed736bb9d5fe22797b92c7cb3a65ea2 100644 (file)
--- a/CREDITS
+++ b/CREDITS
@@ -5,7 +5,7 @@ Herbert Rosmanith <herp@wildsau.idv-edu.uni-linz.ac.at>
 
 Leopold Tötsch <lt@toetsch.at>
   PNG driver
-  POP & IMAP client
+  POP, IMAP & NEWS client
   simple web interface
   lots of (well, sometimes too much :-) ideas
 
diff --git a/NEWS b/NEWS
index 8bf3ffb017b4d9ad1d02a6f5281bd8b04820dcf3..8cf0b70ecc6983d23b4f9072fdf489f37f43f0cb 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -47,3 +47,5 @@ lcd4linux-0.98
   (which is propably incorrect for normal mbox)
 
 - added another verbose level (-vvv) for debugging socket traffic
+
+- added nntp support for count of news/unread messages in subscribed NGs
diff --git a/README b/README
index 70eeba115cd554047bef2e8a9c3c6ebfcba18f4b..2970b8645bce9023d4bdc0812a41c3f38d79a752 100644 (file)
--- a/README
+++ b/README
@@ -1,5 +1,5 @@
 #
-# $Id: README,v 1.18 2001/03/14 13:19:29 ltoetsch Exp $
+# $Id: README,v 1.19 2001/03/15 14:25:05 ltoetsch Exp $
 #
 
 This is the README file for lcd4linux
@@ -158,16 +158,26 @@ Data-specific options:
   battery: Battwarning 10 (default 10)
   
   Mailbox:
-     The option string may be a plain mbox file or a pop3/imap4 server
+     The option string may be a plain mbox file or a pop3/imap4/nntp server
      string with the following format:
      
        pop3:[user[:pass]@]machine[:port]
        imap4:[user[:pass]@]machine[:port][/dir]
+       nntp:[user[:pass]@]machine[:port][/dir]
        
      Port defaults to 110 and 143 respectively.
      If /dir is not given, INBOX is assumed.
+     If dir is given for nntp: it should be a valid group name
+       with '.' separating items
+     If dir is not given for nntp: all/unread news of subscribed groups
+     from Newsrc are calcualted.
        
      Delay_e1..e9 delay in seconds for querying the MailboxN (default 5)  
+     Newsrc ... path/name of your .newsrc file containing subscribed news
+     
+     Note: authorization on newsservers is untested.
+     Note: user and pass may not contain a '/' with above syntax, I hope
+           that's ok.
    
  
 Driver-specific options:
diff --git a/TODO b/TODO
index 939fbb1b22931286cec2de1eba7de73345f64b66..a7c15ca14e0dd25110834aa45c09a1f4f5d9ef34 100644 (file)
--- a/TODO
+++ b/TODO
@@ -77,3 +77,6 @@ add a new Token 'nc' for 'network collisions'
 2001-03-14 Michael Reinelt <reinelt@eunet.at>
 add translation tables ('german umlauts' don't 
 follow any scheme on most displays)
+
+2001-03-15 Leopold Toetsch <lt@toetsch.at>
+Text display has troubles with '\r'
index 499aad8298dabea46a00b9851ebfb0f2b327ae1a..769afc7d0c6218a29fad623c1dd53e9eed223bc6 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,7 +1,7 @@
 #! /bin/sh
 
 # Guess values for system-dependent variables and create Makefiles.
-# Generated automatically using autoconf version 2.13 
+# Generated automatically using autoconf version 2.14 
 # Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
 #
 # This configure script is free software; the Free Software Foundation
@@ -344,7 +344,7 @@ EOF
     verbose=yes ;;
 
   -version | --version | --versio | --versi | --vers)
-    echo "configure generated by autoconf version 2.13"
+    echo "configure generated by autoconf version 2.14"
     exit 0 ;;
 
   -with-* | --with-*)
@@ -1680,6 +1680,7 @@ else
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
 char gethostbyname();
+char (*f)();
 
 int main() {
 
@@ -1689,12 +1690,12 @@ int main() {
 #if defined (__stub_gethostbyname) || defined (__stub___gethostbyname)
 choke me
 #else
-gethostbyname();
+f = gethostbyname;
 #endif
 
 ; return 0; }
 EOF
-if { (eval echo configure:1698: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1699: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_gethostbyname=yes"
 else
@@ -1715,7 +1716,7 @@ fi
 
     if test $ac_cv_func_gethostbyname = no; then
       echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6
-echo "configure:1719: checking for gethostbyname in -lnsl" >&5
+echo "configure:1720: checking for gethostbyname in -lnsl" >&5
 ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1723,7 +1724,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lnsl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 1727 "configure"
+#line 1728 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -1734,7 +1735,7 @@ int main() {
 gethostbyname()
 ; return 0; }
 EOF
-if { (eval echo configure:1738: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1739: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -1764,12 +1765,12 @@ fi
     # -lsocket must be given before -lnsl if both are needed.
     # We assume that if connect needs -lnsl, so does gethostbyname.
     echo $ac_n "checking for connect""... $ac_c" 1>&6
-echo "configure:1768: checking for connect" >&5
+echo "configure:1769: checking for connect" >&5
 if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1773 "configure"
+#line 1774 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char connect(); below.  */
@@ -1778,6 +1779,7 @@ else
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
 char connect();
+char (*f)();
 
 int main() {
 
@@ -1787,12 +1789,12 @@ int main() {
 #if defined (__stub_connect) || defined (__stub___connect)
 choke me
 #else
-connect();
+f = connect;
 #endif
 
 ; return 0; }
 EOF
-if { (eval echo configure:1796: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1798: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_connect=yes"
 else
@@ -1813,7 +1815,7 @@ fi
 
     if test $ac_cv_func_connect = no; then
       echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6
-echo "configure:1817: checking for connect in -lsocket" >&5
+echo "configure:1819: checking for connect in -lsocket" >&5
 ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1821,7 +1823,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 1825 "configure"
+#line 1827 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -1832,7 +1834,7 @@ int main() {
 connect()
 ; return 0; }
 EOF
-if { (eval echo configure:1836: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1838: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -1856,12 +1858,12 @@ fi
 
     # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX.
     echo $ac_n "checking for remove""... $ac_c" 1>&6
-echo "configure:1860: checking for remove" >&5
+echo "configure:1862: checking for remove" >&5
 if eval "test \"`echo '$''{'ac_cv_func_remove'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1865 "configure"
+#line 1867 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char remove(); below.  */
@@ -1870,6 +1872,7 @@ else
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
 char remove();
+char (*f)();
 
 int main() {
 
@@ -1879,12 +1882,12 @@ int main() {
 #if defined (__stub_remove) || defined (__stub___remove)
 choke me
 #else
-remove();
+f = remove;
 #endif
 
 ; return 0; }
 EOF
-if { (eval echo configure:1888: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1891: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_remove=yes"
 else
@@ -1905,7 +1908,7 @@ fi
 
     if test $ac_cv_func_remove = no; then
       echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6
-echo "configure:1909: checking for remove in -lposix" >&5
+echo "configure:1912: checking for remove in -lposix" >&5
 ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1913,7 +1916,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lposix  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 1917 "configure"
+#line 1920 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -1924,7 +1927,7 @@ int main() {
 remove()
 ; return 0; }
 EOF
-if { (eval echo configure:1928: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1931: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -1948,12 +1951,12 @@ fi
 
     # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
     echo $ac_n "checking for shmat""... $ac_c" 1>&6
-echo "configure:1952: checking for shmat" >&5
+echo "configure:1955: checking for shmat" >&5
 if eval "test \"`echo '$''{'ac_cv_func_shmat'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1957 "configure"
+#line 1960 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char shmat(); below.  */
@@ -1962,6 +1965,7 @@ else
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
 char shmat();
+char (*f)();
 
 int main() {
 
@@ -1971,12 +1975,12 @@ int main() {
 #if defined (__stub_shmat) || defined (__stub___shmat)
 choke me
 #else
-shmat();
+f = shmat;
 #endif
 
 ; return 0; }
 EOF
-if { (eval echo configure:1980: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1984: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_shmat=yes"
 else
@@ -1997,7 +2001,7 @@ fi
 
     if test $ac_cv_func_shmat = no; then
       echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6
-echo "configure:2001: checking for shmat in -lipc" >&5
+echo "configure:2005: checking for shmat in -lipc" >&5
 ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2005,7 +2009,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lipc  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2009 "configure"
+#line 2013 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2016,7 +2020,7 @@ int main() {
 shmat()
 ; return 0; }
 EOF
-if { (eval echo configure:2020: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2024: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2049,7 +2053,7 @@ fi
   # libraries we check for below, so use a different variable.
   #  --interran@uluru.Stanford.EDU, kb@cs.umb.edu.
   echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6
-echo "configure:2053: checking for IceConnectionNumber in -lICE" >&5
+echo "configure:2057: checking for IceConnectionNumber in -lICE" >&5
 ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2057,7 +2061,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lICE $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2061 "configure"
+#line 2065 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2068,7 +2072,7 @@ int main() {
 IceConnectionNumber()
 ; return 0; }
 EOF
-if { (eval echo configure:2072: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2076: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2094,7 +2098,7 @@ fi
 
 
 echo $ac_n "checking which drivers to compile""... $ac_c" 1>&6
-echo "configure:2098: checking which drivers to compile" >&5
+echo "configure:2102: checking which drivers to compile" >&5
 # Check whether --with-drivers or --without-drivers was given.
 if test "${with_drivers+set}" = set; then
   withval="$with_drivers"
@@ -2285,12 +2289,12 @@ fi
 
 
 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:2289: checking for ANSI C header files" >&5
+echo "configure:2293: checking for ANSI C header files" >&5
 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2294 "configure"
+#line 2298 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
@@ -2298,7 +2302,7 @@ else
 #include <float.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2302: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2306: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2315,7 +2319,7 @@ rm -f conftest*
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 2319 "configure"
+#line 2323 "configure"
 #include "confdefs.h"
 #include <string.h>
 EOF
@@ -2333,7 +2337,7 @@ fi
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 2337 "configure"
+#line 2341 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
@@ -2354,7 +2358,7 @@ if test "$cross_compiling" = yes; then
   :
 else
   cat > conftest.$ac_ext <<EOF
-#line 2358 "configure"
+#line 2362 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -2365,7 +2369,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
 exit (0); }
 
 EOF
-if { (eval echo configure:2369: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2373: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   :
 else
@@ -2393,12 +2397,12 @@ for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6
-echo "configure:2397: checking for $ac_hdr that defines DIR" >&5
+echo "configure:2401: checking for $ac_hdr that defines DIR" >&5
 if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2402 "configure"
+#line 2406 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <$ac_hdr>
@@ -2406,7 +2410,7 @@ int main() {
 DIR *dirp = 0;
 ; return 0; }
 EOF
-if { (eval echo configure:2410: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2414: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   eval "ac_cv_header_dirent_$ac_safe=yes"
 else
@@ -2431,7 +2435,7 @@ done
 # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
 if test $ac_header_dirent = dirent.h; then
 echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6
-echo "configure:2435: checking for opendir in -ldir" >&5
+echo "configure:2439: checking for opendir in -ldir" >&5
 ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2439,7 +2443,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ldir  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2443 "configure"
+#line 2447 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2450,7 +2454,7 @@ int main() {
 opendir()
 ; return 0; }
 EOF
-if { (eval echo configure:2454: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2458: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2472,7 +2476,7 @@ fi
 
 else
 echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6
-echo "configure:2476: checking for opendir in -lx" >&5
+echo "configure:2480: checking for opendir in -lx" >&5
 ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2480,7 +2484,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lx  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2484 "configure"
+#line 2488 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2491,7 +2495,7 @@ int main() {
 opendir()
 ; return 0; }
 EOF
-if { (eval echo configure:2495: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2499: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2514,12 +2518,12 @@ fi
 fi
 
 echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6
-echo "configure:2518: checking for sys/wait.h that is POSIX.1 compatible" >&5
+echo "configure:2522: checking for sys/wait.h that is POSIX.1 compatible" >&5
 if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2523 "configure"
+#line 2527 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/wait.h>
@@ -2535,7 +2539,7 @@ wait (&s);
 s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
 ; return 0; }
 EOF
-if { (eval echo configure:2539: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2543: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_header_sys_wait_h=yes
 else
@@ -2559,17 +2563,17 @@ for ac_hdr in fcntl.h limits.h strings.h sys/ioctl.h sys/time.h syslog.h unistd.
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2563: checking for $ac_hdr" >&5
+echo "configure:2567: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2568 "configure"
+#line 2572 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2573: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2577: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2599,17 +2603,17 @@ for ac_hdr in sys/io.h asm/io.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2603: checking for $ac_hdr" >&5
+echo "configure:2607: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2608 "configure"
+#line 2612 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2613: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2617: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2639,17 +2643,17 @@ for ac_hdr in linux/parport.h linux/ppdev.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2643: checking for $ac_hdr" >&5
+echo "configure:2647: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2648 "configure"
+#line 2652 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2653: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2657: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2679,17 +2683,17 @@ for ac_hdr in gd/gd.h gd.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2683: checking for $ac_hdr" >&5
+echo "configure:2687: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2688 "configure"
+#line 2692 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2693: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2697: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2719,17 +2723,17 @@ for ac_hdr in net/if_ppp.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2723: checking for $ac_hdr" >&5
+echo "configure:2727: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2728 "configure"
+#line 2732 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2733: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2737: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2759,17 +2763,17 @@ for ac_hdr in asm/msr.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2763: checking for $ac_hdr" >&5
+echo "configure:2767: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2768 "configure"
+#line 2772 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2773: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2777: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2797,12 +2801,12 @@ done
 
 
 echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:2801: checking for working const" >&5
+echo "configure:2805: checking for working const" >&5
 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2806 "configure"
+#line 2810 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -2851,7 +2855,7 @@ ccp = (char const *const *) p;
 
 ; return 0; }
 EOF
-if { (eval echo configure:2855: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2859: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_const=yes
 else
@@ -2872,21 +2876,21 @@ EOF
 fi
 
 echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:2876: checking for inline" >&5
+echo "configure:2880: checking for inline" >&5
 if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_cv_c_inline=no
 for ac_kw in inline __inline__ __inline; do
   cat > conftest.$ac_ext <<EOF
-#line 2883 "configure"
+#line 2887 "configure"
 #include "confdefs.h"
 
 int main() {
 } $ac_kw foo() {
 ; return 0; }
 EOF
-if { (eval echo configure:2890: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2894: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_inline=$ac_kw; break
 else
@@ -2912,12 +2916,12 @@ EOF
 esac
 
 echo $ac_n "checking for pid_t""... $ac_c" 1>&6
-echo "configure:2916: checking for pid_t" >&5
+echo "configure:2920: checking for pid_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2921 "configure"
+#line 2925 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -2945,12 +2949,12 @@ EOF
 fi
 
 echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:2949: checking for size_t" >&5
+echo "configure:2953: checking for size_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2954 "configure"
+#line 2958 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -2978,12 +2982,12 @@ EOF
 fi
 
 echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-echo "configure:2982: checking whether time.h and sys/time.h may both be included" >&5
+echo "configure:2986: checking whether time.h and sys/time.h may both be included" >&5
 if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2987 "configure"
+#line 2991 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/time.h>
@@ -2992,7 +2996,7 @@ int main() {
 struct tm *tp;
 ; return 0; }
 EOF
-if { (eval echo configure:2996: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3000: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_header_time=yes
 else
@@ -3013,12 +3017,12 @@ EOF
 fi
 
 echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6
-echo "configure:3017: checking whether struct tm is in sys/time.h or time.h" >&5
+echo "configure:3021: checking whether struct tm is in sys/time.h or time.h" >&5
 if eval "test \"`echo '$''{'ac_cv_struct_tm'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3022 "configure"
+#line 3026 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <time.h>
@@ -3026,7 +3030,7 @@ int main() {
 struct tm *tp; tp->tm_sec;
 ; return 0; }
 EOF
-if { (eval echo configure:3030: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3034: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_struct_tm=time.h
 else
@@ -3047,12 +3051,12 @@ EOF
 fi
 
 echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6
-echo "configure:3051: checking for uid_t in sys/types.h" >&5
+echo "configure:3055: checking for uid_t in sys/types.h" >&5
 if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3056 "configure"
+#line 3060 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 EOF
@@ -3083,13 +3087,13 @@ fi
 
 if test $ac_cv_prog_gcc = yes; then
     echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6
-echo "configure:3087: checking whether ${CC-cc} needs -traditional" >&5
+echo "configure:3091: checking whether ${CC-cc} needs -traditional" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
     ac_pattern="Autoconf.*'x'"
   cat > conftest.$ac_ext <<EOF
-#line 3093 "configure"
+#line 3097 "configure"
 #include "confdefs.h"
 #include <sgtty.h>
 Autoconf TIOCGETP
@@ -3107,7 +3111,7 @@ rm -f conftest*
 
   if test $ac_cv_prog_gcc_traditional = no; then
     cat > conftest.$ac_ext <<EOF
-#line 3111 "configure"
+#line 3115 "configure"
 #include "confdefs.h"
 #include <termio.h>
 Autoconf TCGETA
@@ -3129,7 +3133,7 @@ echo "$ac_t""$ac_cv_prog_gcc_traditional" 1>&6
 fi
 
 echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6
-echo "configure:3133: checking for 8-bit clean memcmp" >&5
+echo "configure:3137: checking for 8-bit clean memcmp" >&5
 if eval "test \"`echo '$''{'ac_cv_func_memcmp_clean'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3137,7 +3141,7 @@ else
   ac_cv_func_memcmp_clean=no
 else
   cat > conftest.$ac_ext <<EOF
-#line 3141 "configure"
+#line 3145 "configure"
 #include "confdefs.h"
 
 main()
@@ -3147,7 +3151,7 @@ main()
 }
 
 EOF
-if { (eval echo configure:3151: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3155: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_func_memcmp_clean=yes
 else
@@ -3165,12 +3169,12 @@ echo "$ac_t""$ac_cv_func_memcmp_clean" 1>&6
 test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.${ac_objext}"
 
 echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:3169: checking return type of signal handlers" >&5
+echo "configure:3173: checking return type of signal handlers" >&5
 if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3174 "configure"
+#line 3178 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <signal.h>
@@ -3187,7 +3191,7 @@ int main() {
 int i;
 ; return 0; }
 EOF
-if { (eval echo configure:3191: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3195: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_type_signal=void
 else
@@ -3208,12 +3212,12 @@ EOF
 for ac_func in gettimeofday putenv select socket strdup strerror strstr strtol uname
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3212: checking for $ac_func" >&5
+echo "configure:3216: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3217 "configure"
+#line 3221 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -3222,6 +3226,7 @@ else
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
 char $ac_func();
+char (*f)();
 
 int main() {
 
@@ -3231,12 +3236,12 @@ int main() {
 #if defined (__stub_$ac_func) || defined (__stub___$ac_func)
 choke me
 #else
-$ac_func();
+f = $ac_func;
 #endif
 
 ; return 0; }
 EOF
-if { (eval echo configure:3240: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3245: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -3351,7 +3356,7 @@ do
     echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
     exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
   -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
-    echo "$CONFIG_STATUS generated by autoconf version 2.13"
+    echo "$CONFIG_STATUS generated by autoconf version 2.14"
     exit 0 ;;
   -help | --help | --hel | --he | --h)
     echo "\$ac_cs_usage"; exit 0 ;;
index aaba3a57bf7b110c689608372b97cc4510738ad6..1e56e99b80404da3bdf9e29d88a34d3e0dbf349e 100644 (file)
--- a/display.c
+++ b/display.c
@@ -1,4 +1,4 @@
-/* $Id: display.c,v 1.26 2001/03/12 12:39:36 reinelt Exp $
+/* $Id: display.c,v 1.27 2001/03/15 14:25:05 ltoetsch Exp $
  *
  * framework for device drivers
  *
@@ -20,6 +20,9 @@
  *
  *
  * $Log: display.c,v $
+ * Revision 1.27  2001/03/15 14:25:05  ltoetsch
+ * added unread/total news
+ *
  * Revision 1.26  2001/03/12 12:39:36  reinelt
  *
  * reworked autoconf a lot: drivers may be excluded, #define's went to config.h
@@ -214,7 +217,7 @@ FAMILY Driver[] = {
 #ifdef WITH_X11
   { "X Window System", XWindow },
 #endif
-#ifdef WITH_Text
+#ifdef WITH_TEXT
   { "X Ncurses Text", Text },
 #endif
   { NULL }
index 5f14ec158ffd568179b38f636b922044d33f8b7d..b083c918a54e77afc3bbdf06f85ad274733d56c3 100644 (file)
@@ -101,31 +101,35 @@ Overload 2.0
 # flash bp-Bar if below Battwarning
 # I use Row6 "Bat%bp%bs%bd$r10bp+bp"
 # which gives a nice flash effect
-# default 10
+# default is 10
 
 Battwarning 10
 
 SetiDir /etc/setiathome
 
 # normal local mbox
-Mailbox1 /var/spool/mail/michi
+Mailbox1 /var/spool/mail/michi
 
 # POP3 mail @ machine
-Mailbox2 pop3:user:pass@machine
+Mailbox2 pop3:user:pass@machine
 
 # IMAP4 mail folder @ machine
-Mailbox3 imap4:user:pass@machine/folder
+Mailbox3 imap4:user:pass@machine/folder
 
-# Full syntax of pop3/imap4 is:
+# News server on 'server' group at.linux
+# Mailbox4 nntp:server/at.linux
+
+# Full syntax of pop3/imap4/nntp is:
 # [user[:pass]@]machine[:port][/dir]
 #
-# display total/unseen mails of Mailbox3
+# display total/unseen mails/news of Mailbox3
 # Row6 "Mails %e3/%u3"
 
 # delay query of MailboxN in seconds (default = 5)
 Delay_e1 5
 Delay_e2 20
 Delay_e3 20
+Delay_e4 120
 
 Sensor1 /proc/sys/dev/sensors/as99127f-i2c-0-2d/temp1
 Sensor1_min 30
diff --git a/mail.c b/mail.c
index 76214497184031d3c96b7ec46e64bd0d7ca64fc1..18158090e0a7b58e5712517f1d8510a9a9533cbf 100644 (file)
--- a/mail.c
+++ b/mail.c
@@ -1,4 +1,4 @@
-/* $Id: mail.c,v 1.6 2001/03/14 13:19:29 ltoetsch Exp $
+/* $Id: mail.c,v 1.7 2001/03/15 14:25:05 ltoetsch Exp $
  *
  * email specific functions
  *
@@ -20,6 +20,9 @@
  *
  *
  * $Log: mail.c,v $
+ * Revision 1.7  2001/03/15 14:25:05  ltoetsch
+ * added unread/total news
+ *
  * Revision 1.6  2001/03/14 13:19:29  ltoetsch
  * Added pop3/imap4 mail support
  *
@@ -121,9 +124,9 @@ int Mail (int index, int *num, int *unseen)
     rc=stat(fnp1, &fst);
     if ( rc != 0 ) {
       /* 
-        is it pop3 or imap4
+        is it pop3, imap4 or nntp
       */
-      rc = Mail_pop_imap(fnp1, num, unseen);
+      rc = Mail_pop_imap_news(fnp1, num, unseen);
       if (rc == 0)
        return 0;
       else
diff --git a/mail.h b/mail.h
index 8341220c56b5e6036900981eff02ed42d4fc5799..456a5aca2352fc5dcb0f5bcb6a8b84ecf16f3b33 100644 (file)
--- a/mail.h
+++ b/mail.h
@@ -1,4 +1,4 @@
-/* $Id: mail.h,v 1.3 2001/03/14 13:19:29 ltoetsch Exp $
+/* $Id: mail.h,v 1.4 2001/03/15 14:25:05 ltoetsch Exp $
  *
  * email specific functions
  *
@@ -20,6 +20,9 @@
  *
  *
  * $Log: mail.h,v $
+ * Revision 1.4  2001/03/15 14:25:05  ltoetsch
+ * added unread/total news
+ *
  * Revision 1.3  2001/03/14 13:19:29  ltoetsch
  * Added pop3/imap4 mail support
  *
@@ -38,5 +41,5 @@
 #define MAILBOXES 9
 
 int Mail (int index, int *num, int *unseen);
-int Mail_pop_imap(char *mbx, int *num, int *unseen); /* mail2.c */
+int Mail_pop_imap_news(char *mbx, int *num, int *unseen); /* mail2.c */
 #endif
diff --git a/mail2.c b/mail2.c
index 4e974e5168ce3defcec0fd0ab41a16b0324f52d2..af095fc746385d04cbb9585eab18ccd143512df5 100644 (file)
--- a/mail2.c
+++ b/mail2.c
@@ -1,6 +1,6 @@
-/* $Id: mail2.c,v 1.2 2001/03/15 11:10:53 ltoetsch Exp $
+/* $Id: mail2.c,v 1.3 2001/03/15 14:25:05 ltoetsch Exp $
  *
- * mail: pop3, imap functions
+ * mail: pop3, imap, news functions
  *
  * Copyright 2001 by Leopold Tötsch (lt@toetsch.at)
  *
@@ -20,6 +20,9 @@
  *
  *
  * $Log: mail2.c,v $
+ * Revision 1.3  2001/03/15 14:25:05  ltoetsch
+ * added unread/total news
+ *
  * Revision 1.2  2001/03/15 11:10:53  ltoetsch
  * added quit/logout to pop/imap
  *
@@ -29,7 +32,7 @@
  *
  * Exported Functions:
  *
- * int Mail_pop_imap(char *mbox, int *total_mails, int *unseen);
+ * int Mail_pop_imap_news(char *mbox, int *total_mails, int *unseen);
  *     returns -1 on error, 0 on success
  *
  */
 #include <errno.h>
 
 #include "debug.h"
+#include "cfg.h"
 #include "socket.h"
 
 #define PROTO_UNKNOWN -1
 #define PROTO_POP3 110
+#define PROTO_NNTP 119
 #define PROTO_IMAP4 143
 
 /*
@@ -71,6 +76,7 @@ static int parse_proto(char *s, int *proto, char **user, char **pass,
   protos[] =
     {
        { "pop3:", PROTO_POP3 },
+       { "nntp:", PROTO_NNTP },
        { "imap4:", PROTO_IMAP4 },
     };
   int i;
@@ -167,6 +173,115 @@ static int wr_rd(int fd, char *buf, char *match,
   return n;
 }
 
+static int check_nntp(char *user, char *pass, char *machine,
+                      int port, char *dir, int *total, int *unseen)
+{
+  int fd;
+  int n;
+  char buf[BUFLEN];
+  char line[BUFLEN];
+  FILE *fp;
+  int groups;
+  int err;
+  int totg, unsg;
+  int first;
+  
+  strcpy(buf, cfg_get("Newsrc") ?: ".newsrc");
+  if (*buf == 0 || ((fp = fopen(buf, "r")) == NULL)) {
+    error("Couldn't open .newsrc-file '%s'", buf);
+    return -1;
+  }
+
+  fd = open_socket(machine, port);
+  if (fd < 0)
+    {
+      error("Couldn't connect to %s:%d (%s)", machine, port, strerror(errno));
+      fclose(fp);
+      return -1;
+    }
+  n = read_socket_match(fd, buf, BUFLEN-1, "20"); /* server ready */
+  if (n <= 0) {
+    error("Server doesn't respond %s:%d (%s)", machine, port, strerror(errno));
+    close(fd);
+    return -1;
+  }
+  /* do auth if necessary, this is NOT TESTED */
+  if (*user) {
+    sprintf(buf, "AUTHINFO USER %s\r\n", user);
+    if (wr_rd(fd, buf, "381", "No AUTH required?", machine, port) <= 0)
+      return -1;
+    if (*pass)
+      {
+        sprintf(buf, "AUTHINFO PASS %s\r\n", pass);
+      if (wr_rd(fd, buf, "281", "Wrong PASS?", machine, port) <= 0)
+       return -1;
+      }
+  }
+  sleep(2);  /* wait for newsserver to read groupinfo */
+  groups = 0;
+  err = 0;
+  totg = unsg = 0; /* total, unseen */    
+  while (fgets(line, sizeof(line)-1, fp) && err < 5) {
+    char group[BUFLEN];
+    char *p;
+    int smin, smax, lmin, lmax;
+    
+    if (sscanf(line, "%s:", group) != 1) {
+      error("Couldn't read group in '%s'", line);
+      err++;
+      continue;
+    }
+    if ((p=strchr(group,':')) != NULL)
+      *p='\0';
+                                     
+    /* check dir if it matches group */
+    if (*dir && strcmp(dir, group))
+      continue;
+    
+    sprintf(buf, "GROUP %s\r\n", group);
+    if (wr_rd(fd, buf, "211", "Wrong Group", machine, port) <= 0) {
+      err++;
+      continue;
+    }
+    /* answer 211 total smin smax group: */
+    sscanf(buf, "211 %*d %d %d", &smin, &smax);
+    debug("nntp: %s: smin=%d smax=%d", group, smin, smax);
+    totg += smax-smin-1;
+    p = strchr(line, ':');
+    p++;
+    first = 1;
+    while (1) {
+      lmin = strtol(p, &p, 10);
+      if (*p == '-') 
+       lmax = strtol(++p, &p, 10);
+      else
+       lmax=lmin;
+      debug("nntp: %s: lmin=%d lmax=%d", group, lmin, lmax);
+      if (smax >= lmax) { /* server has more articles */
+       if (first)
+         unsg += smax - lmax;
+       else
+         unsg -= lmax-lmin+1;
+       first = 0;
+      }
+      else     /* local has higher article ??? */
+        break;
+      if (*p == ',')
+       p++;
+      else
+       break;
+    }
+  } /* while fp */
+  fclose(fp);    
+  strcpy(buf, "QUIT\r\n");
+  wr_rd(fd, buf, "2", "Quit", machine, port);
+  close(fd);
+  *unseen = unsg;
+  *total = totg;
+  return 0;
+}
+      
+
 static int check_imap4(char *user, char *pass, char *machine,
                       int port, char *dir, int *total, int *unseen)
 {
@@ -259,7 +374,7 @@ static int check_pop3(char *user, char *pass, char *machine,
   return 0;
 }
 
-int Mail_pop_imap(char *s, int *total, int *unseen)
+int Mail_pop_imap_news(char *s, int *total, int *unseen)
 {
   int proto, port, ret;
   char *user, *pass, *machine, *dir, *ds;
@@ -276,8 +391,10 @@ int Mail_pop_imap(char *s, int *total, int *unseen)
     error("Not a pop3/imap4 mailbox");
   else
     ret = (proto == PROTO_POP3) ?
-    check_pop3(user, pass, machine, port, total, unseen) :
-  check_imap4(user, pass, machine, port, dir, total, unseen);
+      check_pop3(user, pass, machine, port, total, unseen) :
+    (proto == PROTO_NNTP) ?
+    check_nntp(user, pass, machine, port, dir, total, unseen) :
+    check_imap4(user, pass, machine, port, dir, total, unseen);
   free(ds);
   return ret;
 }
index fa57b536e007addcd5312a169fd86e76ab8c5675..cb00033dc638936c94a26d96b89b7f8e70bb2232 100644 (file)
--- a/socket.c
+++ b/socket.c
@@ -1,4 +1,4 @@
-/* $Id: socket.c,v 1.1 2001/03/14 13:19:29 ltoetsch Exp $
+/* $Id: socket.c,v 1.2 2001/03/15 14:25:05 ltoetsch Exp $
  *
  * simple socket functions
  *
@@ -20,6 +20,9 @@
  *
  *
  * $Log: socket.c,v $
+ * Revision 1.2  2001/03/15 14:25:05  ltoetsch
+ * added unread/total news
+ *
  * Revision 1.1  2001/03/14 13:19:29  ltoetsch
  * Added pop3/imap4 mail support
  *
@@ -69,7 +72,7 @@
 
 #include "debug.h"
 
-#define TIMEOUT 2 /* 2 seconds timeout */
+#define TIMEOUT 5 /* 5 seconds timeout */
 
 int open_socket(char *machine, int port)
 {