summaryrefslogtreecommitdiff
path: root/src/io.c
AgeCommit message (Collapse)Author
2011-08-26src/io.c: iCal content line folding correctnessLukas Fleischer
This is a rather invasive change that introduces correct line folding to our iCal parser. From now on, ical_readline() should be used instead of fgets() to read lines from an iCal file as it unfolds lines automatically. We also need to use shared buffers as each ical_readline() invocation eats up the first part of the next line and stores it in the "lstore" buffer. Subsequent ical_readline() invocations copy the contents of this buffer and append continuation lines. We currently use a single buffer pair that is allocated in io_import_data() and pass it to all subroutines. ical_readline_init() needs to be called once for every buffer pair. It reads the first part of the current line and writes to "lstore", clearing the target buffer at the same time. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2011-07-28io.c: Accept resource parameters in iCal importLukas Fleischer
Remove colons from the "SUMMARY:" and "DURATION:" search patterns in ical_read_event() to allow for additional parameters (such as language parameters, cf. RFC 5545). Reported-by: Andraž 'ruskie' Levstik <ruskie@codemages.net> Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2011-07-09Honor "TMPDIR" environment variableLukas Fleischer
Replace all hardcoded paths referring to "/tmp" with a new function that honors the "TMPDIR" environment variable as well as P_tmpdir and uses "/tmp" as a fallback. Thanks-to: Erik Saule <esaule@bmi.osu.edu> Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2011-04-22Update copyright notices in source files, documentation and "COPYING".Lukas Fleischer
* Update copyright dates (use 2004-2011 as date range everywhere). * Change copyright holder from "Frederic Culot" to "calcurse Development Team". Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2011-04-22Return -1 in io_file_is_empty() if file cannot be accessed.Lukas Fleischer
Ensure files don't appear as empty if fopen() fails (e.g. on temporary EACCES failures). Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2011-04-22Use generic lists for recurring item exceptions.Lukas Fleischer
Rename "days" structure to "excp" which seems to be a better name here. Use generic linked lists of excp structures instead of using the "days" structure which again contains a linked list implementation. Do some cleanups and invocation fixes. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2011-04-19Use generic lists for recurring apointments and events.Lukas Fleischer
Use them instead of "recur_apoint_list" and "next" pointers in "recur_event" type variables. Includes some code simplifications and cleanups. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2011-04-19Use generic lists for todo items.Lukas Fleischer
Use the new generic list implementation instead of "next" pointers in todo items. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2011-04-19Use generic lists for events.Lukas Fleischer
Use the new generic list implementation instead of those insane "next" pointers in events. Includes some cleanups. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2011-04-19Use generic lists for appointments.Lukas Fleischer
Use the new generic list implementation instead of "apoint_list" everywhere. Simplify stuff and drop unused variables as well. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2011-04-12Fix io_file_is_empty() behaviour when file starts with a newline.Lukas Fleischer
Read second byte if the first byte is a newline character to ensure the file doesn't contain any further data. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2011-04-12Drop empty notes after editing.Lukas Fleischer
Keeping empty notes doesn't make sense here. Also, there doesn't seem to be a simple way to erase notes yet. This will make calcurse delete any notes that are empty (meaning that they are either 0-byte files or contain nothing but a newline character) when returning from the editor. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2011-04-05Compare pointers to "NULL" instead of "0".Lukas Fleischer
"bad_zero.cocci" spatch from http://coccinelle.lip6.fr/impact_linux.php. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2011-03-29ignore the lock file if the pointed process is dead.Erik Saule
Lukas: Small formatting and logic changes. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2011-03-14Overall indentation fixes.Lukas Fleischer
Use spaces instead of tabs for source code indentation only, strip trailing whitespaces from lines. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2011-03-04Update website links to match the new URL.Lukas Fleischer
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2011-03-04Update mail addresses to match the new mailing lists.Lukas Fleischer
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2011-03-04Simplify str_toupper() in "utils.c".Lukas Fleischer
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2011-03-03Remove CVS "$Id" headers.Lukas Fleischer
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2011-03-03Fixed file permissions.Lukas Fleischer
2010-03-21Avoid concurrent screen refreshes.Frederic Culot
2010-03-21More work on sidebar customization.Frederic Culot
2010-03-20All headers gathered into a single one. Typedefs suppressed.Frederic Culot
2009-11-01Check for data directory availability added (thanks Brandon for reporting ↵Frederic Culot
this bug).
2009-10-28Code to save the calendar default view in the configuration file.Frederic Culot
2009-08-09Memory leak fixed in ical_read_note.Frederic Culot
2009-08-01Save and restore daemon configuration options.Frederic Culot
2009-07-29bugfixesFrederic Culot
2009-07-27io_file_exist(): new functionFrederic Culot
2009-07-26--status flag addedFrederic Culot
2009-07-26More work on implementing calcurse daemon.Frederic Culot
2009-07-23Incorrect duration format when exporting to ical (thanks Chris for reporting ↵Frederic Culot
it).
2009-07-23Functions added to implement a logging mechanism for calcurse daemon.Frederic Culot
2009-07-19Make use of erase_note() whenever possible.Frederic Culot
2009-07-15Fixed a bug related to memory management (a free on a null pointer causes an ↵Frederic Culot
abort now, which induces side effects on file import).
2009-07-12New wrappers around memory functions.Frederic Culot
2009-07-12stdbool header removed, unsigned type used insteadFrederic Culot
2009-07-05Switch to BSD license.Frederic Culot
2009-07-05Support for ical import of events which spans over several days added ↵Frederic Culot
(thanks Andreas for reporting the bug).
2009-06-28Simplified the way data are loaded and saved.Frederic Culot
2009-06-27Do not export completed tasks.Frederic Culot
2009-06-23bugfix: missing 'T' letter in ical export DURATION field (thanks cuz for ↵Frederic Culot
reporting it)
2009-06-21Exit directly to avoid lock removal by another instanceFrederic Culot
2009-06-21Basic lock mechanism implemented to avoid having two calcurse instances ↵Frederic Culot
running at the same time.
2009-06-01Fixes gcc 'format-scurity' issue (thanks Francois Boulogne for reporting this)Frederic Culot
2009-01-24bugfix: load keys even in non-interactive mode to avoid the loss of ↵Frederic Culot
user-configured key bindings
2009-01-24make it possible to use KEY_HOME and KEY_END to define new key bindings, and ↵Frederic Culot
prevent user from assigning a non-recgnized key
2009-01-05iso date format addedFrederic Culot
2009-01-03more code cleanupFrederic Culot
2009-01-02code cleanupFrederic Culot