From fcb8f458d95b3147b64c4490667403d6bc51e613 Mon Sep 17 00:00:00 2001 From: damien Date: Wed, 7 Jul 1999 07:37:45 +0000 Subject: [PATCH] =?UTF-8?q?Pr=E9paration=20de=20la=20distrib.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BUGS | 10 ++ COPYING | 340 ++++++++++++++++++++++++++++++++++++++++++++ INSTALL | 37 +++++ INSTALL.site | 71 +++++++++ README | 100 +++++++++++++ TODO | 3 + configure | 123 ++++++++-------- configure.in | 3 + flrnrc.sample | 87 ++++++++++++ src/ChangeLog | 2 + src/Makefile.in | 11 +- src/README.dev | 0 src/art_group.c | 31 ++-- src/art_group.h | 13 +- src/compatibility.c | 10 ++ src/compatibility.h | 10 ++ src/flrn.h | 17 +-- src/flrn_color.c | 10 +- src/flrn_color.h | 10 ++ src/flrn_command.c | 10 ++ src/flrn_command.h | 10 ++ src/flrn_comp.c | 15 +- src/flrn_comp.h | 10 ++ src/flrn_config.h | 64 +++++++-- src/flrn_files.c | 15 +- src/flrn_files.h | 10 ++ src/flrn_filter.c | 11 +- src/flrn_filter.h | 10 ++ src/flrn_format.c | 19 ++- src/flrn_format.h | 10 ++ src/flrn_glob.h | 10 +- src/flrn_help.c | 15 +- src/flrn_help.h | 10 ++ src/flrn_inter.c | 15 +- src/flrn_inter.h | 10 ++ src/flrn_lists.c | 10 ++ src/flrn_lists.h | 13 +- src/flrn_macros.h | 10 ++ src/flrn_menus.c | 15 +- src/flrn_menus.h | 10 ++ src/flrn_messages.c | 10 ++ src/flrn_messages.h | 10 ++ src/flrn_pager.c | 14 +- src/flrn_pager.h | 10 +- src/flrn_regexp.c | 10 ++ src/flrn_regexp.h | 10 ++ src/flrn_shell.c | 15 +- src/flrn_shell.h | 10 ++ src/flrn_slang.c | 14 +- src/flrn_slang.h | 9 ++ src/flrn_string.c | 16 ++- src/flrn_string.h | 13 +- src/flrn_tags.c | 15 +- src/flrn_tags.h | 10 ++ src/flrn_tcp.c | 14 +- src/flrn_tcp.h | 10 ++ src/flrn_xover.c | 15 +- src/flrn_xover.h | 9 ++ src/getdate.h | 10 ++ src/group.c | 15 +- src/group.h | 13 +- src/main.c | 15 +- src/options.c | 15 +- src/options.h | 15 +- src/post.c | 15 +- src/post.h | 13 +- src/rfc2047.c | 5 +- src/rfc2047.h | 10 ++ src/site_config.h | 19 ++- src/tty_display.c | 13 +- src/tty_display.h | 10 ++ src/tty_keyboard.c | 15 +- src/tty_keyboard.h | 10 ++ 73 files changed, 1354 insertions(+), 243 deletions(-) create mode 100644 BUGS create mode 100644 COPYING create mode 100644 INSTALL create mode 100644 INSTALL.site create mode 100644 README create mode 100644 TODO create mode 100644 flrnrc.sample create mode 100644 src/README.dev diff --git a/BUGS b/BUGS new file mode 100644 index 0000000..b78ccd6 --- /dev/null +++ b/BUGS @@ -0,0 +1,10 @@ +Hum... +Comment dire... +Ben... +Si on fait la somme des bugs et des misfeatures... +ça fait beaucoup, vraiment beaucoup.... + +donc on se limitera à un (ou plutôt deux) bug(s) : +_ le man est nul +_ l'aide n'est pas mieux. + diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..dc63aac --- /dev/null +++ b/COPYING @@ -0,0 +1,340 @@ + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 675 Mass Ave, Cambridge, MA 02139, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) 19yy + + 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 Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + 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., 675 Mass Ave, Cambridge, MA 02139, USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19yy name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000..3d579f8 --- /dev/null +++ b/INSTALL @@ -0,0 +1,37 @@ +Installation de flrn +==================== + +pour installer flrn, le plus simple est de taper : +./configure --with-default-domain=DOMAIN +make +make install (avec des droits acceptables, donc souvent en super-utilisateur) + +configure +========= + +configure dipose d'un certain nombre d'options. Entre autres : + +--prefix=DIR : précise où flrn doit être installé + +--with-rx=DIR : demande l'utilisation de la bibliothèque rx et précise ou + trouver cette bibliothèque + +--with-slang=DIR : précise où trouver slang, s'il n'est pas à la place + habituelle + +--with-default-host=DIR : précise le nom de la machine d'où sont censés + provenir les posts (indispensable si gethostname + n'existe pas) +--with-default-domain=DOMAIN : précise le nom de domaine, indispensable si + on ne veut pas ens.fr ;-) + +Il faut d'autre part que configure puisse trouver sendmail, soit dans +le chemin d'accès courant, soit dans /usr/lib ou /usr/sbin. +Faute de quoi flrn sera incapable d'envoyer des mails. + + +Après le configure, vous pouvez regarder les différents fichiers +Makefile, ainsi que src/config.h . +Il est aussi possible de modifier src/site_config.h (et quelques +passages de src/flrn_config.h), voir le fichier INSTALL.site pour plus +de détails. diff --git a/INSTALL.site b/INSTALL.site new file mode 100644 index 0000000..ae56ef6 --- /dev/null +++ b/INSTALL.site @@ -0,0 +1,71 @@ +Configurer flrn pour un site donné +================================== + +0) modifier flrn_config.h (avant la compilation) + ---------------------- + +Le début de flrn_config.h contient quelques définitions que vous pouvez +modifier... à vos risques et périls. + +1) modifier site_config.h (avant la compilation) + ---------------------- + +site_config.h donne la configuration par défaut (qui est modifié par +le .flrnrc de l'utilisateur, ou le flrnrc par défaut de l'installation +si l'utilisateur n'a pas de .flrnrc). + +Comme flrn a été prévu pour un serveur local, certaines valeurs ne +sont pas compatibles avec une installation pour les news extérieures. +On conseille particulièrement de changer : + (cf le manuel pour plus d'explications sur ces variables) + +_ server : mieux vaut mettre "news", ou le nom de votre serveur préféré. + (cette variable est de toute façon écrasée par $NNTPSERVER) +_ header, weak_headers, hidden_headers : on peut faire quelques + modifications, mais cela ne permet hélas pas d'avoir ce que l'on + peut obtenir avec un vrai flrnrc (faute de pouvoir introduire des + headers non "connus" de flrn). +_ edit_all_headers : dans une configuration pour des news extérieures, il + FAUT mettre 1. +_ include_in_edit : mis à 0 pour éviter la présence de quote dans les + réponses (les messages n'expirant pas), il faut mettre 1 pour des + news extérieures, surtout si auto_edit est égal à 1. +_ threaded_space : il faut mettre 1. Ce sera 1 dans les futures versions. +_ auto_edit : il est préférable de mettre 1, sauf si votre éditeur favori + est (x)emacs et qu'il prend trop de temps à se lancer. :-) +_ auto_kill : cette option spéciale est mieux à 0 +_ use_regexp, use_menus, with_cousins : mieux vaut mettre 1 +_ default_subscribe : 0 est peut-être préférable +_ alpha_tree (quel nom idiot !) : il faut mettre 1 +_ flags_group : la chaine "M DDm*dd" est probablement meilleure +_ hist_file_name : mettre ".flrnhist" n'est pas plus mal +_ warn_if_new : mettre 1 n'est pas plus mal non plus +_ default_flnewsfile : mettre "flnewsrc" n'est pas plus mal +_ help_line : vu la gueule des lignes d'aide, on peut mettre 0 sans risque + + +Comme ces modifications sont un peu lourde, on peut tout simplement ne +rien faire, et installer un flrnrc par défaut qui sera chargé si +l'utilisateur n'en a pas dans son répertoire. Mais un utilisateur +qui désirerait personnaliser sa configuration devra alors inclure la +configuration par défaut par un "include ..." au début de son .flrnrc +(ou alors il peut reprendre le flrnrc par défaut et le modifier). + +2) faire un flrnrc par défaut (après l'installation) + -------------------------- + +Un exemple de flrnrc est le flrnrc.sample donné dans ce répertoire. +On pourra avantageusement le copier dans $datadir/flrn pour +avoir une configuration par défaut. + +3) faire un flnewsrc par défaut (après l'installation) + ---------------------------- + +On pourra rajouter un flnewsrc dans $datadir/flrn qui servira si +lorsque l'utilisateur lance flrn pour la première fois (si la +configuration est bien prévue pour). Ce flnewsrc a le format d'un +.newsrc normal. +On pourra par exemple y mettre la simple ligne : +fr.bienvenue: + +afin que l'utilisateur soit par défaut abonné à un groupe utile. diff --git a/README b/README new file mode 100644 index 0000000..b13d0ce --- /dev/null +++ b/README @@ -0,0 +1,100 @@ +README pour flrn en français + +(désolé pour le pompeux du discours, on essaie de faire un truc sérieux) + +Description +=========== + +flrn est un lecteur de news en français développé à l'École Normale Supérieure. +(français = franglais... les commandes par exemple ont des noms anglais) + +flrn dispose d'un certains nombre de features : affichage de résumés +des messages (comme slrn), configurable sans trop de difficultés, historique +des messages lus, passage facile d'un groupe à l'autre d'un message +crossposté... +Principal défaut (à mon avis) : flrn ne décode pas les messages (sauf +éventuellement les headers en QP ou en base64), et ne gère évidemment pas +les messages en multi-part. + +Les auteurs de flrn sont Joël-Yann Fourré et Damien Massé (auteur du présent +fichier). + +Les discussions autour de flrn se font pour des raisons historique sur +un groupe de discussion interne à l'ENS, mais on peut envoyer les +suggestions et bug-reports à damien.masse@ens.fr où ils seront bien +accueillis (en principe). Il est éventuellement envisageable de créer +une mailing-liste si le programme se répand vraiment (heureusement, +c'est pas encore fait). + +flrn a été essentiellement testé sur des serveurs de news innd (de +différentes versions). Quelques essais ont été effectués avec leafnode +(qui dispose d'un nombre moindre de commandes). + +Histoire +======== + +Le projet d'écrire flrn date de novembre 1997. L'objectif était d'obtenir +un lecteur de news qui simule l'interface d'un vieux programme de news +interne (non client-serveur) dont le nom était forum, afin de passer +à un système client-serveur où le serveur serait un truc standard (innd). +D'où flrn = forum-like rn. +Par la suite les auteurs ont tenté de rendre ce programme utilisable pour +autre chose que la lecture de groupes de discussions locaux. + +Systèmes supportés +================== + +flrn est censé tourner sur n'importe quel Unix un peu récent, pour +peu que slang soit installé. +Il a été essentiellement testé sous Linux (PC et alpha) et SunOS 5, +mais de vieilles versions ont été un peu testées sous SunOS 4 (avec la +bibliothèque rx), NextStep (avec gcc -posix), HPUX et OpenBSD. +Il est conseillé d'utiliser gcc, mais cc semble le plus souvent marcher. + +La bibliothèque slang (ftp://space.mit.edu/pub/davis/slang) est indispensable +pour flrn. flrn a été testé avec des versions entre 0.99 et 1.2 (pas la +1.3, il faudrait que je vérifie si rien n'a changé). flrn n'utilise que +la partie gestion de terminal de la bibliothèque (comme mutt). Il est +envisagé (mais non décidé) d'utiliser à terme le langage associé. + +La bibliothèque rx (ftp://prep.ai.mit.edu/pub/gnu/rx) est nécessaire si +la bibliothèque C n'inclut pas la gestion des expression régulières. + +L'installation du programme urlview +(ftp://ftp.lip6.fr/pub/unix/mail/mutt/contrib/) +est conseillée. Ça s'adapte très bien au programme. + + +Installation +============ + +cf INSTALL pour l'installation "de base" +Il est conseillé de regarder aussi INSTALL.site pour une +configuration spécifique à un site donné. + +Documentation +============= + +flrn dispose d'une page de man qui décrit les options de la ligne +de commande et les options du fichier de configuration. +L'aide en ligne décrit le fichier de configuration, les commandes +de flrn et le kill-file de flrn. +L'ensemble des fichiers de l'aide en ligne est dans le répertoire help. + +Bug-reports, etc... +=================== + +Envoyer à damien.masse@ens.fr, ou a flrn@quatramaran.ens.fr (ceci si +on crée une mailing-list un jour, pour l'instant ça finit dans ma +mailbox ;-) ) +cf src/README.dev pour avoir des renseignements sur l'organisation (très +désorganisée) du code. + + +Copie +===== + +flrn est sous GPL +Une petite partie du code a été reprise à mutt (ancien parsing de la +date, codage et décodage des headers en QP pour l'iso-8859-1) +cf COPYING pour plus de détails. diff --git a/TODO b/TODO new file mode 100644 index 0000000..f131051 --- /dev/null +++ b/TODO @@ -0,0 +1,3 @@ +_ crosspost sans fu2 +_ inclusion d'un .signature +[mettez ici votre feature préférée] diff --git a/configure b/configure index 9315826..2a54ce2 100755 --- a/configure +++ b/configure @@ -948,6 +948,9 @@ cat >> confdefs.h <&2 +fi # Check whether --with-default-host or --without-default-host was given. if test "${with_default_host+set}" = set; then @@ -988,7 +991,7 @@ fi CFLAGS="-I. $CFLAGS" echo $ac_n "checking for socket in -lsocket""... $ac_c" 1>&6 -echo "configure:992: checking for socket in -lsocket" >&5 +echo "configure:995: checking for socket in -lsocket" >&5 ac_lib_var=`echo socket'_'socket | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -996,7 +999,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsocket $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1014: \"$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 @@ -1035,7 +1038,7 @@ else fi echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 -echo "configure:1039: checking for gethostbyname in -lnsl" >&5 +echo "configure:1042: 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 @@ -1043,7 +1046,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lnsl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1061: \"$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 @@ -1088,7 +1091,7 @@ if test "`(uname) 2>/dev/null`" = SunOS && fi echo $ac_n "checking for 8 bit nroff""... $ac_c" 1>&6 -echo "configure:1092: checking for 8 bit nroff" >&5 +echo "configure:1095: checking for 8 bit nroff" >&5 if test X`echo 'é'| nroff | head -1` = 'Xé'; then MANISO=.iso echo "$ac_t""yes" 1>&6 @@ -1106,7 +1109,7 @@ flrn_cv_slang=no if test "${with_slang+set}" = set; then withval="$with_slang" echo $ac_n "checking for S-Lang""... $ac_c" 1>&6 -echo "configure:1110: checking for S-Lang" >&5 +echo "configure:1113: checking for S-Lang" >&5 if test $withval = yes; then if test -d $srcdir/../slang; then flrn_cv_slang=$srcdir/../slang/src @@ -1149,16 +1152,16 @@ fi echo $ac_n "checking if I can compile a test SLang program""... $ac_c" 1>&6 -echo "configure:1153: checking if I can compile a test SLang program" >&5 +echo "configure:1156: checking if I can compile a test SLang program" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1165: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6 else @@ -1173,7 +1176,7 @@ rm -f conftest* flrn_cv_rx=no echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:1177: checking how to run the C preprocessor" >&5 +echo "configure:1180: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -1188,13 +1191,13 @@ else # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1198: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1201: \"$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 : @@ -1205,13 +1208,13 @@ else rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1215: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1218: \"$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 : @@ -1222,13 +1225,13 @@ else rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1232: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1235: \"$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 : @@ -1270,12 +1273,12 @@ else for ac_func in regcomp do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:1274: checking for $ac_func" >&5 +echo "configure:1277: 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 <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1305: \"$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 @@ -1325,17 +1328,17 @@ done ac_safe=`echo "regdef.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for regdef.h""... $ac_c" 1>&6 -echo "configure:1329: checking for regdef.h" >&5 +echo "configure:1332: checking for regdef.h" >&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 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1339: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1342: \"$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* @@ -1370,7 +1373,7 @@ if test X$flrn_cv_rx != Xno; then fi echo checking for librx... $flrn_cv_rx echo $ac_n "checking for regcomp in -lrx""... $ac_c" 1>&6 -echo "configure:1374: checking for regcomp in -lrx" >&5 +echo "configure:1377: checking for regcomp in -lrx" >&5 ac_lib_var=`echo rx'_'regcomp | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1378,7 +1381,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lrx $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1396: \"$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 @@ -1421,12 +1424,12 @@ fi fi echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:1425: checking for ANSI C header files" >&5 +echo "configure:1428: 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 < #include @@ -1434,7 +1437,7 @@ else #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1438: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1441: \"$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* @@ -1451,7 +1454,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 @@ -1469,7 +1472,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 @@ -1490,7 +1493,7 @@ if test "$cross_compiling" = yes; then : else cat > conftest.$ac_ext < #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') @@ -1501,7 +1504,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } EOF -if { (eval echo configure:1505: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:1508: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else @@ -1528,17 +1531,17 @@ for ac_hdr in sys/time.h unistd.h ctype.h errno.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:1532: checking for $ac_hdr" >&5 +echo "configure:1535: 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 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1542: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1545: \"$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* @@ -1566,12 +1569,12 @@ done echo $ac_n "checking for working const""... $ac_c" 1>&6 -echo "configure:1570: checking for working const" >&5 +echo "configure:1573: 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 <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1627: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else @@ -1641,12 +1644,12 @@ EOF fi echo $ac_n "checking for size_t""... $ac_c" 1>&6 -echo "configure:1645: checking for size_t" >&5 +echo "configure:1648: 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 < #if STDC_HEADERS @@ -1674,12 +1677,12 @@ EOF fi echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 -echo "configure:1678: checking whether time.h and sys/time.h may both be included" >&5 +echo "configure:1681: 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 < #include @@ -1688,7 +1691,7 @@ int main() { struct tm *tp; ; return 0; } EOF -if { (eval echo configure:1692: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1695: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_time=yes else @@ -1709,12 +1712,12 @@ EOF fi echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6 -echo "configure:1713: checking whether struct tm is in sys/time.h or time.h" >&5 +echo "configure:1716: 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 < #include @@ -1722,7 +1725,7 @@ int main() { struct tm *tp; tp->tm_sec; ; return 0; } EOF -if { (eval echo configure:1726: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1729: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_tm=time.h else @@ -1744,12 +1747,12 @@ fi echo $ac_n "checking for strftime""... $ac_c" 1>&6 -echo "configure:1748: checking for strftime" >&5 +echo "configure:1751: checking for strftime" >&5 if eval "test \"`echo '$''{'ac_cv_func_strftime'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1779: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_strftime=yes" else @@ -1794,7 +1797,7 @@ else echo "$ac_t""no" 1>&6 # strftime is in -lintl on SCO UNIX. echo $ac_n "checking for strftime in -lintl""... $ac_c" 1>&6 -echo "configure:1798: checking for strftime in -lintl" >&5 +echo "configure:1801: checking for strftime in -lintl" >&5 ac_lib_var=`echo intl'_'strftime | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1802,7 +1805,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lintl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1820: \"$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 @@ -1842,12 +1845,12 @@ fi for ac_func in gethostname select socket strdup strspn strstr strtol do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:1846: checking for $ac_func" >&5 +echo "configure:1849: 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 <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1877: \"$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 @@ -1897,12 +1900,12 @@ done for ac_func in inet_aton snprintf isdigit isblank do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:1901: checking for $ac_func" >&5 +echo "configure:1904: 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 <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1932: \"$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 diff --git a/configure.in b/configure.in index ebe4e6c..d236d2c 100644 --- a/configure.in +++ b/configure.in @@ -15,6 +15,9 @@ AC_CHECK_PROGS(MAKEDEPEND,gccmakedep makedepend, echo) AC_PATH_PROG(SENDMAIL, sendmail, no, `echo $PATH`:/usr/sbin:/usr/lib) AC_DEFINE_UNQUOTED(SENDMAIL, "$ac_cv_path_SENDMAIL") +if test "$ac_cv_path_SENDMAIL" = no; then + AC_MSG_WARN(no sendmail found. \\mail-answer will not work !) +fi AC_ARG_WITH(default-host, [ --with-default-host[=MACHINE] default host for adresses], AC_DEFINE_UNQUOTED(DEFAULT_HOST, "$withval") diff --git a/flrnrc.sample b/flrnrc.sample new file mode 100644 index 0000000..097baf6 --- /dev/null +++ b/flrnrc.sample @@ -0,0 +1,87 @@ +# Exemple de flrnrc standard pour lire les news de Usenet. + +# Nom du serveur +set server news + +# Nom de post +# set post_name "Moi" + +########### +# entêtes # +########### +# cette ligne donne l'ordre. others signifie "tout autre entête dans +# l'ordre d'apparition" +header list Newsgroups References From Reply-To others Followup-To Subject + +# cette ligne donne les entêtes à ne jamais afficher (malgré le others dans +# la première ligne). L'ordre est indifférent. +header hide Message-Id Path NNTP-Posting-Host X-Trace X-Complaints-To NNTP-Posting-Date X-Face X-Server-Date X-Original-Received + +# cette ligne donne les entêtes qui ne doivent plus être rappelés lorsque +# le message fait plusieurs pages (les autres restant affichés). L'ordre +# est indifférent +header weak others + +# On marque d'un '-' les messages déjà lus +my_flag - read + + +# mettre cette ligne si vous voulez que les entêtes défilent avec le +# reste du message +# set headers_scroll + +# lignes blanches sous la barre de statut +set noskip_line +# on ne veut pas utiliser l'éditeur intégré dans flrn +set auto_edit +# on veut pouvoir éditer toutes les entêtes +set edit_all_headers +# on veut inclure le message dans les réponses (utile si auto_edit est défini) +set include_in_edit + +# \next-unread est "threadé" +set threaded_space +# on utilise les expressions régulières +set use_regexp +# on utilise les menus +set use_menus +# on peut se déplacer loin dans l'arbre de la discussion +set with_cousins +# on ne s'abonne à rien automatiquement +set auto_subscribe "" +set auto_ignore "^control|^[^.]+$" +set subscribe_first +set nodefault_subscribe + +# on veut voir l'arbre de la discussion +set alpha_tree + +# option pour le kill-file (voir l'aide pour plus de détails) +set noauto_kill + +# chemin pour les sauvegardes +set savepath News + +# avec noauto_kill, on préfère ces drapeaux +set flags_groups "M DDm*dd" + +# sauvegarde de l'historique +set hist_file_name ".flrnhist" + +# on veut être averti des nouveaux groupes +set warn_if_new + +# on veut avoir un .flnewsrc par défaut +set default_flnewsrc flnewsrc + +# la ligne d'aide est plutôt limitée. Mieux vaut la supprimer +set nohelp_line +# set help_line_file "help_lines" + +########## +# ces options servent si on utilise une authentification avec le +# serveur (authinfo de innd) +########## +# set auth_user "monlogin" +# set auth_pass "monpassword" +########## diff --git a/src/ChangeLog b/src/ChangeLog index 1fa46e2..f0f67e7 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,7 @@ ChangeLog Flrn +. bugfix pour les serveurs grotesques à la Quisar +. préparation d'un zolie distrib . authentification . un peu de formatage, un peu de blindage . une ligne d'aide. des trucs et des bidules diff --git a/src/Makefile.in b/src/Makefile.in index 74ff9da..624c3be 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -1,10 +1,11 @@ -#------------------------------------------------------------------------------ +# flrn : lecteur de news en mode texte +# Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré # -# Makefile pour flrn -# Une tentative désespérée de faire sérieux en faisant un joli makefile. +# makefile.in : le Makefile de flrn # -# damien@naoned.ens.fr 21/11/97 -#------------------------------------------------------------------------------ +# 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 Free Software Foundation. See the file COPYING for details. # C compiler diff --git a/src/README.dev b/src/README.dev new file mode 100644 index 0000000..e69de29 diff --git a/src/art_group.c b/src/art_group.c index b1c62cf..f8bd572 100644 --- a/src/art_group.c +++ b/src/art_group.c @@ -1,9 +1,13 @@ -/* flrn v 0.1 */ -/* art_group.c 25/11/97 */ -/* */ -/* Gestion des articles au sein d'un groupe. */ -/* */ -/* */ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * art_group.c : gestion des articles d'un groupe + * + * 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 Free Software Foundation. See the file COPYING for details. + */ + #include #include @@ -230,11 +234,22 @@ int cree_liens() { derelie_article(parcours->pere,parcours); /* La ligne suivante peut servir un jour */ - /* if (Article_courant==parcours) Article_courant=creation; */ + /* helas oui... */ + if (Article_courant==parcours) Article_courant=creation; + /* on doit même tester, pour le Quisar serveur, les non-lus */ + if ((parcours->numero!=-1) && (!(parcours->flag & FLAG_READ))) { + Newsgroup_courant->not_read--; + parcours->thread->non_lu--; + } /* On efface enfin l'article vidé */ if (parcours->prev) parcours->prev->next=parcours->next; - else Article_exte_deb=parcours->next; + else { + /* n'excluons jamais le pire : un doublon dans le xover */ + /* (on a deja vu ca sur le serveur de Quisar) */ + if (parcours==Article_deb) Article_deb=parcours->next; + else Article_exte_deb=parcours->next; + } if (parcours->next) parcours->next->prev=parcours->prev; free_one_article(parcours,1); } diff --git a/src/art_group.h b/src/art_group.h index 151a806..021c9a9 100644 --- a/src/art_group.h +++ b/src/art_group.h @@ -1,7 +1,12 @@ -/* flrn v 0.1 */ -/* art_group.h 25/11/97 */ -/* */ -/* Headers pour la gestion d'une liste d'article au sein du newsgroup. */ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * art_group.h + * + * 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 Free Software Foundation. See the file COPYING for details. + */ #ifndef FLRN_ART_GROUP_H #define FLRN_ART_GROUP_H diff --git a/src/compatibility.c b/src/compatibility.c index e5ed12a..62dfc8e 100644 --- a/src/compatibility.c +++ b/src/compatibility.c @@ -1,3 +1,13 @@ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * compatibility.c : fonctions de compatibilité + * + * 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 Free Software Foundation. See the file COPYING for details. + */ + #include #include #include diff --git a/src/compatibility.h b/src/compatibility.h index 56af28a..f5432cc 100644 --- a/src/compatibility.h +++ b/src/compatibility.h @@ -1,3 +1,13 @@ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * compatibility.h + * + * 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 Free Software Foundation. See the file COPYING for details. + */ + #ifndef FLRN_COMPATIBILITY_H #define FLRN_COMPATIBILITY_H diff --git a/src/flrn.h b/src/flrn.h index 9b2a40d..bcf45d4 100644 --- a/src/flrn.h +++ b/src/flrn.h @@ -1,7 +1,12 @@ -/* flrn v 0.3 */ -/* flrn.h 22/06/98 */ -/* */ -/* Inclusion des fichiers de headers principaux... */ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * flrn.h + * + * 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 Free Software Foundation. See the file COPYING for details. + */ #ifndef FLRN_FLRN_H @@ -11,9 +16,5 @@ #include "flrn_config.h" /* Defines autres */ #include "compatibility.h" /* La compatibilité */ #include "flrn_glob.h" /* Variables externes */ -/* Les fonctions externes sont éclatées */ -#if 0 -#include "extern.h" /* Fonctions externes */ -#endif #endif diff --git a/src/flrn_color.c b/src/flrn_color.c index 10f5000..ce5d86a 100644 --- a/src/flrn_color.c +++ b/src/flrn_color.c @@ -1,4 +1,12 @@ -/* flrn, essai de syntax highlighting pas trop bugué */ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * flrn_color.c : gestion des couleurs (syntax-highlight) + * + * 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 Free Software Foundation. See the file COPYING for details. + */ #include #include diff --git a/src/flrn_color.h b/src/flrn_color.h index 86d596b..a45c298 100644 --- a/src/flrn_color.h +++ b/src/flrn_color.h @@ -1,3 +1,13 @@ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * flrn_color.h + * + * 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 Free Software Foundation. See the file COPYING for details. + */ + #ifndef FLRN_COLOR_H #define FLRN_COLOR_H diff --git a/src/flrn_command.c b/src/flrn_command.c index d295eb7..897817a 100644 --- a/src/flrn_command.c +++ b/src/flrn_command.c @@ -1,3 +1,13 @@ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * flrn_command.c:: entrée des commandes + * + * 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 Free Software Foundation. See the file COPYING for details. + */ + /* * Gestion des bindings de touches * Commun a tous les contextes */ diff --git a/src/flrn_command.h b/src/flrn_command.h index 2e319aa..36fd00c 100644 --- a/src/flrn_command.h +++ b/src/flrn_command.h @@ -1,3 +1,13 @@ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * flrn_command.h + * + * 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 Free Software Foundation. See the file COPYING for details. + */ + #ifndef FLRN_COMMAND_H #define FLRN_COMMAND_H diff --git a/src/flrn_comp.c b/src/flrn_comp.c index 748d52f..092d2a4 100644 --- a/src/flrn_comp.c +++ b/src/flrn_comp.c @@ -1,9 +1,12 @@ -/* flrn v 0.4 */ -/* flrn_comp.c 29/02/99 */ -/* */ -/* Complétions dans flrn */ -/* */ -/* */ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * flrn_comp.c : complétion automatique dans flrn + * + * 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 Free Software Foundation. See the file COPYING for details. + */ #include #include "flrn.h" diff --git a/src/flrn_comp.h b/src/flrn_comp.h index ba9bb09..b53956c 100644 --- a/src/flrn_comp.h +++ b/src/flrn_comp.h @@ -1,3 +1,13 @@ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * flrn_comp.h + * + * 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 Free Software Foundation. See the file COPYING for details. + */ + #ifndef FLRN_COMP_H #define FLRN_COMP_H diff --git a/src/flrn_config.h b/src/flrn_config.h index 35b1f66..7d4e0c4 100644 --- a/src/flrn_config.h +++ b/src/flrn_config.h @@ -1,33 +1,69 @@ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * flrn_config.h : quelques define pour le programme + * + * 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 Free Software Foundation. See the file COPYING for details. + */ + #ifndef FLRN_FLRN_CONFIG_H #define FLRN_FLRN_CONFIG_H #include "pathdef.h" -#define MAX_PATH_LEN 1024 -#define DEFAULT_DIR_FILE ".flrn" -/* Répertoire où chercher les fichiers de config */ -#define DEFAULT_CONFIG_FILE ".flrnrc" -#define DEFAULT_CONFIG_SYS_FILE "flrnrc" /* si pas de .flrnrc, on ouvre celui-la */ -#define DEFAULT_FLNEWS_FILE ".flnewsrc" +/* L'utilisateur peut modifier la valeurs qui suivent jusqu'au + "-- ne rien modifier ensuite --" */ + +/* Répertoire où chercher les fichiers de config chez l'utilisateur */ +#define DEFAULT_DIR_FILE ".flrn" + +/* Nom du fichier de config normalement présent chez l'utilisateur */ +#define DEFAULT_CONFIG_FILE ".flrnrc" + +/* Nom du fichier de config par défaut si l'utilisateur n'a pas de .flrnrc : + flrn charge ce fichier dans le répertoire $datadir/flrn du Makefile + (par défaut /usr/local/share/flrn) */ +#define DEFAULT_CONFIG_SYS_FILE "flrnrc" + +/* Nom du fichier qui contient les messages lus par l'utilisateur + (équivalent du .newsrc) */ +#define DEFAULT_FLNEWS_FILE ".flnewsrc" + +/* Nom du fichier temporaire utilisé pour les posts */ #define TMP_POST_FILE ".article" + +/* Nom du fichier temporaire utilisé pour obtenir la sortie standard + d'un programme (lancé via \shin par exemple) */ #define TMP_PIPE_FILE ".pipe_flrn" - /* en fait fichier temporaire utilisé partout */ + +/* Lieu où sauver un message qui a été refusé par le serveur */ #define TMP_REJECT_POST_FILE "dead.article" -#define DEFAULT_HELP_DIRECTORY PATH_HELP_DIRECTORY /* defined in pathdef.h */ -#define DEFAULT_HELP_FILES "Help_" -#define DEFAULT_NNTP_PORT 119 + +/* Défini à 1 si on veut que flrn vérifie la présence de nouveaux mails */ #define CHECK_MAIL 1 #ifdef CHECK_MAIL -/* peut-être à mettre dans le configure... */ +/* Répertoire où flrn suppose que se trouve la mailbox de l'utilisateur. */ #define DEFAULT_MAIL_PATH "/var/spool/mail" #endif + +/* Options de lancement de sendmail (le lieu où trouver sendmail est + défini via configure dans config.h */ +#define MAILER_CMD SENDMAIL " -U -t" + + +/* -- ne rien modifier ensuite, normalement -- */ + +#define MAX_PATH_LEN 1024 + /* en fait fichier temporaire utilisé partout */ +#define DEFAULT_HELP_DIRECTORY PATH_HELP_DIRECTORY /* defined in pathdef.h */ +#define DEFAULT_HELP_FILES "Help_" +#define DEFAULT_NNTP_PORT 119 #define MAX_BUF_SIZE 8192 /* taille maximum de lecture brute */ #define MAX_READ_SIZE 2048 /* taille maximum de lecture raffinee */ #define MAX_REGEXP_SIZE 1024 /* taille max d'une regexp */ -#define MAILER_CMD SENDMAIL " -U -t" -/* #define DOMAIN "ens.fr" */ -/* #define DEFAULT_HOST "naoned" */ /* maintenant, ça se fait avec configure */ #define MAX_SERVER_LEN 128 #define MAX_NEWSGROUP_LEN 128 diff --git a/src/flrn_files.c b/src/flrn_files.c index 7f3630c..b8de682 100644 --- a/src/flrn_files.c +++ b/src/flrn_files.c @@ -1,9 +1,12 @@ -/* flrn v 0.1 */ -/* flrn_files.c 22/06/98 */ -/* */ -/* Des routines de gestion des fichiers (.flrn(rc?) et .flnewsrc) */ -/* Ce fichier doit se limiter à la gestion de fichiers. */ -/* */ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * flrn_files.c : gestion des fichiers + * + * 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 Free Software Foundation. See the file COPYING for details. + */ #include #include diff --git a/src/flrn_files.h b/src/flrn_files.h index 6993beb..6e39256 100644 --- a/src/flrn_files.h +++ b/src/flrn_files.h @@ -1,3 +1,13 @@ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * flrn_files.h + * + * 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 Free Software Foundation. See the file COPYING for details. + */ + #ifndef FLRN_FLRN_FILES_H #define FLRN_FLRN_FILES_H diff --git a/src/flrn_filter.c b/src/flrn_filter.c index 9c66fd0..0902f05 100644 --- a/src/flrn_filter.c +++ b/src/flrn_filter.c @@ -1,5 +1,12 @@ -/* flrn, gestion des kill files - * Jo. */ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * flrn_filter.c : gestion du kill-file + * + * 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 Free Software Foundation. See the file COPYING for details. + */ #include #include diff --git a/src/flrn_filter.h b/src/flrn_filter.h index 642efa4..794a7af 100644 --- a/src/flrn_filter.h +++ b/src/flrn_filter.h @@ -1,3 +1,13 @@ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * flrn_filter.h + * + * 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 Free Software Foundation. See the file COPYING for details. + */ + /* liste chainée de regexp à matcher sur les headers */ #ifndef FLRN_FILTER_H #define FLRN_FILTER_H diff --git a/src/flrn_format.c b/src/flrn_format.c index 3557b9f..933dda5 100644 --- a/src/flrn_format.c +++ b/src/flrn_format.c @@ -1,9 +1,12 @@ -/* flrn v 0.3 */ -/* flrn_format.c 22/06/98 */ -/* */ -/* Formatage des headers... Sert pour le parsing de la date, les */ -/* attributions, etc etc... */ -/* */ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * flrn_format.c : formatage de lignes, date (vieux code) + * + * 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 Free Software Foundation. See the file COPYING for details. + */ #include #include @@ -20,9 +23,11 @@ #include "getdate.h" +/* On ne parse plus la date ici, on utilise getdate.y (cf GNU date) */ #if 0 /* Parsing de la date */ -/* Pompé sur mutt... */ +/* ce code est tiré de celui de mutt, placé aussi sous GPL */ +/* cf ftp://ftp.lip6.fr/pub/unix/mail/mutt/ */ const char *Months[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "ERR" }; diff --git a/src/flrn_format.h b/src/flrn_format.h index 4bb39b0..8d517fa 100644 --- a/src/flrn_format.h +++ b/src/flrn_format.h @@ -1,3 +1,13 @@ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * flrn_format.h + * + * 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 Free Software Foundation. See the file COPYING for details. + */ + #ifndef FLRN_FLRN_FORMAT_H #define FLRN_FLRN_FORMAT_H diff --git a/src/flrn_glob.h b/src/flrn_glob.h index 2770d82..8d1b0d7 100644 --- a/src/flrn_glob.h +++ b/src/flrn_glob.h @@ -1,4 +1,12 @@ -/* flrn v 0.1 : variables globales */ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * flrn_glob.h + * + * 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 Free Software Foundation. See the file COPYING for details. + */ #ifndef FLRN_FLRN_GLOB_H #define FLRN_FLRN_GLOB_H diff --git a/src/flrn_help.c b/src/flrn_help.c index ad69d12..2f67374 100644 --- a/src/flrn_help.c +++ b/src/flrn_help.c @@ -1,9 +1,12 @@ -/* flrn v 0.1 */ -/* fl_help.c 10/12/97 */ -/* */ -/* Gestion hyper-torchante de l'aide. */ -/* */ -/* */ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * flrn_help.c : aide + * + * 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 Free Software Foundation. See the file COPYING for details. + */ #include #include diff --git a/src/flrn_help.h b/src/flrn_help.h index d051324..5a1c63d 100644 --- a/src/flrn_help.h +++ b/src/flrn_help.h @@ -1,3 +1,13 @@ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * flrn_help.h + * + * 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 Free Software Foundation. See the file COPYING for details. + */ + #ifndef FLRN_FLRN_HELP_H #define FLRN_FLRN_HELP_H diff --git a/src/flrn_inter.c b/src/flrn_inter.c index 273e2be..3fb0179 100644 --- a/src/flrn_inter.c +++ b/src/flrn_inter.c @@ -1,9 +1,12 @@ -/* flrn v 0.1 */ -/* flrn_inter.c 27/11/97 */ -/* */ -/* La boucle principale de flrn. */ -/* */ -/* */ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * flrn_inter.c : mode commande de flrn, boucle principale + * + * 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 Free Software Foundation. See the file COPYING for details. + */ #define IN_FLRN_INTER_C #include diff --git a/src/flrn_inter.h b/src/flrn_inter.h index c234198..a076baa 100644 --- a/src/flrn_inter.h +++ b/src/flrn_inter.h @@ -1,3 +1,13 @@ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * flrn_inter.h + * + * 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 Free Software Foundation. See the file COPYING for details. + */ + #ifndef FLRN_INTER_H #define FLRN_INTER_H diff --git a/src/flrn_lists.c b/src/flrn_lists.c index dfb6d31..d89d20c 100644 --- a/src/flrn_lists.c +++ b/src/flrn_lists.c @@ -1,3 +1,13 @@ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * flrn_lists.c : gestion de listes de chaines + * + * 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 Free Software Foundation. See the file COPYING for details. + */ + /* gestion de listes de chaines pour flrn */ #include diff --git a/src/flrn_lists.h b/src/flrn_lists.h index a1211a5..a61c101 100644 --- a/src/flrn_lists.h +++ b/src/flrn_lists.h @@ -1,7 +1,12 @@ -/* flrn v 0.1 */ -/* flrn_liste.h 07/98 */ -/* */ -/* Headers pour flrn_liste.c */ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * flrn_liste.h + * + * 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 Free Software Foundation. See the file COPYING for details. + */ #ifndef FLRN_FLRN_LISTE_H #define FLRN_FLRN_LISTE_H diff --git a/src/flrn_macros.h b/src/flrn_macros.h index f57f28b..21b4201 100644 --- a/src/flrn_macros.h +++ b/src/flrn_macros.h @@ -1,3 +1,13 @@ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * flrn_macros.h + * + * 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 Free Software Foundation. See the file COPYING for details. + */ + #ifndef FLRN_MACROS_H #define FLRN_MACROS_H diff --git a/src/flrn_menus.c b/src/flrn_menus.c index 422aeae..e6f8563 100644 --- a/src/flrn_menus.c +++ b/src/flrn_menus.c @@ -1,9 +1,12 @@ -/* flrn v 0.1 */ -/* flrn_menus.c 15/05/98 */ -/* */ -/* Routines de manipulation de menus pour une interface méga-torche. */ -/* C'est très proche des librairies I/O, mais on va essayer de faire */ -/* un truc indépendant desdites librairies. */ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * flrn_menus.c : gestion des menus + * + * 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 Free Software Foundation. See the file COPYING for details. + */ #define IN_FLRN_MENUS_C diff --git a/src/flrn_menus.h b/src/flrn_menus.h index f550fee..43d5759 100644 --- a/src/flrn_menus.h +++ b/src/flrn_menus.h @@ -1,3 +1,13 @@ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * flrn_menus.h + * + * 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 Free Software Foundation. See the file COPYING for details. + */ + #ifndef FLRN_MENUS_H #define FLRN_MENUS_H diff --git a/src/flrn_messages.c b/src/flrn_messages.c index 041c47f..3f15fca 100644 --- a/src/flrn_messages.c +++ b/src/flrn_messages.c @@ -1,3 +1,13 @@ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * flrn_messages.c : messages d'erreur + * + * 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 Free Software Foundation. See the file COPYING for details. + */ + /* FLRN : les messages */ #include "flrn_messages.h" diff --git a/src/flrn_messages.h b/src/flrn_messages.h index 576e7f5..45bc0e3 100644 --- a/src/flrn_messages.h +++ b/src/flrn_messages.h @@ -1,3 +1,13 @@ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * flrn_messages.h + * + * 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 Free Software Foundation. See the file COPYING for details. + */ + #ifndef FLRN_FLRN_MESSAGES_H #define FLRN_FLRN_MESSAGES_H diff --git a/src/flrn_pager.c b/src/flrn_pager.c index 6a45e01..7c07d70 100644 --- a/src/flrn_pager.c +++ b/src/flrn_pager.c @@ -1,8 +1,12 @@ -/* flrn v 0.3 */ -/* flrn_pager.c 22/06/98 */ -/* */ -/* Un VRAI pager pour flrn, un jour... */ -/* */ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * flrn_pager.c : pager pour flrn + * + * 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 Free Software Foundation. See the file COPYING for details. + */ #include #include diff --git a/src/flrn_pager.h b/src/flrn_pager.h index 759b929..a5bf603 100644 --- a/src/flrn_pager.h +++ b/src/flrn_pager.h @@ -1,4 +1,12 @@ -/* flrn_pager.h */ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * flrn_pager.h + * + * 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 Free Software Foundation. See the file COPYING for details. + */ #ifndef FLRN_FLRN_PAGER_H #define FLRN_FLRN_PAGER_H diff --git a/src/flrn_regexp.c b/src/flrn_regexp.c index 4635876..89fc2de 100644 --- a/src/flrn_regexp.c +++ b/src/flrn_regexp.c @@ -1,3 +1,13 @@ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * flrn_regexp.c : regexps pour flrn + * + * 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 Free Software Foundation. See the file COPYING for details. + */ + /* Traitement de regexp pour flrn * en fait, qqes fonctions qui enrichissent les regexp POSIX */ diff --git a/src/flrn_regexp.h b/src/flrn_regexp.h index aaf4ca4..06a9786 100644 --- a/src/flrn_regexp.h +++ b/src/flrn_regexp.h @@ -1,3 +1,13 @@ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * flrn_regexp.h + * + * 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 Free Software Foundation. See the file COPYING for details. + */ + #ifndef FLRN_FLRN_REGEXP_H #define FLRN_FLRN_REGEXP_H diff --git a/src/flrn_shell.c b/src/flrn_shell.c index e0abbc0..1cab460 100644 --- a/src/flrn_shell.c +++ b/src/flrn_shell.c @@ -1,9 +1,12 @@ -/* flrn v 0.3 */ -/* flrn_shell.c 22/06/98 */ -/* */ -/* Gestion du process : fork, system, et execve sont dans ce */ -/* fichier... */ -/* */ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * flrn_shell.c : fork, system, execve, etc... + * + * 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 Free Software Foundation. See the file COPYING for details. + */ #include #include diff --git a/src/flrn_shell.h b/src/flrn_shell.h index 60cde67..67e5ec4 100644 --- a/src/flrn_shell.h +++ b/src/flrn_shell.h @@ -1,3 +1,13 @@ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * flrn_shell.h + * + * 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 Free Software Foundation. See the file COPYING for details. + */ + #ifndef FLRN_FLRN_SHELL_H #define FLRN_FLRN_SHELL_H diff --git a/src/flrn_slang.c b/src/flrn_slang.c index c1d387a..61a11c0 100644 --- a/src/flrn_slang.c +++ b/src/flrn_slang.c @@ -1,7 +1,13 @@ -/* flrn v 3.0 */ -/* */ -/* flrn_slang.c */ -/* */ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * flrn_slang.c : liens avec les fonction slang + * + * 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 Free Software Foundation. See the file COPYING for details. + */ + /* Liens avec les fonctions slang */ /* Ce fichier ne devrait pas être indispensable... si on passe à ncurses */ diff --git a/src/flrn_slang.h b/src/flrn_slang.h index fb1ae48..31f2f35 100644 --- a/src/flrn_slang.h +++ b/src/flrn_slang.h @@ -1,3 +1,12 @@ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * flrn_slang.h + * + * 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 Free Software Foundation. See the file COPYING for details. + */ #ifndef FLRN_SLANG_H diff --git a/src/flrn_string.c b/src/flrn_string.c index b7e5984..04c61e6 100644 --- a/src/flrn_string.c +++ b/src/flrn_string.c @@ -1,10 +1,12 @@ -/* flrn v 0.1 */ -/* flrn_string.c 03/12/97 */ -/* */ -/* Gestion des listes de chaines... */ -/* et de scrollings. */ -/* */ - +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * flrn_string.c : gestion de chaines de taille importante (pour le post) + * + * 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 Free Software Foundation. See the file COPYING for details. + */ #include diff --git a/src/flrn_string.h b/src/flrn_string.h index 8104dba..08b3832 100644 --- a/src/flrn_string.h +++ b/src/flrn_string.h @@ -1,7 +1,12 @@ -/* flrn v 0.1 */ -/* flrn_string.h 03/12/97 */ -/* */ -/* Headers pour flrn_string.c */ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * flrn_string.h + * + * 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 Free Software Foundation. See the file COPYING for details. + */ #ifndef FLRN_FLRN_STRING_H #define FLRN_FLRN_STRING_H diff --git a/src/flrn_tags.c b/src/flrn_tags.c index 76062f2..3b1ee59 100644 --- a/src/flrn_tags.c +++ b/src/flrn_tags.c @@ -1,9 +1,12 @@ -/* flrn v 0.3 */ -/* flrn_tags.c 08/11/98 */ -/* */ -/* Gestion des tags et de l'historique. */ -/* */ -/* */ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * flrn_tags.c : tags et historique + * + * 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 Free Software Foundation. See the file COPYING for details. + */ #include diff --git a/src/flrn_tags.h b/src/flrn_tags.h index ce72450..dd0fe54 100644 --- a/src/flrn_tags.h +++ b/src/flrn_tags.h @@ -1,3 +1,13 @@ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * flrn_tags.h + * + * 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 Free Software Foundation. See the file COPYING for details. + */ + #ifndef FLRN_TAGS_H #define FLRN_TAGS_H diff --git a/src/flrn_tcp.c b/src/flrn_tcp.c index 99bf3ba..d74c3c5 100644 --- a/src/flrn_tcp.c +++ b/src/flrn_tcp.c @@ -1,8 +1,12 @@ -/* flrn v 0.3 */ -/* flrn_tcp.c 22/06/98 */ -/* */ -/* Communication avec le serveur... Essentiellement tout ce qui se */ -/* rapporte a la gestion d'une socket... */ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * flrn_tcp.c : communications avec le serveur + * + * 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 Free Software Foundation. See the file COPYING for details. + */ #include /* a voir */ diff --git a/src/flrn_tcp.h b/src/flrn_tcp.h index 288f391..33efad4 100644 --- a/src/flrn_tcp.h +++ b/src/flrn_tcp.h @@ -1,3 +1,13 @@ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * flrn_tcp.h + * + * 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 Free Software Foundation. See the file COPYING for details. + */ + #ifndef FLRN_FLRN_TCP_H #define FLRN_FLRN_TCP_H diff --git a/src/flrn_xover.c b/src/flrn_xover.c index 34d939f..bd25a14 100644 --- a/src/flrn_xover.c +++ b/src/flrn_xover.c @@ -1,9 +1,12 @@ -/* flrn v 0.1 */ -/* flrn_xover.c 02/02/98 */ -/* */ -/* Gestion de la commade XOVER */ -/* Ceci est destiné à devenir le standard pour flrn. */ -/* */ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * flrn_xover.c : obtention des Mesages-ID, References et autres + * + * 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 Free Software Foundation. See the file COPYING for details. + */ #include #include diff --git a/src/flrn_xover.h b/src/flrn_xover.h index 696fba8..99aad69 100644 --- a/src/flrn_xover.h +++ b/src/flrn_xover.h @@ -1,3 +1,12 @@ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * flrn_xover.h + * + * 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 Free Software Foundation. See the file COPYING for details. + */ #ifndef FLRN_FLRN_XOVER_H #define FLRN_FLRN_XOVER_H diff --git a/src/getdate.h b/src/getdate.h index 85f789a..8cced71 100644 --- a/src/getdate.h +++ b/src/getdate.h @@ -1,3 +1,13 @@ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * getdate.h + * + * 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 Free Software Foundation. See the file COPYING for details. + */ + /* getdate.h */ #ifdef TIME_WITH_SYS_TIME diff --git a/src/group.c b/src/group.c index 86d0374..b66c5ef 100644 --- a/src/group.c +++ b/src/group.c @@ -1,9 +1,12 @@ -/* flrn v 0.1 */ -/* group.c 24/11/97 */ -/* */ -/* Gestion des groupes... */ -/* */ -/* */ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * group.c : gestion des groupes + * + * 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 Free Software Foundation. See the file COPYING for details. + */ #include #include diff --git a/src/group.h b/src/group.h index 59f43dc..dd757b1 100644 --- a/src/group.h +++ b/src/group.h @@ -1,7 +1,12 @@ -/* flrn v 0.1 */ -/* group.h 24/11/97 */ -/* */ -/* Headers pour la gestion des newsgroups. */ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * group.h + * + * 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 Free Software Foundation. See the file COPYING for details. + */ #ifndef FLRN_GROUP_H #define FLRN_GROUP_H diff --git a/src/main.c b/src/main.c index b8f42a4..cdbf564 100644 --- a/src/main.c +++ b/src/main.c @@ -1,9 +1,12 @@ -/* flrn v 0.1 */ -/* main.c 22/11/97 */ -/* */ -/* Programme principal de flrn. Pour l'intant, ne fait quasiment */ -/* rien (normal, ce n'est pas prevu pour faire quelque chose). */ -/* */ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * main.c : parsing de la ligne de commande + * + * 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 Free Software Foundation. See the file COPYING for details. + */ #include #include diff --git a/src/options.c b/src/options.c index 8d88575..273ca75 100644 --- a/src/options.c +++ b/src/options.c @@ -1,9 +1,12 @@ -/* flrn v 0.1 */ -/* options.c 22/11/97 */ -/* */ -/* Gestion des options... */ -/* */ -/* */ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * options.c : gestion des options + * + * 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 Free Software Foundation. See the file COPYING for details. + */ #include #include diff --git a/src/options.h b/src/options.h index 77d7580..5bb1ea0 100644 --- a/src/options.h +++ b/src/options.h @@ -1,9 +1,12 @@ -/* flrn v 0.1 */ -/* options.h 22/11/97 */ -/* */ -/* Fichier de headers pour options.c : contient la syntaxe des options */ -/* de flrn. */ -/* */ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * options.h + * + * 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 Free Software Foundation. See the file COPYING for details. + */ #ifndef FLRN_OPTIONS_H #define FLRN_OPTIONS_H diff --git a/src/post.c b/src/post.c index 22eb484..296fe24 100644 --- a/src/post.c +++ b/src/post.c @@ -1,9 +1,12 @@ -/* flrn v 0.4 */ -/* post.c 19/03/99 */ -/* */ -/* Gestion des posts... */ -/* Ce fichier ne fait pas appel à slang... */ -/* */ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * post.c : pour les posts et l'éditeur intégré + * + * 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 Free Software Foundation. See the file COPYING for details. + */ #include #include diff --git a/src/post.h b/src/post.h index 793c6ec..d1be882 100644 --- a/src/post.h +++ b/src/post.h @@ -1,7 +1,12 @@ -/* flrn v 0.1 */ -/* post.h 25/11/97 */ -/* */ -/* Headers pour post.c (si !). */ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * post.h + * + * 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 Free Software Foundation. See the file COPYING for details. + */ #ifndef FLRN_POST_H #define FLRN_POST_H diff --git a/src/rfc2047.c b/src/rfc2047.c index 64ad22d..3725d97 100644 --- a/src/rfc2047.c +++ b/src/rfc2047.c @@ -1,6 +1,9 @@ /* + * * Copyright (C) 1996,1997 Michael R. Elkins - * Adapte a flrn... + * ce code est repris à mutt et adapté à flrn + * + * Ce code est soumis à la GNU General Public License */ /* Attention, il faudra definir proprement Charset, et le renommer diff --git a/src/rfc2047.h b/src/rfc2047.h index 94bbe6b..599c53d 100644 --- a/src/rfc2047.h +++ b/src/rfc2047.h @@ -1,3 +1,13 @@ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * rfc2047.h + * + * 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 Free Software Foundation. See the file COPYING for details. + */ + #ifndef FLRN_RFC_2047_H #define FLRN_RFC_2047_H diff --git a/src/site_config.h b/src/site_config.h index 77ac62a..745f07f 100644 --- a/src/site_config.h +++ b/src/site_config.h @@ -1,3 +1,8 @@ +/* flrn : lecteur de news en mode texte + * + * site_config.h : configuration par défaut de flrn + * + */ #ifndef FLRN_SITE_CONFIG_H #define FLRN_SITE_CONFIG_H /* On définit ici la configuration par défaut @@ -7,8 +12,8 @@ #ifdef IN_OPTION_C struct Option_struct Options = { - "news.rezo.ens.fr", /* server */ - DEFAULT_NNTP_PORT, /* port */ + "news.rezo.ens.fr", /* server "news" est conseillé */ + DEFAULT_NNTP_PORT, /* port (DEFAULT_NNTP_PORT = 119) */ NULL, /* flnews_ext */ NULL, /* Post name - doit rester NULL */ {REFERENCES_HEADER,FROM_HEADER,DATE_HEADER,SUBJECT_HEADER,-1}, /* header */ @@ -25,8 +30,8 @@ struct Option_struct Options = { #endif 0, /* forum_mode */ 0, /* space_is_return */ - 0, /* cool_arrows, inversé ! */ - 0, /* edit_all_headers */ + 0, /* cool_arrows, inversé (0 : activé, 1 : désactivé) */ + 0, /* edit_all_headers (1 conseillé) */ 0, /* include_in_edit */ 1, /* date_in_summary */ 0, /* duplicate_subject */ @@ -35,7 +40,7 @@ struct Option_struct Options = { 0, /* threaded_space */ 0, /* auto_edit */ 0, /* use_regexp */ - 0, /* use_menus (très alpha) */ + 0, /* use_menus */ 0, /* with_cousins */ 0, /* quit_if_nothing */ 0, /* parse_from */ @@ -48,7 +53,7 @@ struct Option_struct Options = { 0, /* zap_change_group */ 0, /* scroll_after_end */ "%n, dans son post %i, a écrit :", /* attribution */ - 0, /* alpha_tree, temporaire */ + 0, /* alpha_tree */ ".flrnkill", /* kill_file_name */ 1, /* auto_kill */ "", /* savepath */ @@ -56,7 +61,7 @@ struct Option_struct Options = { " TDD*tdd", /* flags_group */ NULL, /* hist_file_name */ 0, /* warn_if_new */ - NULL, /* get_ext_flnewsfile */ + NULL, /* default_flnewsfile */ 0, /* short_errors */ 1, /* help_line */ NULL, /* help_line_file */ diff --git a/src/tty_display.c b/src/tty_display.c index e26c811..36ee6a2 100644 --- a/src/tty_display.c +++ b/src/tty_display.c @@ -1,6 +1,13 @@ -/* flrn v 0.1 */ -/* tty_display.c 25/11/97 */ -/* */ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * tty_display.c : gestion de l'écran, affichage des articles + * + * 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 Free Software Foundation. See the file COPYING for details. + */ + /* Programme de gestion de l'écran et d'affichage des articles. */ /* S'occupe aussi des entrees des posts. */ /* Faisait aussi la gestion des scrollings. */ diff --git a/src/tty_display.h b/src/tty_display.h index 616fe8b..faf449d 100644 --- a/src/tty_display.h +++ b/src/tty_display.h @@ -1,3 +1,13 @@ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * tty_display.h + * + * 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 Free Software Foundation. See the file COPYING for details. + */ + #ifndef FLRN_TTY_DISPLAY_H #define FLRN_TTY_DISPLAY_H diff --git a/src/tty_keyboard.c b/src/tty_keyboard.c index 33f03ef..50d27f5 100644 --- a/src/tty_keyboard.c +++ b/src/tty_keyboard.c @@ -1,9 +1,12 @@ -/* flrn v 0.1 */ -/* tty_keyboard.c 27/11/97 */ -/* */ -/* Programme de gestion du clavier. */ -/* Essentiellement de betes appels des fontions de la lib. */ -/* */ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * tty_keyboard.c : gestion du clavier + * + * 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 Free Software Foundation. See the file COPYING for details. + */ #include #include diff --git a/src/tty_keyboard.h b/src/tty_keyboard.h index ee6f40c..e1ec8e1 100644 --- a/src/tty_keyboard.h +++ b/src/tty_keyboard.h @@ -1,3 +1,13 @@ +/* flrn : lecteur de news en mode texte + * Copyright (C) 1998-1999 Damien Massé et Joël-Yann Fourré + * + * tty_keyboard.h + * + * 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 Free Software Foundation. See the file COPYING for details. + */ + #ifndef FLRN_TTY_KEYBOARD_H #define FLRN_TTY_KEYBOARD_H