All headers gathered into a single one. Typedefs suppressed.
This commit is contained in:
171
src/io.c
171
src/io.c
@@ -1,9 +1,9 @@
|
||||
/* $calcurse: io.c,v 1.80 2009/11/01 11:06:37 culot Exp $ */
|
||||
/* $calcurse: io.c,v 1.81 2010/03/20 10:54:46 culot Exp $ */
|
||||
|
||||
/*
|
||||
* Calcurse - text-based organizer
|
||||
*
|
||||
* Copyright (c) 2004-2009 Frederic Culot <frederic@culot.org>
|
||||
* Copyright (c) 2004-2010 Frederic Culot <frederic@culot.org>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -45,21 +45,7 @@
|
||||
#include <unistd.h>
|
||||
#include <errno.h>
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif /* HAVE_CONFIG_H */
|
||||
|
||||
#include "i18n.h"
|
||||
#include "utils.h"
|
||||
#include "custom.h"
|
||||
#include "todo.h"
|
||||
#include "event.h"
|
||||
#include "apoint.h"
|
||||
#include "recur.h"
|
||||
#include "keys.h"
|
||||
#include "htable.h"
|
||||
#include "mem.h"
|
||||
#include "io.h"
|
||||
#include "calcurse.h"
|
||||
|
||||
#define ICALDATEFMT "%Y%m%d"
|
||||
#define ICALDATETIMEFMT "%Y%m%dT%H%M%S"
|
||||
@@ -96,15 +82,15 @@ typedef enum {
|
||||
} ical_vevent_e;
|
||||
|
||||
typedef struct {
|
||||
recur_types_t type;
|
||||
int freq;
|
||||
long until;
|
||||
unsigned count;
|
||||
enum recur_type type;
|
||||
int freq;
|
||||
long until;
|
||||
unsigned count;
|
||||
} ical_rpt_t;
|
||||
|
||||
struct ht_keybindings_s {
|
||||
char *label;
|
||||
keys_e key;
|
||||
char *label;
|
||||
enum key key;
|
||||
HTABLE_ENTRY (ht_keybindings_s);
|
||||
};
|
||||
|
||||
@@ -218,7 +204,7 @@ progress_bar (progress_bar_t type, int progress)
|
||||
|
||||
/* Ask user for a file name to export data to. */
|
||||
static FILE *
|
||||
get_export_stream (export_type_t type)
|
||||
get_export_stream (enum export_type type)
|
||||
{
|
||||
FILE *stream;
|
||||
int cancel;
|
||||
@@ -263,7 +249,7 @@ get_export_stream (export_type_t type)
|
||||
* (mainly used to export data).
|
||||
*/
|
||||
static void
|
||||
foreach_date_dump (const long date_end, struct rpt_s *rpt, struct days_s *exc,
|
||||
foreach_date_dump (const long date_end, struct rpt *rpt, struct days *exc,
|
||||
long item_first_date, long item_dur, char *item_mesg,
|
||||
cb_dump_t cb_dump, FILE *stream)
|
||||
{
|
||||
@@ -357,8 +343,8 @@ pcal_export_footer (FILE *stream)
|
||||
static void
|
||||
ical_export_recur_events (FILE *stream)
|
||||
{
|
||||
struct recur_event_s *i;
|
||||
struct days_s *day;
|
||||
struct recur_event *i;
|
||||
struct days *day;
|
||||
char ical_date[BUFSIZ];
|
||||
|
||||
for (i = recur_elist; i != 0; i = i->next)
|
||||
@@ -422,7 +408,7 @@ pcal_dump_apoint (FILE *stream, long apoint_date, long apoint_dur,
|
||||
static void
|
||||
pcal_export_recur_events (FILE *stream)
|
||||
{
|
||||
struct recur_event_s *i;
|
||||
struct recur_event *i;
|
||||
char pcal_date[BUFSIZ];
|
||||
|
||||
(void)fprintf (stream, "\n# =============");
|
||||
@@ -476,7 +462,7 @@ pcal_export_recur_events (FILE *stream)
|
||||
static void
|
||||
ical_export_events (FILE *stream)
|
||||
{
|
||||
struct event_s *i;
|
||||
struct event *i;
|
||||
char ical_date[BUFSIZ];
|
||||
|
||||
for (i = eventlist; i != 0; i = i->next)
|
||||
@@ -492,7 +478,7 @@ ical_export_events (FILE *stream)
|
||||
static void
|
||||
pcal_export_events (FILE *stream)
|
||||
{
|
||||
struct event_s *i;
|
||||
struct event *i;
|
||||
|
||||
(void)fprintf (stream, "\n# ======\n# Events\n# ======\n");
|
||||
for (i = eventlist; i != 0; i = i->next)
|
||||
@@ -504,8 +490,8 @@ pcal_export_events (FILE *stream)
|
||||
static void
|
||||
ical_export_recur_apoints (FILE *stream)
|
||||
{
|
||||
recur_apoint_llist_node_t *i;
|
||||
struct days_s *day;
|
||||
struct recur_apoint *i;
|
||||
struct days *day;
|
||||
char ical_datetime[BUFSIZ];
|
||||
char ical_date[BUFSIZ];
|
||||
|
||||
@@ -550,7 +536,7 @@ ical_export_recur_apoints (FILE *stream)
|
||||
static void
|
||||
pcal_export_recur_apoints (FILE *stream)
|
||||
{
|
||||
recur_apoint_llist_node_t *i;
|
||||
struct recur_apoint *i;
|
||||
char pcal_date[BUFSIZ], pcal_beg[BUFSIZ], pcal_end[BUFSIZ];
|
||||
|
||||
(void)fprintf (stream, "\n# ==============");
|
||||
@@ -609,7 +595,7 @@ pcal_export_recur_apoints (FILE *stream)
|
||||
static void
|
||||
ical_export_apoints (FILE *stream)
|
||||
{
|
||||
apoint_llist_node_t *i;
|
||||
struct apoint *i;
|
||||
char ical_datetime[BUFSIZ];
|
||||
|
||||
pthread_mutex_lock (&(alist_p->mutex));
|
||||
@@ -630,7 +616,7 @@ ical_export_apoints (FILE *stream)
|
||||
static void
|
||||
pcal_export_apoints (FILE *stream)
|
||||
{
|
||||
apoint_llist_node_t *i;
|
||||
struct apoint *i;
|
||||
|
||||
(void)fprintf (stream, "\n# ============\n# Appointments\n# ============\n");
|
||||
pthread_mutex_lock (&(alist_p->mutex));
|
||||
@@ -644,7 +630,7 @@ pcal_export_apoints (FILE *stream)
|
||||
static void
|
||||
ical_export_todo (FILE *stream)
|
||||
{
|
||||
struct todo_s *i;
|
||||
struct todo *i;
|
||||
|
||||
for (i = todolist; i != 0; i = i->next)
|
||||
{
|
||||
@@ -661,7 +647,7 @@ ical_export_todo (FILE *stream)
|
||||
static void
|
||||
pcal_export_todo (FILE *stream)
|
||||
{
|
||||
struct todo_s *i;
|
||||
struct todo *i;
|
||||
|
||||
(void)fprintf (stream, "#\n# Todos\n#\n");
|
||||
for (i = todolist; i != 0; i = i->next)
|
||||
@@ -831,7 +817,7 @@ static pthread_mutex_t io_save_mutex = PTHREAD_MUTEX_INITIALIZER;
|
||||
|
||||
/* Save the user configuration. */
|
||||
unsigned
|
||||
io_save_conf (conf_t *conf)
|
||||
io_save_conf (struct conf *conf)
|
||||
{
|
||||
char *config_txt =
|
||||
"#\n"
|
||||
@@ -969,8 +955,8 @@ io_save_conf (conf_t *conf)
|
||||
unsigned
|
||||
io_save_apts (void)
|
||||
{
|
||||
apoint_llist_node_t *a;
|
||||
struct event_s *e;
|
||||
struct apoint *a;
|
||||
struct event *e;
|
||||
FILE *fp;
|
||||
|
||||
if ((fp = fopen (path_apts, "w")) == 0)
|
||||
@@ -996,7 +982,7 @@ io_save_apts (void)
|
||||
unsigned
|
||||
io_save_todo (void)
|
||||
{
|
||||
struct todo_s *t;
|
||||
struct todo *t;
|
||||
FILE *fp;
|
||||
|
||||
if ((fp = fopen (path_todo, "w")) == 0)
|
||||
@@ -1031,7 +1017,7 @@ io_save_keys (void)
|
||||
|
||||
/* Save the calendar data */
|
||||
void
|
||||
io_save_cal (conf_t *conf, io_save_display_t display)
|
||||
io_save_cal (struct conf *conf, enum save_display display)
|
||||
{
|
||||
char *access_pb = _("Problems accessing data file ...");
|
||||
char *save_success = _("The data files were successfully saved");
|
||||
@@ -1089,7 +1075,7 @@ io_load_app (void)
|
||||
FILE *data_file;
|
||||
int c, is_appointment, is_event, is_recursive;
|
||||
struct tm start, end, until, *lt;
|
||||
struct days_s *exc;
|
||||
struct days *exc;
|
||||
time_t t;
|
||||
int id = 0;
|
||||
int freq;
|
||||
@@ -1367,7 +1353,7 @@ io_load_keys (char *pager)
|
||||
struct ht_keybindings_s keys[NBKEYS];
|
||||
FILE *keyfp;
|
||||
char buf[BUFSIZ];
|
||||
io_file_t *log;
|
||||
struct io_file *log;
|
||||
int i, skipped, loaded, line;
|
||||
const int MAX_ERRORS = 5;
|
||||
|
||||
@@ -1382,8 +1368,8 @@ io_load_keys (char *pager)
|
||||
|
||||
for (i = 0; i < NBKEYS; i++)
|
||||
{
|
||||
keys[i].key = (keys_e)i;
|
||||
keys[i].label = keys_get_label ((keys_e)i);
|
||||
keys[i].key = (enum key)i;
|
||||
keys[i].label = keys_get_label ((enum key)i);
|
||||
HTABLE_INSERT (ht_keybindings, &ht_keys, &keys[i]);
|
||||
}
|
||||
|
||||
@@ -1611,7 +1597,7 @@ io_startup_screen (unsigned skip_dialogs, int no_data_file)
|
||||
|
||||
/* Export calcurse data. */
|
||||
void
|
||||
io_export_data (export_type_t type, conf_t *conf)
|
||||
io_export_data (enum export_type type, struct conf *conf)
|
||||
{
|
||||
FILE *stream;
|
||||
char *success = _("The data were successfully exported");
|
||||
@@ -1739,7 +1725,7 @@ ical_store_todo (int priority, char *mesg, char *note)
|
||||
|
||||
static void
|
||||
ical_store_event (char *mesg, char *note, long day, long end, ical_rpt_t *rpt,
|
||||
days_t *exc)
|
||||
struct days *exc)
|
||||
{
|
||||
const int EVENTID = 1;
|
||||
|
||||
@@ -1771,7 +1757,7 @@ ical_store_event (char *mesg, char *note, long day, long end, ical_rpt_t *rpt,
|
||||
|
||||
static void
|
||||
ical_store_apoint (char *mesg, char *note, long start, long dur,
|
||||
ical_rpt_t *rpt, days_t *exc, int has_alarm)
|
||||
ical_rpt_t *rpt, struct days *exc, int has_alarm)
|
||||
{
|
||||
char state = 0L;
|
||||
|
||||
@@ -1922,7 +1908,7 @@ static float
|
||||
ical_chk_header (FILE *fd, unsigned *lineno)
|
||||
{
|
||||
const int HEADER_MALFORMED = -1;
|
||||
const string_t icalheader = STRING_BUILD ("BEGIN:VCALENDAR");
|
||||
const struct string icalheader = STRING_BUILD ("BEGIN:VCALENDAR");
|
||||
char buf[BUFSIZ];
|
||||
|
||||
(void)fgets (buf, BUFSIZ, fd);
|
||||
@@ -1971,7 +1957,7 @@ static long
|
||||
ical_datetime2long (char *datestr, ical_vevent_e *type)
|
||||
{
|
||||
const int NOTFOUND = 0, FORMAT_DATE = 3, FORMAT_DATETIME = 5;
|
||||
date_t date;
|
||||
struct date date;
|
||||
unsigned hour, min;
|
||||
long datelong;
|
||||
int format;
|
||||
@@ -2174,12 +2160,12 @@ static ical_rpt_t *
|
||||
ical_read_rrule (FILE *log, char *rrulestr, unsigned *noskipped,
|
||||
const int itemline)
|
||||
{
|
||||
const string_t daily = STRING_BUILD ("DAILY");
|
||||
const string_t weekly = STRING_BUILD ("WEEKLY");
|
||||
const string_t monthly = STRING_BUILD ("MONTHLY");
|
||||
const string_t yearly = STRING_BUILD ("YEARLY");
|
||||
const string_t count = STRING_BUILD ("COUNT=");
|
||||
const string_t interv = STRING_BUILD ("INTERVAL=");
|
||||
const struct string daily = STRING_BUILD ("DAILY");
|
||||
const struct string weekly = STRING_BUILD ("WEEKLY");
|
||||
const struct string monthly = STRING_BUILD ("MONTHLY");
|
||||
const struct string yearly = STRING_BUILD ("YEARLY");
|
||||
const struct string count = STRING_BUILD ("COUNT=");
|
||||
const struct string interv = STRING_BUILD ("INTERVAL=");
|
||||
unsigned interval;
|
||||
ical_rpt_t *rpt;
|
||||
char *p;
|
||||
@@ -2285,15 +2271,15 @@ ical_read_rrule (FILE *log, char *rrulestr, unsigned *noskipped,
|
||||
}
|
||||
|
||||
static void
|
||||
ical_add_exc (days_t **exc_head, long date)
|
||||
ical_add_exc (struct days **exc_head, long date)
|
||||
{
|
||||
if (date == 0)
|
||||
return;
|
||||
else
|
||||
{
|
||||
struct days_s *exc;
|
||||
struct days *exc;
|
||||
|
||||
exc = mem_malloc (sizeof (struct days_s));
|
||||
exc = mem_malloc (sizeof (struct days));
|
||||
exc->st = date;
|
||||
exc->next = *exc_head;
|
||||
*exc_head = exc;
|
||||
@@ -2304,11 +2290,11 @@ ical_add_exc (days_t **exc_head, long date)
|
||||
* This property defines the list of date/time exceptions for a
|
||||
* recurring calendar component.
|
||||
*/
|
||||
static days_t *
|
||||
static struct days *
|
||||
ical_read_exdate (FILE *log, char *exstr, unsigned *noskipped,
|
||||
const int itemline)
|
||||
{
|
||||
days_t *exc;
|
||||
struct days *exc;
|
||||
char *p, *q;
|
||||
long date;
|
||||
|
||||
@@ -2394,7 +2380,6 @@ ical_read_note (char *first_line, FILE *fdi, unsigned *noskipped,
|
||||
|
||||
/* Returns an allocated string containing the ical item summary. */
|
||||
static char *
|
||||
|
||||
ical_read_summary (char *first_line, FILE *fdi, unsigned *lineno)
|
||||
{
|
||||
char *p, *summary;
|
||||
@@ -2414,20 +2399,20 @@ ical_read_event (FILE *fdi, FILE *log, unsigned *noevents, unsigned *noapoints,
|
||||
unsigned *noskipped, unsigned *lineno)
|
||||
{
|
||||
const int ITEMLINE = *lineno;
|
||||
const string_t endevent = STRING_BUILD ("END:VEVENT");
|
||||
const string_t summary = STRING_BUILD ("SUMMARY:");
|
||||
const string_t dtstart = STRING_BUILD ("DTSTART");
|
||||
const string_t dtend = STRING_BUILD ("DTEND");
|
||||
const string_t duration = STRING_BUILD ("DURATION:");
|
||||
const string_t rrule = STRING_BUILD ("RRULE");
|
||||
const string_t exdate = STRING_BUILD ("EXDATE");
|
||||
const string_t alarm = STRING_BUILD ("BEGIN:VALARM");
|
||||
const string_t endalarm = STRING_BUILD ("END:VALARM");
|
||||
const string_t desc = STRING_BUILD ("DESCRIPTION");
|
||||
const struct string endevent = STRING_BUILD ("END:VEVENT");
|
||||
const struct string summary = STRING_BUILD ("SUMMARY:");
|
||||
const struct string dtstart = STRING_BUILD ("DTSTART");
|
||||
const struct string dtend = STRING_BUILD ("DTEND");
|
||||
const struct string duration = STRING_BUILD ("DURATION:");
|
||||
const struct string rrule = STRING_BUILD ("RRULE");
|
||||
const struct string exdate = STRING_BUILD ("EXDATE");
|
||||
const struct string alarm = STRING_BUILD ("BEGIN:VALARM");
|
||||
const struct string endalarm = STRING_BUILD ("END:VALARM");
|
||||
const struct string desc = STRING_BUILD ("DESCRIPTION");
|
||||
ical_vevent_e vevent_type;
|
||||
char *p, buf[BUFSIZ], buf_upper[BUFSIZ];
|
||||
struct {
|
||||
days_t *exc;
|
||||
struct days *exc;
|
||||
ical_rpt_t *rpt;
|
||||
char *mesg, *note;
|
||||
long start, end, dur;
|
||||
@@ -2607,11 +2592,11 @@ static void
|
||||
ical_read_todo (FILE *fdi, FILE *log, unsigned *notodos, unsigned *noskipped,
|
||||
unsigned *lineno)
|
||||
{
|
||||
const string_t endtodo = STRING_BUILD ("END:VTODO");
|
||||
const string_t summary = STRING_BUILD ("SUMMARY");
|
||||
const string_t alarm = STRING_BUILD ("BEGIN:VALARM");
|
||||
const string_t endalarm = STRING_BUILD ("END:VALARM");
|
||||
const string_t desc = STRING_BUILD ("DESCRIPTION");
|
||||
const struct string endtodo = STRING_BUILD ("END:VTODO");
|
||||
const struct string summary = STRING_BUILD ("SUMMARY");
|
||||
const struct string alarm = STRING_BUILD ("BEGIN:VALARM");
|
||||
const struct string endalarm = STRING_BUILD ("END:VALARM");
|
||||
const struct string desc = STRING_BUILD ("DESCRIPTION");
|
||||
const int LOWEST = 9;
|
||||
const int ITEMLINE = *lineno;
|
||||
char buf[BUFSIZ], buf_upper[BUFSIZ];
|
||||
@@ -2701,7 +2686,7 @@ cleanup:
|
||||
}
|
||||
|
||||
static FILE *
|
||||
get_import_stream (export_type_t type)
|
||||
get_import_stream (enum export_type type)
|
||||
{
|
||||
FILE *stream;
|
||||
char *stream_name;
|
||||
@@ -2742,10 +2727,10 @@ get_import_stream (export_type_t type)
|
||||
* and is cleared at the end.
|
||||
*/
|
||||
void
|
||||
io_import_data (import_type_t type, conf_t *conf, char *stream_name)
|
||||
io_import_data (enum import_type type, struct conf *conf, char *stream_name)
|
||||
{
|
||||
const string_t vevent = STRING_BUILD ("BEGIN:VEVENT");
|
||||
const string_t vtodo = STRING_BUILD ("BEGIN:VTODO");
|
||||
const struct string vevent = STRING_BUILD ("BEGIN:VEVENT");
|
||||
const struct string vtodo = STRING_BUILD ("BEGIN:VTODO");
|
||||
char *proc_report = _("Import process report: %04d lines read ");
|
||||
char *lines_stats =
|
||||
_("%d apps / %d events / %d todos / %d skipped ");
|
||||
@@ -2753,7 +2738,7 @@ io_import_data (import_type_t type, conf_t *conf, char *stream_name)
|
||||
_("%d apps / %d events / %d todos / %d skipped ([ENTER] to continue)");
|
||||
char buf[BUFSIZ];
|
||||
FILE *stream = NULL;
|
||||
io_file_t *log;
|
||||
struct io_file *log;
|
||||
float ical_version;
|
||||
struct {
|
||||
unsigned events, apoints, todos, lines, skipped;
|
||||
@@ -2844,17 +2829,17 @@ io_import_data (import_type_t type, conf_t *conf, char *stream_name)
|
||||
io_log_free (log);
|
||||
}
|
||||
|
||||
io_file_t *
|
||||
struct io_file *
|
||||
io_log_init (void)
|
||||
{
|
||||
const char *logprefix = "/tmp/calcurse_log.";
|
||||
char *logname;
|
||||
io_file_t *log;
|
||||
struct io_file *log;
|
||||
|
||||
logname = new_tempfile (logprefix, NOTESIZ);
|
||||
RETVAL_IF (logname == 0, 0,
|
||||
_("Warning: could not create temporary log file, Aborting..."));
|
||||
log = mem_malloc (sizeof (io_file_t));
|
||||
log = mem_malloc (sizeof (struct io_file));
|
||||
RETVAL_IF (log == 0, 0,
|
||||
_("Warning: could not open temporary log file, Aborting..."));
|
||||
(void)snprintf (log->name, sizeof (log->name), "%s%s", logprefix, logname);
|
||||
@@ -2871,14 +2856,14 @@ io_log_init (void)
|
||||
}
|
||||
|
||||
void
|
||||
io_log_print (io_file_t *log, int line, char *msg)
|
||||
io_log_print (struct io_file *log, int line, char *msg)
|
||||
{
|
||||
if (log && log->fd)
|
||||
(void)fprintf (log->fd, "line %d: %s\n", line, msg);
|
||||
}
|
||||
|
||||
void
|
||||
io_log_display (io_file_t *log, char *msg, char *pager)
|
||||
io_log_display (struct io_file *log, char *msg, char *pager)
|
||||
{
|
||||
char *choices = "[y/n] ";
|
||||
int ans;
|
||||
@@ -2913,7 +2898,7 @@ io_log_display (io_file_t *log, char *msg, char *pager)
|
||||
}
|
||||
|
||||
void
|
||||
io_log_free (io_file_t *log)
|
||||
io_log_free (struct io_file *log)
|
||||
{
|
||||
if (!log)
|
||||
return;
|
||||
@@ -2929,10 +2914,10 @@ static pthread_t io_t_psave;
|
||||
static void *
|
||||
io_psave_thread (void *arg)
|
||||
{
|
||||
conf_t *config;
|
||||
struct conf *config;
|
||||
int delay;
|
||||
|
||||
config = (conf_t *)arg;
|
||||
config = (struct conf *)arg;
|
||||
delay = config->periodic_save;
|
||||
EXIT_IF (delay < 0, _("Invalid delay"));
|
||||
|
||||
@@ -2945,7 +2930,7 @@ io_psave_thread (void *arg)
|
||||
|
||||
/* Launch the thread which handles periodic saves. */
|
||||
void
|
||||
io_start_psave_thread (conf_t *conf)
|
||||
io_start_psave_thread (struct conf *conf)
|
||||
{
|
||||
pthread_create (&io_t_psave, NULL, io_psave_thread, (void *)conf);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user