Optional 'format' option added to '-x' flag, help updated
This commit is contained in:
parent
1674800d5f
commit
d84bb63e93
14
ChangeLog
14
ChangeLog
@ -1,3 +1,17 @@
|
||||
2008-08-11 Frederic Culot <frederic@culot.org>
|
||||
|
||||
* src/utils.c (date_sec2ical_*): functions replaced by
|
||||
date_sec2date_fmt()
|
||||
|
||||
* src/args.c (parse_args, usage, help_arg): option added to '-x'
|
||||
flag to choose export format
|
||||
|
||||
* src/help.c (help_screen): help text updated with pcal export
|
||||
|
||||
* src/calcurse.1: manpage updated
|
||||
|
||||
* doc/manual_*.html: manuals updated
|
||||
|
||||
2008-08-10 Frederic Culot <frederic@culot.org>
|
||||
|
||||
* src/calcurse.c: new menu added presenting export format
|
||||
|
@ -1,7 +1,7 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<!--
|
||||
/*
|
||||
* $calcurse: manual_de.html,v 1.18 2008/08/08 14:22:19 culot Exp $
|
||||
* $calcurse: manual_de.html,v 1.19 2008/08/11 18:08:45 culot Exp $
|
||||
*
|
||||
* Calcurse - text-based organizer
|
||||
* Copyright (c) 2004-2008 Frederic Culot
|
||||
@ -112,6 +112,7 @@ well as the way one can contribute to <code>calcurse</code> development.
|
||||
<li><a href="#links_homepage">9.1 <code>calcurse</code> Internetseite</a></li>
|
||||
<li><a href="#links_list">9.2 <code>calcurse</code> Ankündigungsliste</a></li>
|
||||
<li><a href="#links_rss">9.3 <code>calcurse</code> RSS</a></li>
|
||||
<li><a href="#links_others"><div class="todo">9.4 Other links</div></a></li>
|
||||
</ul></li>
|
||||
<li><a href="#thanks">10. Danksagungen</a></li>
|
||||
</ul>
|
||||
@ -332,13 +333,18 @@ Es werden sowohl kurze als auch lange Optionsangaben unterstützt.</p>
|
||||
<dt><code>-v, --version</code></dt>
|
||||
<dd>Gibt die aktuelle Version von Calcurse aus.
|
||||
</dd>
|
||||
<dt><code>-x, --export</code></dt>
|
||||
<dd>Exportiert Benutzerdaten in das iCalendar-Format. Ereignisse,
|
||||
Termine und Aufgaben werden konvertiert und nach stdout
|
||||
ausgegeben.
|
||||
<dt><code>-x[format], --export[=format]</code></dt>
|
||||
<dd><div class="todo">
|
||||
Export user data to specified format. Events, appointments and
|
||||
todos are converted and echoed to stdout.
|
||||
Two possible formats are available: ical and pcal
|
||||
(see section <a href="#links_others">Links</a> below).
|
||||
If the optional argument <code>format</code> is not given,
|
||||
ical format is selected by default.
|
||||
</div>
|
||||
<p class="rq"><span class="valorise">Beachte:</span>
|
||||
leiten Sie die Ausgabe in eine Datei, etwa wie im folgenden Beispiel:
|
||||
<code>$ calcurse --export > my_data.ics</code></p>
|
||||
<code>$ calcurse --export > my_data.dat</code></p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
@ -970,6 +976,16 @@ Um sich in die Liste einzutragen, schicken Sie einfach eine E-Mail mit dem Betre
|
||||
der RSS-Feed aktualisiert und enthält eine Beschreibung der neu
|
||||
hinzugekommenen Programmfunktionen.</p>
|
||||
|
||||
<h2><div class="todo">9.4 Other links</div><a name="links_others"></a></h2>
|
||||
<div class="todo">
|
||||
<p>
|
||||
You may want to look at the ical format specification (rfc2445) at:
|
||||
<pre>http://tools.ietf.org/html/rfc2445</pre>
|
||||
<p>
|
||||
The pcal project page can be found at:
|
||||
<pre>http://pcal.sourceforge.net/</pre>
|
||||
</div>
|
||||
|
||||
<h1>10. Danksagungen<a name="thanks"></a></h1>
|
||||
<p>
|
||||
Folgenden Leuten möchte ich gerne für Ihre Unterstützung danken, ohne
|
||||
@ -1011,7 +1027,7 @@ Benutzer, die mir Ihr Feedback mitgeteilt haben.</p>
|
||||
Copyright (c) 2004-2008 Frédéric Culot<br>
|
||||
German translation by Michael Schulz
|
||||
<code><bloodshower .at. web .dot. de></code>, and Chris.<br>
|
||||
Calcurse version 2.2 - Last change: August 8, 2008<br>
|
||||
Calcurse version 2.2 - Last change: August 11, 2008<br>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<!--
|
||||
/*
|
||||
* $calcurse: manual_en.html,v 1.18 2008/08/08 14:22:19 culot Exp $
|
||||
* $calcurse: manual_en.html,v 1.19 2008/08/11 18:08:45 culot Exp $
|
||||
*
|
||||
* Calcurse - text-based organizer
|
||||
* Copyright (c) 2004-2008 Frederic Culot
|
||||
@ -109,6 +109,7 @@ well as the way one can contribute to <code>calcurse</code> development.
|
||||
<li><a href="#links_homepage">9.1 <code>calcurse</code> homepage</a></li>
|
||||
<li><a href="#links_list">9.2 <code>calcurse</code> announce list</a></li>
|
||||
<li><a href="#links_rss">9.3 <code>calcurse</code> RSS feed</a></li>
|
||||
<li><a href="#links_others">9.4 Other links</a></li>
|
||||
</ul></li>
|
||||
<li><a href="#thanks">10. Thanks</a></li>
|
||||
</ul>
|
||||
@ -336,14 +337,18 @@ All of the commands are documented within an online help system.
|
||||
<dd>
|
||||
Display <code>calcurse</code> version and exit.
|
||||
</dd>
|
||||
<dt><code>-x, --export</code></dt>
|
||||
<dt><code>-x[format], --export[=format]</code></dt>
|
||||
<dd>
|
||||
Export user data to iCalendar format. Events, appointments and
|
||||
Export user data to specified format. Events, appointments and
|
||||
todos are converted and echoed to stdout.
|
||||
Two possible formats are available: ical and pcal
|
||||
(see section <a href="#links_others">Links</a> below).
|
||||
If the optional argument <code>format</code> is not given,
|
||||
ical format is selected by default.
|
||||
<p class="rq"><span class="valorise">Note:</span>
|
||||
redirect standard output to export data to a file,
|
||||
by issuing a command such as:
|
||||
<code>$ calcurse --export > my_data.ics</code></p>
|
||||
<code>$ calcurse --export > my_data.dat</code></p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
@ -1005,6 +1010,14 @@ msgid ""
|
||||
This RSS feed is updated each time a new version of calcurse is
|
||||
available, describing newly added features.</p>
|
||||
|
||||
<h2>9.4 Other links<a name="links_others"></a></h2>
|
||||
<p>
|
||||
You may want to look at the ical format specification (rfc2445) at:
|
||||
<pre>http://tools.ietf.org/html/rfc2445</pre>
|
||||
<p>
|
||||
The pcal project page can be found at:
|
||||
<pre>http://pcal.sourceforge.net/</pre>
|
||||
|
||||
<h1>10. Thanks<a name="thanks"></a></h1>
|
||||
<p>
|
||||
Its time now to thank other people without whom this program
|
||||
@ -1052,7 +1065,7 @@ msgid ""
|
||||
|
||||
<div class="footer">
|
||||
Copyright (c) 2004-2008 Frédéric Culot<br>
|
||||
Calcurse version 2.2 - Last change: August 8, 2008<br>
|
||||
Calcurse version 2.2 - Last change: August 11, 2008<br>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<!--
|
||||
/*
|
||||
* $calcurse: manual_es.html,v 1.15 2008/08/08 14:22:19 culot Exp $
|
||||
* $calcurse: manual_es.html,v 1.16 2008/08/11 18:08:45 culot Exp $
|
||||
*
|
||||
* Calcurse - text-based organizer
|
||||
* Copyright (c) 2004-2008 Frederic Culot
|
||||
@ -112,6 +112,7 @@ well as the way one can contribute to <code>calcurse</code> development.
|
||||
<li><a href="#links_homepage">9.1 Pagina web de <code>calcurse</code></a></li>
|
||||
<li><a href="#links_list">9.2 Lista de anuncios de <code>calcurse</code></a></li>
|
||||
<li><a href="#links_rss">9.3 <code>calcurse</code> RSS feed</a></li>
|
||||
<li><a href="#links_others"><div class="todo">9.4 Other links</div></a></li>
|
||||
</ul></li>
|
||||
<li><a href="#thanks">10. Gracias a ...</a></li>
|
||||
</ul>
|
||||
@ -340,14 +341,20 @@ well as the way one can contribute to <code>calcurse</code> development.
|
||||
<dd>
|
||||
Muestra la versión de <code>calcurse</code> y sale.
|
||||
</dd>
|
||||
<dt><code>-x, --export</code></dt>
|
||||
<dt><code>-x[format], --export[=format]</code></dt>
|
||||
<dd>
|
||||
Exporta los datos del usuario a un formato iCalendar. Citas, eventos y tareas pendientes son convertidos y
|
||||
mostrados en patalla.
|
||||
<div class="todo">
|
||||
Export user data to specified format. Events, appointments and
|
||||
todos are converted and echoed to stdout.
|
||||
Two possible formats are available: ical and pcal
|
||||
(see section <a href="#links_others">Links</a> below).
|
||||
If the optional argument <code>format</code> is not given,
|
||||
ical format is selected by default.
|
||||
</div>
|
||||
<p class="rq"><span class="valorise">Nota:</span>
|
||||
redirecciona la salida standard para exportar los datos a un archivo usando
|
||||
un comando como este:
|
||||
<code>$ calcurse --export > my_data.ics</code></p>
|
||||
<code>$ calcurse --export > my_data.dat</code></p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
@ -985,6 +992,16 @@ msgid ""
|
||||
Este RSS feed es actualizado cada vez que hay una nueva version de Calcurse disponible
|
||||
describiendo las nuevas caracteristicas.</p>
|
||||
|
||||
<h2><div class="todo">9.4 Other links</div><a name="links_others"></a></h2>
|
||||
<div class="todo">
|
||||
<p>
|
||||
You may want to look at the ical format specification (rfc2445) at:
|
||||
<pre>http://tools.ietf.org/html/rfc2445</pre>
|
||||
<p>
|
||||
The pcal project page can be found at:
|
||||
<pre>http://pcal.sourceforge.net/</pre>
|
||||
</div>
|
||||
|
||||
<h1>10. Gracias a ...<a name="thanks"></a></h1>
|
||||
<p>
|
||||
Es la hora de dar las gracias a personas sin las que este programa
|
||||
@ -1028,7 +1045,7 @@ msgid ""
|
||||
Copyright (c) 2004-2008 Frédéric Culot<br>
|
||||
Traducido al Español por José López
|
||||
<code><testinground .at. gmail .dot. com></code><br>
|
||||
Calcurse version 2.2 - Last change: August 8, 2008<br>
|
||||
Calcurse version 2.2 - Last change: August 11, 2008<br>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<!--
|
||||
/*
|
||||
* $calcurse: manual_fr.html,v 1.19 2008/08/08 14:22:19 culot Exp $
|
||||
* $calcurse: manual_fr.html,v 1.20 2008/08/11 18:08:45 culot Exp $
|
||||
*
|
||||
* Calcurse - text-based organizer
|
||||
* Copyright (c) 2004-2008 Frederic Culot
|
||||
@ -112,6 +112,7 @@ pour faire remonter les bogues et pour contribuer au d
|
||||
<li><a href="#links_homepage">9.1 Site internet de <code>calcurse</code></a></li>
|
||||
<li><a href="#links_list">9.2 Liste de diffusion de <code>calcurse</code></a></li>
|
||||
<li><a href="#links_rss">9.3 Flux RSS</a></li>
|
||||
<li><a href="#links_others">9.4 Autres liens</a></li>
|
||||
</ul></li>
|
||||
<li><a href="#thanks">10. Remerciements</a></li>
|
||||
</ul>
|
||||
@ -373,16 +374,20 @@ disponibles.
|
||||
<dd>
|
||||
Affiche la version de <code>calcurse</code>, puis quitte.
|
||||
</dd>
|
||||
<dt><code>-x, --export</code></dt>
|
||||
<dt><code>-x[format], --export[=format]</code></dt>
|
||||
<dd>
|
||||
Exporte les données utilisateur au format iCalendar. Les évènements,
|
||||
Exporte les données utilisateur au format spécifié. Les évènements,
|
||||
rendez-vous et tâches sont convertis et imprimés sur la sortie
|
||||
standard.
|
||||
standard. Deux formats d'export différents sont disponibles :
|
||||
le format ical et le format pcal (voir la section
|
||||
<a href="#links_others">Liens</a> ci-dessous).
|
||||
Si l'argument optionnel <code>format</code> n'est pas indiqué par
|
||||
l'utilisateur, alors le format ical sera utilisé par défaut.
|
||||
<p class="rq"><span class="valorise">Note:</span>
|
||||
afin de sauvegarder les données exportées dans un fichier,
|
||||
il est nécessaire de rediriger la sortie standard en utilisant une
|
||||
commande comme celle-ci:
|
||||
<code>$ calcurse --export > mon_fichier.ics</code></p>
|
||||
<code>$ calcurse --export > mon_fichier.dat</code></p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
@ -1144,6 +1149,15 @@ msgid ""
|
||||
<code>calcurse</code> est diffusée, et indique quelles sont les
|
||||
modifications qui ont été apportées.</p>
|
||||
|
||||
<h2>9.4 Autres liens<a name="links_others"></a></h2>
|
||||
<p>
|
||||
La spécification du format ical (rfc2445) peut être trouvée à l'adresse
|
||||
suivante :
|
||||
<pre>http://tools.ietf.org/html/rfc2445</pre>
|
||||
<p>
|
||||
La page du projet pcal se trouve quant à elle à l'adresse suivante :
|
||||
<pre>http://pcal.sourceforge.net/</pre>
|
||||
|
||||
<h1>10. Remerciements<a name="thanks"></a></h1>
|
||||
<p>
|
||||
Je voudrais remercier ici toutes les personnes sans qui ce projet
|
||||
@ -1197,7 +1211,7 @@ msgid ""
|
||||
|
||||
<div class="footer">
|
||||
Copyright (c) 2004-2008 Frédéric Culot<br>
|
||||
Calcurse version 2.2 - Dernière modification: 8 Aout 2008<br>
|
||||
Calcurse version 2.2 - Dernière modification: 11 Aout 2008<br>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<!--
|
||||
/*
|
||||
* $calcurse: manual_it.html,v 1.4 2008/08/08 14:22:19 culot Exp $
|
||||
* $calcurse: manual_it.html,v 1.5 2008/08/11 18:08:45 culot Exp $
|
||||
*
|
||||
* Calcurse - text-based organizer
|
||||
* Copyright (c) 2004-2008 Frederic Culot
|
||||
@ -114,6 +114,7 @@ partecipare allo sviluppo di calcurse.
|
||||
<li><a href="#links_homepage">9.1 Homepage di <code>calcurse</code></a></li>
|
||||
<li><a href="#links_list">9.2 Lista degli annunci di <code>calcurse</code></a></li>
|
||||
<li><a href="#links_rss">9.3 Feed RSS di <code>calcurse</code></a></li>
|
||||
<li><a href="#links_others"><div class="todo">9.4 Other links</div></a></li>
|
||||
</ul></li>
|
||||
<li><a href="#thanks">10. Ringraziamenti</a></li>
|
||||
</ul>
|
||||
@ -375,16 +376,19 @@ caratteristiche<a name="overview_features"></a></h2>
|
||||
<dd>
|
||||
Stampa la versione di <code>calcurse</code> ed esce.
|
||||
</dd>
|
||||
<dt><code>-x, --export</code></dt>
|
||||
<dd>
|
||||
Esporta tutti i dati nel formato di iCalendar; gli eventi, gli
|
||||
appuntamenti e le attività sono convertiti e stampati sullo
|
||||
standard output.
|
||||
|
||||
<dt><code>-x[format], --export[=format]</code></dt>
|
||||
<dd><div class="todo">
|
||||
Export user data to specified format. Events, appointments and
|
||||
todos are converted and echoed to stdout.
|
||||
Two possible formats are available: ical and pcal
|
||||
(see section <a href="#links_others">Links</a> below).
|
||||
If the optional argument <code>format</code> is not given,
|
||||
ical format is selected by default.
|
||||
</div>
|
||||
<p class="rq"><span class="valorise">Nota:</span> è possibile
|
||||
reindirizzare lo standard output per salvare i dati su un file
|
||||
con un comando del tipo
|
||||
<code>$ calcurse --export > my_data.ics</code></p>
|
||||
<code>$ calcurse --export > my_data.dat</code></p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
@ -1182,6 +1186,16 @@ d'ambiente<a name="basics_invocation_environment"></a></h3>
|
||||
versione con la descrizione delle funzionalità aggiunte.
|
||||
</p>
|
||||
|
||||
<h2><div class="todo">9.4 Other links</div><a name="links_others"></a></h2>
|
||||
<div class="todo">
|
||||
<p>
|
||||
You may want to look at the ical format specification (rfc2445) at:
|
||||
<pre>http://tools.ietf.org/html/rfc2445</pre>
|
||||
<p>
|
||||
The pcal project page can be found at:
|
||||
<pre>http://pcal.sourceforge.net/</pre>
|
||||
</div>
|
||||
|
||||
<h1>10. Ringraziamenti<a name="thanks"></a></h1>
|
||||
<p>
|
||||
È giunto il momento per ringraziare le persone senza le quali
|
||||
@ -1273,7 +1287,7 @@ d'ambiente<a name="basics_invocation_environment"></a></h3>
|
||||
|
||||
<div class="footer">
|
||||
Copyright (c) 2004-2008 Frédéric Culot<br>
|
||||
Calcurse version 2.2 - Last change: August 8, 2008<br>
|
||||
Calcurse version 2.2 - Last change: August 11, 2008<br>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//NL">
|
||||
<!--
|
||||
/*
|
||||
* $calcurse: manual_nl.html,v 1.10 2008/08/08 14:22:19 culot Exp $
|
||||
* $calcurse: manual_nl.html,v 1.11 2008/08/11 18:08:45 culot Exp $
|
||||
*
|
||||
* Calcurse - text-based organizer
|
||||
* Copyright (c) 2004-2008 Frederic Culot
|
||||
@ -110,6 +110,7 @@ besproken. Als laatste wordt zowel de procedure van het melden van fouten in
|
||||
<li><a href="#links_homepage">9.1 <code>Calcurse</code> homepage</a></li>
|
||||
<li><a href="#links_list">9.2 <code>Calcurse</code> nieuws lijst</a></li>
|
||||
<li><a href="#links_rss">9.3 <code>Calcurse</code> RSS feed</a></li>
|
||||
<li><a href="#links_others"><div class="todo">9.4 Other links</div></a></li>
|
||||
</ul></li>
|
||||
<li><a href="#thanks">10. Dankwoord</a></li>
|
||||
</ul>
|
||||
@ -342,15 +343,19 @@ besproken. Als laatste wordt zowel de procedure van het melden van fouten in
|
||||
Geeft het versienummer van <code>calcurse</code> weer en verlaat het
|
||||
programma.
|
||||
</dd>
|
||||
<dt><code>-x, --export</code></dt>
|
||||
<dd>
|
||||
Exporteert de data van de gebruiker naar het iCalender-formaat.
|
||||
Gebeurtenissen, afspraken en taken worden geconverteerd en naar stdout
|
||||
gezonden.
|
||||
<dt><code>-x[format], --export[=format]</code></dt>
|
||||
<dd><div class="todo">
|
||||
Export user data to specified format. Events, appointments and
|
||||
todos are converted and echoed to stdout.
|
||||
Two possible formats are available: ical and pcal
|
||||
(see section <a href="#links_others">Links</a> below).
|
||||
If the optional argument <code>format</code> is not given,
|
||||
ical format is selected by default.
|
||||
</div>
|
||||
<p class="rq"><span class="valorise">Noot:</span>
|
||||
Om de data te exporteren naar een bestand, kan men de
|
||||
standaard output omleiden met een commando zoals:
|
||||
<code>$ calcurse --export > my_data.ics</code></p>
|
||||
<code>$ calcurse --export > my_data.dat</code></p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
@ -998,6 +1003,16 @@ msgid ""
|
||||
calcurse beschikbaar is, waarbij ook de nieuwe opties beschreven
|
||||
worden. </p>
|
||||
|
||||
<h2><div class="todo">9.4 Other links</div><a name="links_others"></a></h2>
|
||||
<div class="todo">
|
||||
<p>
|
||||
You may want to look at the ical format specification (rfc2445) at:
|
||||
<pre>http://tools.ietf.org/html/rfc2445</pre>
|
||||
<p>
|
||||
The pcal project page can be found at:
|
||||
<pre>http://pcal.sourceforge.net/</pre>
|
||||
</div>
|
||||
|
||||
<h1>10. Dankwoord<a name="thanks"></a></h1>
|
||||
<p>
|
||||
Het is tijd om de mensen te bedanken, zonder wie dit programma niet
|
||||
@ -1052,7 +1067,7 @@ msgid ""
|
||||
|
||||
<div class="footer">
|
||||
Copyright (c) 2004-2008 Frédéric Culot<br>
|
||||
Calcurse version 2.2 - Last change: August 8, 2008<br>
|
||||
Calcurse version 2.2 - Last change: August 11, 2008<br>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
41
src/args.c
41
src/args.c
@ -1,4 +1,4 @@
|
||||
/* $calcurse: args.c,v 1.36 2008/08/10 09:24:46 culot Exp $ */
|
||||
/* $calcurse: args.c,v 1.37 2008/08/11 18:08:45 culot Exp $ */
|
||||
|
||||
/*
|
||||
* Calcurse - text-based organizer
|
||||
@ -48,7 +48,7 @@ static void
|
||||
usage ()
|
||||
{
|
||||
char *arg_usage =
|
||||
_("Usage: calcurse [-h|-v] [-x] [-N] [-an] [-t[num]]\n"
|
||||
_("Usage: calcurse [-h|-v] [-N] [-an] [-t[num]] [-x[format]]\n"
|
||||
" [-d <date>|<num>] [-s[date]] [-r[range]]\n"
|
||||
" [-c<file> | -D<dir>]\n");
|
||||
fputs (arg_usage, stdout);
|
||||
@ -120,11 +120,14 @@ help_arg ()
|
||||
" print todo list and exit. If the optional number [num] is given,\n"
|
||||
"\tthen only todos having a priority equal to [num] will be returned.\n"
|
||||
"\tnote: priority number must be between 1 (highest) and 9 (lowest).\n"
|
||||
"\n -x, --export\n"
|
||||
" export user data to iCalendar format. Events, appointments and\n"
|
||||
"\n -x[format], --export[=format]\n"
|
||||
" export user data to the specified format. Events, appointments and\n"
|
||||
"\ttodos are converted and echoed to stdout.\n"
|
||||
"\tTwo possible formats are available: 'ical' and 'pcal'.\n"
|
||||
"\tIf the optional argument format is not given, ical format is\n"
|
||||
"\tselected by default.\n"
|
||||
"\tnote: redirect standard output to export data to a file,\n"
|
||||
"\tby issuing a command such as: calcurse --export > my_data.ics\n"
|
||||
"\tby issuing a command such as: calcurse --export > calcurse.dat\n"
|
||||
"\nFor more information, type '?' from within Calcurse, "
|
||||
"or read the manpage.\n"
|
||||
"Mail bug reports and suggestions to <calcurse@culot.org>.\n");
|
||||
@ -578,13 +581,13 @@ parse_args (int argc, char **argv, conf_t *conf)
|
||||
int vflag = 0; /* -v: print version number */
|
||||
int xflag = 0; /* -x: export data to iCalendar format */
|
||||
|
||||
int tnum = 0;
|
||||
int tnum = 0, xfmt = 0;
|
||||
int non_interactive = 0, multiple_flag = 0, load_data = 0;
|
||||
int no_file = 1;
|
||||
char *ddate = "", *cfile = NULL, *range = NULL, *startday = NULL;
|
||||
char *datadir = NULL;
|
||||
|
||||
static char *optstr = "hvnNaxt::d:c:r:s:D:";
|
||||
static char *optstr = "hvnNax::t::d:c:r:s:D:";
|
||||
|
||||
struct option longopts[] = {
|
||||
{"appointment", no_argument, NULL, 'a'},
|
||||
@ -598,7 +601,7 @@ parse_args (int argc, char **argv, conf_t *conf)
|
||||
{"startday", required_argument, NULL, 's'},
|
||||
{"todo", optional_argument, NULL, 't'},
|
||||
{"version", no_argument, NULL, 'v'},
|
||||
{"export", no_argument, NULL, 'x'},
|
||||
{"export", optional_argument, NULL, 'x'},
|
||||
{NULL, no_argument, NULL, 0}
|
||||
};
|
||||
|
||||
@ -675,6 +678,25 @@ parse_args (int argc, char **argv, conf_t *conf)
|
||||
xflag = 1;
|
||||
multiple_flag++;
|
||||
load_data++;
|
||||
if (optarg != NULL)
|
||||
{
|
||||
if (strcmp (optarg, "ical") == 0)
|
||||
xfmt = IO_EXPORT_ICAL;
|
||||
else if (strcmp (optarg, "pcal") == 0)
|
||||
xfmt = IO_EXPORT_PCAL;
|
||||
else
|
||||
{
|
||||
fputs (_("Argumet for '-x' should be either "
|
||||
"'ical' or 'pcal'\n"), stderr);
|
||||
usage ();
|
||||
usage_try ();
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
xfmt = IO_EXPORT_ICAL;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
usage ();
|
||||
@ -731,7 +753,8 @@ parse_args (int argc, char **argv, conf_t *conf)
|
||||
{
|
||||
notify_init_vars ();
|
||||
custom_load_conf (conf, 0);
|
||||
io_export_data (IO_EXPORT_NONINTERACTIVE, IO_EXPORT_ICAL, conf);
|
||||
io_load_todo ();
|
||||
io_export_data (IO_EXPORT_NONINTERACTIVE, xfmt, conf);
|
||||
non_interactive = 1;
|
||||
return (non_interactive);
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
.\" $calcurse: calcurse.1,v 1.9 2008/08/08 14:22:19 culot Exp $
|
||||
.\" $calcurse: calcurse.1,v 1.10 2008/08/11 18:08:45 culot Exp $
|
||||
.\"
|
||||
.\" Copyright (c) 2004-2008 Frederic Culot
|
||||
.\"
|
||||
@ -23,7 +23,8 @@
|
||||
Calcurse \- text-based organizer
|
||||
.SH SYNOPSIS
|
||||
.B "calcurse "
|
||||
[\fB-h\fP|\fB-v\fP] [\fB-x\fP] [\fB-N\fP] [\fB-an\fP] [\fB-t\fP[\fInum\fP]]
|
||||
[\fB-h\fP|\fB-v\fP] [\fB-N\fP] [\fB-an\fP] [\fB-t\fP[\fInum\fP]]
|
||||
[\fB-x\fP[\fIformat\fP]]
|
||||
.br
|
||||
[\fB-d\fP <\fIdate\fP>|<\fInum\fP>] [\fB-s\fP[\fIdate\fP]]
|
||||
[\fB-r\fP[\fIrange\fP]]
|
||||
@ -110,14 +111,17 @@ then only todos having a priority equal to \fInum\fP will be returned.
|
||||
\fB-v\fP, \fB--version\fP
|
||||
Display calcurse version and exit.
|
||||
.TP
|
||||
\fB-x\fP, \fB--export\fP
|
||||
Export user data to iCalendar format. Events, appointments and
|
||||
todos are converted and echoed to stdout.
|
||||
\fB-x\fP[format], \fB--export\fP[=format]
|
||||
Export user data to the specified format. Events, appointments and
|
||||
todos are converted and echoed to stdout. Two possible formats are
|
||||
available: \fIical\fP and \fIpcal\fP.
|
||||
If the optional argument format is not given, ical format is
|
||||
selected by default.
|
||||
.br
|
||||
\fINote:\fP redirect standard output to export data to a file,
|
||||
by issuing a command such as:
|
||||
.br
|
||||
.B $ calcurse --export > my_data.ics
|
||||
.B $ calcurse --export > calcurse.dat
|
||||
.SH NOTES
|
||||
Calcurse interface contains three different panels (calendar,
|
||||
appointment list, and todo list) on which you can perform different
|
||||
@ -193,7 +197,12 @@ author, below.
|
||||
.SH SEE ALSO
|
||||
vi(1), less(1), ncurses(3), mkstemp(3)
|
||||
.br
|
||||
Calcurse home page : http://culot.org/calcurse/
|
||||
The ical specification (rfc2445) can be found at:
|
||||
http://tools.ietf.org/html/rfc2445
|
||||
.br
|
||||
The pcal project page: http://pcal.sourceforge.net/
|
||||
.br
|
||||
Calcurse home page: http://culot.org/calcurse/
|
||||
.br
|
||||
Calcurse complete manual, translated in many languages and maintained in
|
||||
html format, can be found in the doc/ directory of the source package,
|
||||
|
10
src/help.c
10
src/help.c
@ -1,4 +1,4 @@
|
||||
/* $calcurse: help.c,v 1.27 2008/08/03 18:41:55 culot Exp $ */
|
||||
/* $calcurse: help.c,v 1.28 2008/08/11 18:08:45 culot Exp $ */
|
||||
|
||||
/*
|
||||
* Calcurse - text-based organizer
|
||||
@ -301,10 +301,16 @@ help_screen (void)
|
||||
|
||||
hscr[HELP_EXPORT].title = _("Export:\n");
|
||||
hscr[HELP_EXPORT].text =
|
||||
_("Pressing 'X' exports the Calcurse data to iCalendar format.\n\n"
|
||||
_("Pressing 'X' leads to the export submenu, from which you can choose\n"
|
||||
"between two different export formats: 'ical' and 'pcal'.\n"
|
||||
"Choosing one of those formats lets you export the Calcurse data to\n"
|
||||
"icalendar or pcal format.\n\n"
|
||||
"You first need to specify the file to which the data will be exported.\n"
|
||||
"By default, this file is:\n\n"
|
||||
" ~/calcurse.ics\n\n"
|
||||
"for an ical export, and:\n\n"
|
||||
" ~/calcurse.txt\n\n"
|
||||
"for a pcal export.\n"
|
||||
"All of the calcurse data are exported, in the following order:\n"
|
||||
"events, appointments, todos.\n");
|
||||
|
||||
|
25
src/io.c
25
src/io.c
@ -1,4 +1,4 @@
|
||||
/* $calcurse: io.c,v 1.31 2008/08/10 09:24:46 culot Exp $ */
|
||||
/* $calcurse: io.c,v 1.32 2008/08/11 18:08:45 culot Exp $ */
|
||||
|
||||
/*
|
||||
* Calcurse - text-based organizer
|
||||
@ -40,6 +40,9 @@
|
||||
#include "apoint.h"
|
||||
#include "io.h"
|
||||
|
||||
#define ICALDATEFMT "%Y%m%d"
|
||||
#define ICALDATETIMEFMT "%Y%m%dT%H%M%S"
|
||||
|
||||
typedef enum
|
||||
{
|
||||
PROGRESS_BAR_SAVE,
|
||||
@ -282,7 +285,7 @@ ical_export_recur_events (FILE *stream)
|
||||
|
||||
for (i = recur_elist; i != 0; i = i->next)
|
||||
{
|
||||
date_sec2ical_date (i->day, ical_date);
|
||||
date_sec2date_fmt (i->day, ICALDATEFMT, ical_date);
|
||||
fprintf (stream, "BEGIN:VEVENT\n");
|
||||
fprintf (stream, "DTSTART:%s\n", ical_date);
|
||||
fprintf (stream, "RRULE:FREQ=%s;INTERVAL=%d",
|
||||
@ -290,7 +293,7 @@ ical_export_recur_events (FILE *stream)
|
||||
|
||||
if (i->rpt->until != 0)
|
||||
{
|
||||
date_sec2ical_date (i->rpt->until, ical_date);
|
||||
date_sec2date_fmt (i->rpt->until, ICALDATEFMT, ical_date);
|
||||
fprintf (stream, ";UNTIL=%s\n", ical_date);
|
||||
}
|
||||
else
|
||||
@ -298,11 +301,11 @@ ical_export_recur_events (FILE *stream)
|
||||
|
||||
if (i->exc != NULL)
|
||||
{
|
||||
date_sec2ical_date (i->exc->st, ical_date);
|
||||
date_sec2date_fmt (i->exc->st, ICALDATEFMT, ical_date);
|
||||
fprintf (stream, "EXDATE:%s", ical_date);
|
||||
for (day = i->exc->next; day; day = day->next)
|
||||
{
|
||||
date_sec2ical_date (day->st, ical_date);
|
||||
date_sec2date_fmt (day->st, ICALDATEFMT, ical_date);
|
||||
fprintf (stream, ",%s", ical_date);
|
||||
}
|
||||
fprintf (stream, "\n");
|
||||
@ -403,7 +406,7 @@ ical_export_events (FILE *stream)
|
||||
|
||||
for (i = eventlist; i != 0; i = i->next)
|
||||
{
|
||||
date_sec2ical_date (i->day, ical_date);
|
||||
date_sec2date_fmt (i->day, ICALDATEFMT, ical_date);
|
||||
fprintf (stream, "BEGIN:VEVENT\n");
|
||||
fprintf (stream, "DTSTART:%s\n", ical_date);
|
||||
fprintf (stream, "SUMMARY:%s\n", i->mesg);
|
||||
@ -434,7 +437,7 @@ ical_export_recur_apoints (FILE *stream)
|
||||
pthread_mutex_lock (&(recur_alist_p->mutex));
|
||||
for (i = recur_alist_p->root; i != 0; i = i->next)
|
||||
{
|
||||
date_sec2ical_datetime (i->start, ical_datetime);
|
||||
date_sec2date_fmt (i->start, ICALDATETIMEFMT, ical_datetime);
|
||||
fprintf (stream, "BEGIN:VEVENT\n");
|
||||
fprintf (stream, "DTSTART:%s\n", ical_datetime);
|
||||
fprintf (stream, "DURATION:P%ldS\n", i->dur);
|
||||
@ -443,7 +446,7 @@ ical_export_recur_apoints (FILE *stream)
|
||||
|
||||
if (i->rpt->until != 0)
|
||||
{
|
||||
date_sec2ical_date (i->rpt->until + HOURINSEC, ical_date);
|
||||
date_sec2date_fmt (i->rpt->until + HOURINSEC, ICALDATEFMT, ical_date);
|
||||
fprintf (stream, ";UNTIL=%s\n", ical_date);
|
||||
}
|
||||
else
|
||||
@ -451,11 +454,11 @@ ical_export_recur_apoints (FILE *stream)
|
||||
|
||||
if (i->exc != NULL)
|
||||
{
|
||||
date_sec2ical_date (i->exc->st, ical_date);
|
||||
date_sec2date_fmt (i->exc->st, ICALDATEFMT, ical_date);
|
||||
fprintf (stream, "EXDATE:%s", ical_date);
|
||||
for (day = i->exc->next; day; day = day->next)
|
||||
{
|
||||
date_sec2ical_date (day->st, ical_date);
|
||||
date_sec2date_fmt (day->st, ICALDATEFMT, ical_date);
|
||||
fprintf (stream, ",%s", ical_date);
|
||||
}
|
||||
fprintf (stream, "\n");
|
||||
@ -540,7 +543,7 @@ ical_export_apoints (FILE *stream)
|
||||
pthread_mutex_lock (&(alist_p->mutex));
|
||||
for (i = alist_p->root; i != 0; i = i->next)
|
||||
{
|
||||
date_sec2ical_datetime (i->start, ical_datetime);
|
||||
date_sec2date_fmt (i->start, ICALDATETIMEFMT, ical_datetime);
|
||||
fprintf (stream, "BEGIN:VEVENT\n");
|
||||
fprintf (stream, "DTSTART:%s\n", ical_datetime);
|
||||
fprintf (stream, "DURATION:P%ldS\n", i->dur);
|
||||
|
42
src/utils.c
42
src/utils.c
@ -1,4 +1,4 @@
|
||||
/* $calcurse: utils.c,v 1.47 2008/08/10 09:24:46 culot Exp $ */
|
||||
/* $calcurse: utils.c,v 1.48 2008/08/11 18:08:45 culot Exp $ */
|
||||
|
||||
/*
|
||||
* Calcurse - text-based organizer
|
||||
@ -556,45 +556,7 @@ date_sec2date_str (long sec, char *datefmt)
|
||||
return (datestr);
|
||||
}
|
||||
|
||||
/*
|
||||
* Return a string containing an iCal date, given a date in
|
||||
* seconds. This is used to build all-day long iCal VEVENT
|
||||
* (calcurse event equivalent).
|
||||
*/
|
||||
void
|
||||
date_sec2ical_date (long sec, char *ical_date)
|
||||
{
|
||||
#define DATELENGTH 9
|
||||
|
||||
struct tm *lt;
|
||||
time_t t;
|
||||
|
||||
t = sec;
|
||||
lt = localtime (&t);
|
||||
strftime (ical_date, DATELENGTH, "%Y%m%d", lt);
|
||||
}
|
||||
|
||||
/*
|
||||
* Return a string containing an iCal date-time, given a date in
|
||||
* seconds. This is used to build iCal VEVENT (calcurse appointment equivalent).
|
||||
*/
|
||||
void
|
||||
date_sec2ical_datetime (long sec, char *ical_datetime)
|
||||
{
|
||||
#define DATETIMELENGTH 16
|
||||
|
||||
struct tm *lt;
|
||||
time_t t;
|
||||
|
||||
t = sec;
|
||||
lt = localtime (&t);
|
||||
strftime (ical_datetime, DATETIMELENGTH, "%Y%m%dT%H%M%S", lt);
|
||||
}
|
||||
|
||||
/*
|
||||
* At least a generic function to format date...
|
||||
* I promise I will learn how to code someday.
|
||||
*/
|
||||
/* Generic function to format date. */
|
||||
void
|
||||
date_sec2date_fmt (long sec, const char *fmt, char *datef)
|
||||
{
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $calcurse: utils.h,v 1.31 2008/08/10 09:24:46 culot Exp $ */
|
||||
/* $calcurse: utils.h,v 1.32 2008/08/11 18:08:45 culot Exp $ */
|
||||
|
||||
/*
|
||||
* Calcurse - text-based organizer
|
||||
@ -89,8 +89,6 @@ void status_bar (void);
|
||||
long date2sec (date_t, unsigned, unsigned);
|
||||
char *date_sec2hour_str (long);
|
||||
char *date_sec2date_str (long, char *);
|
||||
void date_sec2ical_date (long, char *);
|
||||
void date_sec2ical_datetime (long, char *);
|
||||
void date_sec2date_fmt (long, const char *, char *);
|
||||
long date_sec_change (long, int, int);
|
||||
long update_time_in_date (long, unsigned, unsigned);
|
||||
|
Loading…
x
Reference in New Issue
Block a user