#include "converter.h"
#include "format.h"
#include "gettext.h"
-#include "lastfiles.h"
+#include "session.h"
#include "LColor.h"
#include "lyxlex.h"
#include "lyxfont.h"
#include "graphics/GraphicsTypes.h"
#include "support/convert.h"
+#include "support/environment.h"
#include "support/filetools.h"
#include "support/lstrings.h"
+#include "support/os.h"
#include "support/userinfo.h"
+namespace os = lyx::support::os;
+
using lyx::support::ascii_lowercase;
using lyx::support::bformat;
-using lyx::support::ExpandPath;
-using lyx::support::GetEnv;
-using lyx::support::LibFileSearch;
+using lyx::support::expandPath;
+using lyx::support::getEnv;
+using lyx::support::libFileSearch;
using lyx::support::token;
using std::cout;
{ "\\language_global_options", LyXRC::RC_LANGUAGE_GLOBAL_OPTIONS },
{ "\\language_package", LyXRC::RC_LANGUAGE_PACKAGE },
{ "\\language_use_babel", LyXRC::RC_LANGUAGE_USE_BABEL },
- { "\\lastfiles", LyXRC::RC_LASTFILES },
+ { "\\load_session", LyXRC::RC_LOADSESSION },
{ "\\make_backup", LyXRC::RC_MAKE_BACKUP },
{ "\\mark_foreign_language", LyXRC::RC_MARK_FOREIGN_LANGUAGE },
{ "\\num_lastfiles", LyXRC::RC_NUMLASTFILES },
{ "\\screen_font_sizes", LyXRC::RC_SCREEN_FONT_SIZES },
{ "\\screen_font_typewriter", LyXRC::RC_SCREEN_FONT_TYPEWRITER },
{ "\\screen_font_typewriter_foundry", LyXRC::RC_SCREEN_FONT_TYPEWRITER_FOUNDRY },
+ { "\\screen_geometry_height", LyXRC::RC_SCREEN_GEOMETRY_HEIGHT },
+ { "\\screen_geometry_width", LyXRC::RC_SCREEN_GEOMETRY_WIDTH },
+ { "\\screen_geometry_xysaved", LyXRC::RC_SCREEN_GEOMETRY_XYSAVED },
{ "\\screen_zoom", LyXRC::RC_SCREEN_ZOOM },
{ "\\serverpipe", LyXRC::RC_SERVERPIPE },
{ "\\set_color", LyXRC::RC_SET_COLOR },
{ "\\spell_command", LyXRC::RC_SPELL_COMMAND },
{ "\\tempdir_path", LyXRC::RC_TEMPDIRPATH },
{ "\\template_path", LyXRC::RC_TEMPLATEPATH },
+ { "\\tex_allows_spaces", LyXRC::RC_TEX_ALLOWS_SPACES },
{ "\\ui_file", LyXRC::RC_UIFILE },
{ "\\use_alt_language", LyXRC::RC_USE_ALT_LANG },
{ "\\use_escape_chars", LyXRC::RC_USE_ESC_CHARS },
{ "\\use_input_encoding", LyXRC::RC_USE_INP_ENC },
+ { "\\use_lastfilepos", LyXRC::RC_USELASTFILEPOS },
{ "\\use_personal_dictionary", LyXRC::RC_USE_PERS_DICT },
// compatibility with versions older than 1.4.0 only
{ "\\use_pspell", LyXRC::RC_USE_SPELL_LIB },
ui_file = "default";
// Get printer from the environment. If fail, use default "",
// assuming that everything is set up correctly.
- printer = GetEnv("PRINTER");
+ printer = getEnv("PRINTER");
print_adapt_output = false;
print_command = "dvips";
print_evenpage_flag = "-B";
print_paper_flag = "-t";
print_paper_dimension_flag = "-T";
document_path.erase();
- tempdir_path = "/tmp";
view_dvi_paper_option.erase();
- default_papersize = PAPER_USLETTER;
+ default_papersize = PAPER_DEFAULT;
custom_export_format = "ps";
chktex_command = "chktex -n1 -n3 -n6 -n9 -n22 -n25 -n30 -n38";
bibtex_command = "bibtex";
dpi = 75;
// Because a screen typically is wider than a piece of paper:
zoom = 150;
+ geometry_width = 0;
+ geometry_height = 0;
+ geometry_xysaved = true;
wheel_jump = 5;
// Default LaTeX font size:
font_sizes[LyXFont::SIZE_TINY] = "5.0";
ascii_linelen = 65;
num_lastfiles = maxlastfiles;
check_lastfiles = true;
+ use_lastfilepos = true;
+ load_session = true;
make_backup = true;
backupdir_path.erase();
display_graphics = lyx::graphics::ColorDisplay;
default_language = "english";
show_banner = true;
cygwin_path_fix = false;
+ tex_allows_spaces = false;
date_insert_format = "%A, %e %B %Y";
cursor_follows_scrollbar = false;
dialogs_iconify_with_main = false;
case RC_INPUT: // Include file
if (lexrc.next()) {
string const tmp =
- LibFileSearch(string(),
+ libFileSearch(string(),
lexrc.getString());
if (read(tmp)) {
lexrc.printError("Error reading "
}
}
break;
- case RC_BINDFILE: // RVDK_PATCH_5
+ case RC_BINDFILE:
if (lexrc.next()) {
- bind_file = lexrc.getString();
+ bind_file = os::internal_path(lexrc.getString());
}
break;
case RC_UIFILE:
if (lexrc.next()) {
- ui_file = lexrc.getString();
+ ui_file = os::internal_path(lexrc.getString());
}
break;
}
break;
- case RC_KBMAP:
+ case RC_CYGWIN_PATH_FIX:
if (lexrc.next()) {
- use_kbmap = lexrc.getBool();
+ cygwin_path_fix = lexrc.getBool();
}
break;
- case RC_CYGWIN_PATH_FIX:
+ case RC_TEX_ALLOWS_SPACES:
if (lexrc.next()) {
- cygwin_path_fix = lexrc.getBool();
- }
- break;
+ tex_allows_spaces = lexrc.getBool();
+ }
+ break;
+
+ case RC_KBMAP:
+ if (lexrc.next()) {
+ use_kbmap = lexrc.getBool();
+ }
+ break;
case RC_KBMAP_PRIMARY:
if (lexrc.next()) {
- string const kmap(lexrc.getString());
+ string const kmap(os::internal_path(lexrc.getString()));
if (kmap.empty()) {
// nothing
- } else if (!LibFileSearch("kbd", kmap,
+ } else if (!libFileSearch("kbd", kmap,
"kmap").empty()) {
primary_kbmap = kmap;
} else {
case RC_KBMAP_SECONDARY:
if (lexrc.next()) {
- string const kmap(lexrc.getString());
+ string const kmap(os::internal_path(lexrc.getString()));
if (kmap.empty()) {
// nothing
- } else if (!LibFileSearch("kbd", kmap,
+ } else if (!libFileSearch("kbd", kmap,
"kmap").empty()) {
secondary_kbmap = kmap;
} else {
case RC_PRINTTOFILE:
if (lexrc.next()) {
- print_to_file = lexrc.getString();
+ print_to_file = os::internal_path(lexrc.getString());
}
break;
PAPER_USLETTER;
else if (size == "legal")
default_papersize =
- PAPER_LEGALPAPER;
+ PAPER_USLEGAL;
else if (size == "executive")
default_papersize =
- PAPER_EXECUTIVEPAPER;
+ PAPER_USEXECUTIVE;
else if (size == "a3")
default_papersize =
- PAPER_A3PAPER;
+ PAPER_A3;
else if (size == "a4")
default_papersize =
- PAPER_A4PAPER;
+ PAPER_A4;
else if (size == "a5")
default_papersize =
- PAPER_A5PAPER;
+ PAPER_A5;
else if (size == "b5")
default_papersize =
- PAPER_B5PAPER;
+ PAPER_B5;
+ else if (size == "default")
+ default_papersize =
+ PAPER_DEFAULT;
}
break;
}
break;
+ case RC_SCREEN_GEOMETRY_HEIGHT:
+ if (lexrc.next()) {
+ geometry_height = lexrc.getInteger();
+ }
+ break;
+
+ case RC_SCREEN_GEOMETRY_WIDTH:
+ if (lexrc.next()) {
+ geometry_width = lexrc.getInteger();
+ }
+ break;
+
+ case RC_SCREEN_GEOMETRY_XYSAVED:
+ if (lexrc.next()) {
+ geometry_xysaved = lexrc.getBool();
+ }
+ break;
+
case RC_WHEEL_JUMP:
if (lexrc.next()) {
wheel_jump = lexrc.getInteger();
case RC_DOCUMENTPATH:
if (lexrc.next()) {
- document_path = ExpandPath(lexrc.getString());
+ document_path = os::internal_path(lexrc.getString());
+ document_path = expandPath(document_path);
}
break;
case RC_TEMPLATEPATH:
if (lexrc.next()) {
- template_path = ExpandPath(lexrc.getString());
+ template_path = os::internal_path(lexrc.getString());
+ template_path = expandPath(template_path);
}
break;
case RC_TEMPDIRPATH:
if (lexrc.next()) {
- tempdir_path = ExpandPath(lexrc.getString());
+ tempdir_path = os::internal_path(lexrc.getString());
+ tempdir_path = expandPath(tempdir_path);
}
break;
}
break;
- case RC_LASTFILES:
+ case RC_USELASTFILEPOS:
+ if (lexrc.next()) {
+ use_lastfilepos = lexrc.getBool();
+ }
+ break;
+
+ case RC_LOADSESSION:
if (lexrc.next()) {
- lastfiles = ExpandPath(lexrc.getString());
+ load_session = lexrc.getBool();
}
break;
case RC_SERVERPIPE:
if (lexrc.next()) {
- lyxpipes = ExpandPath(lexrc.getString());
+ lyxpipes = os::internal_path(lexrc.getString());
+ lyxpipes = expandPath(lyxpipes);
}
break;
break;
case RC_PERS_DICT:
if (lexrc.next()) {
- isp_pers_dict = lexrc.getString();
+ isp_pers_dict = os::internal_path(lexrc.getString());
}
break;
case RC_ESC_CHARS:
break;
case RC_BACKUPDIR_PATH:
if (lexrc.next()) {
- backupdir_path = ExpandPath(lexrc.getString());
+ backupdir_path = os::internal_path(lexrc.getString());
+ backupdir_path = expandPath(backupdir_path);
}
break;
case RC_DATE_INSERT_FORMAT:
case RC_BINDFILE:
if (ignore_system_lyxrc ||
bind_file != system_lyxrc.bind_file) {
- os << "\\bind_file " << bind_file << "\n";
+ string const path = os::external_path(bind_file);
+ os << "\\bind_file \"" << path << "\"\n";
}
//
// Misc Section
case RC_UIFILE:
if (ignore_system_lyxrc ||
ui_file != system_lyxrc.ui_file) {
- os << "\\ui_file \"" << ui_file << "\"\n";
+ string const path = os::external_path(ui_file);
+ os << "\\ui_file \"" << path << "\"\n";
}
case RC_AUTOREGIONDELETE:
if (ignore_system_lyxrc ||
os << "# The default papersize to use.\n"
<< "\\default_papersize \"";
switch (default_papersize) {
+ case PAPER_DEFAULT:
+ os << "default"; break;
case PAPER_USLETTER:
os << "usletter"; break;
- case PAPER_LEGALPAPER:
+ case PAPER_USLEGAL:
os << "legal"; break;
- case PAPER_EXECUTIVEPAPER:
+ case PAPER_USEXECUTIVE:
os << "executive"; break;
- case PAPER_A3PAPER:
+ case PAPER_A3:
os << "a3"; break;
- case PAPER_A4PAPER:
+ case PAPER_A4:
os << "a4"; break;
- case PAPER_A5PAPER:
+ case PAPER_A5:
os << "a5"; break;
- case PAPER_B5PAPER:
+ case PAPER_B5:
os << "b5"; break;
- case PAPER_DEFAULT: break;
+ case PAPER_CUSTOM:
+ case PAPER_B3:
+ case PAPER_B4: break;
}
os << "\"\n";
}
index_command != system_lyxrc.index_command) {
os << "\\index_command \"" << index_command << "\"\n";
}
- case RC_KBMAP:
- if (ignore_system_lyxrc ||
- use_kbmap != system_lyxrc.use_kbmap) {
- os << "\\kbmap " << convert<string>(use_kbmap) << '\n';
- }
-
case RC_CYGWIN_PATH_FIX:
if (ignore_system_lyxrc ||
cygwin_path_fix != system_lyxrc.cygwin_path_fix) {
os << "\\cygwin_path_fix_needed "
<< convert<string>(cygwin_path_fix) << '\n';
}
+ case RC_TEX_ALLOWS_SPACES:
+ if (tex_allows_spaces != system_lyxrc.tex_allows_spaces) {
+ os << "\\tex_allows_spaces "
+ << convert<string>(tex_allows_spaces) << '\n';
+ }
+ case RC_KBMAP:
+ if (ignore_system_lyxrc ||
+ use_kbmap != system_lyxrc.use_kbmap) {
+ os << "\\kbmap " << convert<string>(use_kbmap) << '\n';
+ }
case RC_KBMAP_PRIMARY:
if (ignore_system_lyxrc ||
primary_kbmap != system_lyxrc.primary_kbmap) {
- os << "\\kbmap_primary \"" << primary_kbmap << "\"\n";
+ string const path = os::external_path(primary_kbmap);
+ os << "\\kbmap_primary \"" << path << "\"\n";
}
case RC_KBMAP_SECONDARY:
if (ignore_system_lyxrc ||
secondary_kbmap != system_lyxrc.secondary_kbmap) {
- os << "\\kbmap_secondary \"" << secondary_kbmap
- << "\"\n";
+ string const path = os::external_path(secondary_kbmap);
+ os << "\\kbmap_secondary \"" << path << "\"\n";
}
case RC_SERVERPIPE:
if (ignore_system_lyxrc ||
lyxpipes != system_lyxrc.lyxpipes) {
- os << "\\serverpipe \"" << lyxpipes << "\"\n";
+ string const path = os::external_path(lyxpipes);
+ os << "\\serverpipe \"" << path << "\"\n";
}
case RC_DATE_INSERT_FORMAT:
if (ignore_system_lyxrc ||
zoom != system_lyxrc.zoom) {
os << "\\screen_zoom " << zoom << '\n';
}
+ case RC_SCREEN_GEOMETRY_HEIGHT:
+ if (ignore_system_lyxrc ||
+ geometry_height != system_lyxrc.geometry_height) {
+ os << "\\screen_geometry_height " << geometry_height
+ << '\n';
+ }
+ case RC_SCREEN_GEOMETRY_WIDTH:
+ if (ignore_system_lyxrc ||
+ geometry_width != system_lyxrc.geometry_width) {
+ os << "\\screen_geometry_width " << geometry_width
+ << '\n';
+ }
+ case RC_SCREEN_GEOMETRY_XYSAVED:
+ if (ignore_system_lyxrc ||
+ geometry_xysaved != system_lyxrc.geometry_xysaved) {
+ os << "\\screen_geometry_xysaved " << convert<string>(geometry_xysaved)
+ << '\n';
+ }
case RC_WHEEL_JUMP:
if (ignore_system_lyxrc ||
wheel_jump != system_lyxrc.wheel_jump) {
case RC_PRINTTOFILE:
if (ignore_system_lyxrc ||
print_to_file != system_lyxrc.print_to_file) {
- os << "\\print_to_file \"" << print_to_file << "\"\n";
+ string const path = os::external_path(print_to_file);
+ os << "\\print_to_file \"" << path << "\"\n";
}
case RC_PRINTFILEEXTENSION:
if (ignore_system_lyxrc ||
case RC_DOCUMENTPATH:
if (ignore_system_lyxrc ||
document_path != system_lyxrc.document_path) {
- os << "\\document_path \"" << document_path << "\"\n";
+ string const path = os::external_path(document_path);
+ os << "\\document_path \"" << path << "\"\n";
}
- case RC_LASTFILES:
+ case RC_USELASTFILEPOS:
if (ignore_system_lyxrc ||
- lastfiles != system_lyxrc.lastfiles) {
- os << "\\lastfiles \"" << lastfiles << "\"\n";
+ use_lastfilepos != system_lyxrc.use_lastfilepos) {
+ os << "\\use_session " << convert<string>(use_lastfilepos)
+ << '\n';
+ }
+ case RC_LOADSESSION:
+ if (ignore_system_lyxrc ||
+ load_session != system_lyxrc.load_session) {
+ os << "\\load_session " << convert<string>(load_session)
+ << "\n";
}
case RC_NUMLASTFILES:
if (ignore_system_lyxrc ||
case RC_TEMPLATEPATH:
if (ignore_system_lyxrc ||
template_path != system_lyxrc.template_path) {
- os << "\\template_path \"" << template_path << "\"\n";
+ string const path = os::external_path(template_path);
+ os << "\\template_path \"" << path << "\"\n";
}
case RC_TEMPDIRPATH:
if (ignore_system_lyxrc ||
tempdir_path != system_lyxrc.tempdir_path) {
- os << "\\tempdir_path \"" << tempdir_path << "\"\n";
+ string const path = os::external_path(tempdir_path);
+ os << "\\tempdir_path \"" << path << "\"\n";
}
case RC_USETEMPDIR:
// Ignore it
case RC_BACKUPDIR_PATH:
if (ignore_system_lyxrc ||
backupdir_path != system_lyxrc.backupdir_path) {
- os << "\\backupdir_path \"" << backupdir_path << "\"\n";
+ string const path = os::external_path(backupdir_path);
+ os << "\\backupdir_path \"" << path << "\"\n";
}
os << "\n#\n"
}
case RC_PERS_DICT:
if (isp_pers_dict != system_lyxrc.isp_pers_dict) {
- os << "\\personal_dictionary \"" << isp_pers_dict
- << "\"\n";
+ string const path = os::external_path(isp_pers_dict);
+ os << "\\personal_dictionary \"" << path << "\"\n";
}
case RC_USE_INP_ENC:
if (ignore_system_lyxrc ||
break;
case RC_ASCIIROFF_COMMAND:
- str = _("Use to define an external program to render tables in the ASCII output. E.g. \"groff -t -Tlatin1 $$FName\" where $$FName is the input file. If \"none\" is specified, an internal routine is used.");
+ str = _("Use to define an external program to render tables in plain text output. E.g. \"groff -t -Tlatin1 $$FName\" where $$FName is the input file. If \"none\" is specified, an internal routine is used.");
break;
case RC_ASCII_LINELEN:
- str = _("This is the maximum line length of an exported ASCII file (LaTeX, SGML or plain text).");
+ str = _("This is the maximum line length of an exported text file (LaTeX, SGML or plain text).");
break;
case RC_AUTOREGIONDELETE:
str = _("De-select if you don't want babel to be used when the language of the document is the default language.");
break;
- case RC_LASTFILES:
- str = _("The file where the last-files information should be stored.");
+ case RC_USELASTFILEPOS:
+ str = _("De-select if you do not want LyX to scroll to saved position.");
+ break;
+
+ case RC_LOADSESSION:
+ str = _("De-select to prevent loading files opened from the last lyx session.");
break;
case RC_MAKE_BACKUP:
break;
case RC_PATH_PREFIX:
+ str = _("Specify those directories which should be "
+ "prepended to the PATH environment variable. "
+ "Use the OS native format.");
break;
case RC_PERS_DICT:
str = _("The zoom percentage for screen fonts. A setting of 100% will make the fonts roughly the same size as on paper.");
break;
+ case RC_SCREEN_GEOMETRY_HEIGHT:
+ case RC_SCREEN_GEOMETRY_WIDTH:
+ str = _("Specify geometry of the main view in width x height (values from last session will not be used if non-zero values are specified).");
+ break;
+
+ case RC_SCREEN_GEOMETRY_XYSAVED:
+ str = _("Allow session manager to save and restore windows position.");
+ break;
+
case RC_SERVERPIPE:
str = _("This starts the lyxserver. The pipes get an additional extension \".in\" and \".out\". Only for advanced users.");
break;
break;
case RC_SPELL_COMMAND:
- str = _("What command runs the spell checker?");
+ str = _("What command runs the spellchecker?");
break;
case RC_TEMPDIRPATH:
str = _("The path that LyX will set when offering to choose a template. An empty value selects the directory LyX was started from.");
break;
+ case RC_TEX_ALLOWS_SPACES:
+ break;
+
case RC_UIFILE:
str = _("The UI (user interface) file. Can either specify an absolute path, or LyX will look in its global and local ui/ directories.");
break;
break;
case RC_USE_INP_ENC:
- str = _("Specify whether to pass the -T input encoding option to ispell. Enable this if you can't spellcheck words with international letters in them. This may not work with all dictionaries.");
+ str = _("Specify whether to pass the -T input encoding option to ispell. Enable this if you cannot check the spelling of words containing accented letters. This may not work with all dictionaries.");
break;
case RC_USE_SPELL_LIB: