/* $calcurse: vars.c,v 1.21 2010/03/20 10:54:49 culot Exp $ */ /* * Calcurse - text-based organizer * * Copyright (c) 2004-2008, 2010 Frederic Culot * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * - Redistributions of source code must retain the above * copyright notice, this list of conditions and the * following disclaimer. * * - Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the * following disclaimer in the documentation and/or other * materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * Send your feedback or comments to : calcurse@culot.org * Calcurse home page : http://culot.org/calcurse * */ #include #include #include "calcurse.h" /* * variables to store window size */ int col = 0, row = 0; /* variable to tell if the terminal supports color */ unsigned colorize = 0; /* * To tell if curses interface was launched already or not (in that case * calcurse is running in command-line mode). * This is useful to konw how to display messages on the screen. */ enum ui_mode ui_mode = UI_CMDLINE; /* * variables to store calendar names */ int days[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; char *monthnames[12] = { N_("January"), N_("February"), N_("March"), N_("April"), N_("May"), N_("June"), N_("July"), N_("August"), N_("September"), N_("October"), N_("November"), N_("December") }; char *daynames[8] = { N_("Sun"), N_("Mon"), N_("Tue"), N_("Wed"), N_("Thu"), N_("Fri"), N_("Sat"), N_("Sun") }; /* * variables to store data path names, which are initialized in * io_init() */ char path_dir[] = ""; char path_todo[] = ""; char path_apts[] = ""; char path_conf[] = ""; char path_notes[] = ""; char path_keys[] = ""; char path_cpid[] = ""; char path_dpid[] = ""; char path_dmon_log[] = ""; /* Variable to handle pads. */ struct pad apad; /* Variable to store notify-bar settings. */ struct nbar nbar; /* Variable to store daemon configuration. */ struct dmon_conf dmon; /* * Variables init */ void vars_init (struct conf *conf) { char *PATH_VI = "/usr/bin/vi"; char *PATH_LESS = "/usr/bin/less"; char *ed, *pg; /* Variables for user configuration */ conf->confirm_quit = 1; conf->confirm_delete = 1; conf->auto_save = 1; conf->periodic_save = 0; conf->skip_system_dialogs = 0; conf->skip_progress_bar = 0; (void)strncpy (conf->output_datefmt, "%D", 3); conf->input_datefmt = 1; /* Default external editor and pager */ ed = getenv ("VISUAL"); if (ed == NULL || ed[0] == '\0') ed = getenv ("EDITOR"); if (ed == NULL || ed[0] == '\0') ed = PATH_VI; conf->editor = ed; pg = getenv ("PAGER"); if (pg == NULL || pg[0] == '\0') pg = PATH_LESS; conf->pager = pg; wins_set_layout (1); calendar_set_first_day_of_week (MONDAY); /* Pad structure to scroll text inside the appointment panel */ apad.length = 1; apad.first_onscreen = 0; /* Attribute definitions for color and non-color terminals */ custom_init_attr (); /* Start at the current date */ calendar_init_slctd_day (); }