aboutsummaryrefslogblamecommitdiffstats
path: root/src/vars.c
blob: 2283067915d3a795df12aadf779ac33d97cfe33a (plain) (tree)
1
2
3
4
5
                                                                          


                                  
                                         




















                                                                       
                   
                   
 
                 

                     
                 
                 
                










                                                     






                                                                        


                                                                  
























                        








                                                               
                       
                      
 

                              


                                            
 


                  

                        
 







                                        
                          

                                    
                                                



















                                                                 
                                                             







                                                               
 





                  
/*	$calcurse: vars.c,v 1.13 2008/12/28 19:41:45 culot Exp $	*/

/*
 * Calcurse - text-based organizer
 * Copyright (c) 2004-2008 Frederic Culot
 *
 * 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., 59 Temple Place - Suite 330,
 * Boston, MA 02111-1307, USA.
 *
 * Send your feedback or comments to : calcurse@culot.org
 * Calcurse home page : http://culot.org/calcurse
 *
 */

#include <stdlib.h>
#include <string.h>

#include "i18n.h"
#include "calendar.h"
#include "custom.h"
#include "wins.h"
#include "keys.h"
#include "mem.h"
#include "vars.h"

/*
 * variables to store window size
 */
int col = 0, row = 0;

/* variable to tell if the terminal supports color */
bool colorize = false;

/*
 * 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.
 */
ui_mode_e 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[] = "";

/* Variable to handle pads. */
struct pad_s *apad;

/* Variable to store notify-bar settings. */
struct nbar_s *nbar;

/*
 * Variables init 
 */
void
vars_init (conf_t *conf)
{
  char *PATH_VI = "/usr/bin/vi";
  char *PATH_LESS = "/usr/bin/less";
  char *ed, *pg;

  /* Variables for user configuration */
  conf->confirm_quit = true;
  conf->confirm_delete = true;
  conf->auto_save = true;
  conf->periodic_save = 0;
  conf->skip_system_dialogs = false;
  conf->skip_progress_bar = false;
  (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 = (struct pad_s *) mem_malloc (sizeof (struct pad_s));
  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 ();
}

void
vars_free (void)
{
  mem_free (apad);
}