Example #1
0
/* This is just a safety check so that vifm will still load and run if
 * the configuration file is not present.
 */
static void
load_default_configuration(void)
{
	cfg.using_default_config = 1;
	cfg.use_trash = 1;
	cfg.vi_command = strdup("vim");
/*_SZ_BEGIN_*/
	cfg.fuse_home = strdup("/tmp/vifm_FUSE");
/*_SZ_END_*/
	cfg.use_screen = 0;
	cfg.history_len = 15;
	cfg.use_vim_help = 0;
	strncpy(lwin.regexp, "\\..~$", sizeof(lwin.regexp) -1);

 	lwin.filename_filter = (char *)realloc(lwin.filename_filter, 
 			strlen(DEFAULT_FILENAME_FILTER) +1);
 	strcpy(lwin.filename_filter, DEFAULT_FILENAME_FILTER);
  	lwin.prev_filter = (char *)realloc(lwin.prev_filter, 
 			strlen(DEFAULT_FILENAME_FILTER) +1);
 	strcpy(lwin.prev_filter, DEFAULT_FILENAME_FILTER);

	lwin.invert = TRUE;
	strncpy(rwin.regexp, "\\..~$", sizeof(rwin.regexp) -1);

    rwin.filename_filter = (char *)realloc(rwin.filename_filter, 
 			strlen(DEFAULT_FILENAME_FILTER) +1);
 	strcpy(rwin.filename_filter, DEFAULT_FILENAME_FILTER);
 	rwin.prev_filter = (char *)realloc(rwin.prev_filter, 
 			strlen(DEFAULT_FILENAME_FILTER) +1);
 	strcpy(rwin.prev_filter, DEFAULT_FILENAME_FILTER);

	rwin.invert = TRUE;
	lwin.sort_type = SORT_BY_NAME;
	rwin.sort_type = SORT_BY_NAME;

	read_color_scheme_file();
}
Example #2
0
int
read_config_file(void)
{
	FILE *fp;
	char config_file[PATH_MAX];
	char line[MAX_LEN];
	char *s1 = NULL;
	char *s2 = NULL;
	char *s3 = NULL;
	char *sx = NULL;
	int args;

	snprintf(config_file, sizeof(config_file), "%s/vifmrc", cfg.config_dir);


	if((fp = fopen(config_file, "r")) == NULL)
	{
		fprintf(stdout, "Unable to find configuration file.\n Using defaults.");
		load_default_configuration();
		return 0;
	}

	while(fgets(line, MAX_LEN, fp))
	{
		args = 0;
		if(line[0] == '#')
			continue;

		if((sx = s1 = strchr(line, '=')) != NULL)
		{
			s1++;
			chomp(s1);
			*sx = '\0';
			args = 1;
		}
		else
			continue;
		if((sx = s2 = strchr(s1, '=')) != NULL)
		{
			s2++;
			chomp(s2);
			*sx = '\0';
			args = 2;
		}
		/* COMMAND is handled here so that the command can have an '=' */
		if(!strcmp(line, "COMMAND"))
			add_command(s1, s2);
		else if((args == 2) && ((sx = s3 = strchr(s2, '=')) != NULL))
		{
			s3++;
			chomp(s3);
			*sx = '\0';
			args = 3;
		}
		if(args == 1)
		{
			if(!strcmp(line, "VI_COMMAND"))
			{
				if(cfg.vi_command != NULL)
					free(cfg.vi_command);

				cfg.vi_command = strdup(s1);
				continue;
			}

			if(!strcmp(line, "USE_TRASH"))
			{
				cfg.use_trash = atoi(s1);
				continue;
			}
			if(!strcmp(line, "USE_ONE_WINDOW"))
			{
				cfg.show_one_window = atoi(s1);
				continue;
			}
			if(!strcmp(line, "USE_SCREEN"))
			{
				cfg.use_screen = atoi(s1);
				continue;
			}
			if(!strcmp(line, "HISTORY_LENGTH"))
			{
				cfg.history_len = atoi(s1);
				continue;
			}
			if(!strcmp(line, "LEFT_WINDOW_SORT_TYPE"))
			{
				lwin.sort_type = atoi(s1);
				continue;
			}
			if(!strcmp(line, "RIGHT_WINDOW_SORT_TYPE"))
			{
				rwin.sort_type = atoi(s1);
				continue;
			}
			if(!strcmp(line, "LWIN_FILTER"))
			{
				lwin.filename_filter = (char *)realloc(lwin.filename_filter, 
				strlen(s1) +1);
				strcpy(lwin.filename_filter, s1);
				lwin.prev_filter = (char *)realloc(lwin.prev_filter, 
					strlen(s1) +1);
				strcpy(lwin.prev_filter, s1);
				continue;
			}
			if(!strcmp(line, "LWIN_INVERT"))
			{
				lwin.invert = atoi(s1);
				continue;
			}
			if(!strcmp(line, "RWIN_FILTER"))
			{
				rwin.filename_filter = (char *)realloc(rwin.filename_filter, 
				strlen(s1) +1);
				strcpy(rwin.filename_filter, s1);
				rwin.prev_filter = (char *)realloc(rwin.prev_filter, 
					strlen(s1) +1);
				strcpy(rwin.prev_filter, s1);
				continue;
			}
			if(!strcmp(line, "RWIN_INVERT"))
			{
				rwin.invert = atoi(s1);
				continue;
			}
			if(!strcmp(line, "USE_VIM_HELP"))
			{
				cfg.use_vim_help = atoi(s1);
				continue;
			}
			if(!strcmp(line, "RUN_EXECUTABLE"))
			{
				cfg.auto_execute = atoi(s1);
				continue;
			}
/*_SZ_BEGIN_*/
			if(!strcmp(line, "FUSE_HOME"))
			{
				if(cfg.fuse_home != NULL)
					free(cfg.fuse_home);

				cfg.fuse_home = strdup(s1);
				continue;
			}
/*_SZ_END_*/
		}
		if(args == 3)
		{
			if(!strcmp(line, "FILETYPE"))
			{
				add_filetype(s1, s2, s3);
				continue;
			}
			if(!strcmp(line, "BOOKMARKS"))
			{
				if(isalnum(*s1))
					add_bookmark(*s1, s2, s3);
				continue;
			}
		}
	}

	fclose(fp);

	read_color_scheme_file();

	return 1;
}
Example #3
0
static void
convert_color_schemes(const char *colorschemes_file, const char *colors_dir)
{
	read_color_scheme_file(colorschemes_file);
	write_color_schemes(colors_dir);
}