NumeRe v1.1.4
NumeRe: Framework für Numerische Rechnungen
settings.cpp
Go to the documentation of this file.
1/*****************************************************************************
2 NumeRe: Framework fuer Numerische Rechnungen
3 Copyright (C) 2014 Erik Haenel et al.
4
5 This program is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation, either version 3 of the License, or
8 (at your option) any later version.
9
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with this program. If not, see <http://www.gnu.org/licenses/>.
17******************************************************************************/
18
19
20#include "settings.hpp"
21#include "../kernel.hpp"
22
23#include <fstream>
24
25int StrToInt(const std::string&);
26int findParameter(const std::string& sCmd, const std::string& sParam, const char cFollowing);
27void StripSpaces(std::string&);
28
29/*
30 * Realisierung der Klasse Settings
31 */
32
33
40{
72
156
157
158 sSettings_ini = "numere.ini";
159}
160
161
171{
172 copySettings(_settings);
173}
174
175
187void Settings::save(const std::string& _sWhere, bool bMkBackUp)
188{
189 std::fstream Settings_ini;
190 std::string sExecutablePath = _sWhere + "\\" + sSettings_ini;
191
192 if (bMkBackUp)
193 sExecutablePath += ".back";
194
195 // Open config file
196 Settings_ini.open(sExecutablePath.c_str(), std::ios_base::out | std::ios_base::trunc);
197
198 // Ensure that the file is writeable
199 if (Settings_ini.fail())
200 {
201 NumeReKernel::print("ERROR: Could not save your configuration.");
202 Settings_ini.close();
203 return;
204 }
205
206 // Write the header for the current configuration
207 // file version
208 Settings_ini << "# NUMERE-CONFIG-1x-SERIES\n";
209 Settings_ini << "# =======================\n";
210 Settings_ini << "# !!! DO NOT MODIFY THIS FILE UNLESS YOU KNOW THE CONSEQUENCES!!!\n#\n";
211 Settings_ini << "# This file contains the configuration of NumeRe. This configuration is incompatible\n";
212 Settings_ini << "# to versions prior to v 1.1.2.\n";
213 Settings_ini << "# If you experience issues resulting form erroneous configurations, you may delete\n";
214 Settings_ini << "# this and all other INI files in this directory. Delete also the numere.ini.back\n";
215 Settings_ini << "# file for a complete reset. All configuration values will of course get lost during\n";
216 Settings_ini << "# this process.\n#\n";
217 Settings_ini << "# (relative paths are anchored in NumeRe's root directory):" << std::endl;
218
219 // Write the setting values to the file. The values
220 // are structured by their names and therefore will be
221 // grouped together automatically
222 for (auto iter = m_settings.begin(); iter != m_settings.end(); ++iter)
223 {
224 // Ensure that the setting shall be saved
225 if (iter->second.shallSave())
226 {
227 // Write setting value identifier string
228 Settings_ini << iter->first + "=";
229
230 // Write the value
231 switch (iter->second.getType())
232 {
234 Settings_ini << (iter->second.active() ? "true" : "false") << std::endl;
235 break;
237 Settings_ini << iter->second.value() << std::endl;
238 break;
240 Settings_ini << replaceExePath(iter->second.stringval()) << std::endl;
241 break;
243 break;
244 }
245 }
246 }
247
248 // Write a footer line
249 Settings_ini << "#\n# End of configuration file" << std::endl;
250
251 // Close the file stream
252 Settings_ini.close();
253
254 if (!bMkBackUp)
255 NumeReKernel::print(toSystemCodePage(_lang.get("SETTINGS_SAVE_SUCCESS"))+"\n");
256}
257
258
267void Settings::import_v1x(const std::string& sSettings)
268{
269 // Separate identifier and corresponding value
270 std::string id = sSettings.substr(0, sSettings.find('='));
271 std::string value = sSettings.substr(sSettings.find('=')+1);
272
273 // Search for the identifier
274 auto iter = m_settings.find(id);
275
276 // If the identifier exists, import
277 // the value
278 if (iter != m_settings.end())
279 {
280 switch (iter->second.getType())
281 {
283 iter->second.active() = value == "true" ? true : false;
284 break;
286 iter->second.value() = (size_t)StrToInt(value);
287 break;
289 iter->second.stringval() = value;
290 break;
292 break;
293 }
294 }
295}
296
297
306bool Settings::set(const std::string& _sOption)
307{
308 /* --> Im Wesentlichen immer dasselbe: wenn der Parameter "-PARAM=" in der Zeile auftaucht,
309 * verwende alles danach (bis zum Ende der Zeile) als Wert der entsprechenden Einstellung <--
310 */
311 if (findParameter(_sOption, "savepath", '='))
312 {
313 std::string sSavePath = _sOption.substr(_sOption.find('=')+1);
314 StripSpaces(sSavePath);
315
316 if (sSavePath.length())
317 {
318 while (sSavePath.find('\\') != std::string::npos)
319 sSavePath[sSavePath.find('\\')] = '/';
320
321 m_settings[SETTING_S_SAVEPATH].stringval() = sSavePath;
322 return true;
323 }
324 }
325 else if (findParameter(_sOption, "loadpath", '='))
326 {
327 std::string sLoadPath = _sOption.substr(_sOption.find('=')+1);
328 StripSpaces(sLoadPath);
329
330 if (sLoadPath.length())
331 {
332 while (sLoadPath.find('\\') != std::string::npos)
333 sLoadPath[sLoadPath.find('\\')] = '/';
334
335 m_settings[SETTING_S_LOADPATH].stringval() = sLoadPath;
336 return true;
337 }
338 }
339 else if (findParameter(_sOption, "plotpath", '='))
340 {
341 std::string sPlotOutputPath = _sOption.substr(_sOption.find('=')+1);
342 StripSpaces(sPlotOutputPath);
343
344 if (sPlotOutputPath.length())
345 {
346 while (sPlotOutputPath.find('\\') != std::string::npos)
347 sPlotOutputPath[sPlotOutputPath.find('\\')] = '/';
348
349 m_settings[SETTING_S_PLOTPATH].stringval() = sPlotOutputPath;
350 return true;
351 }
352 }
353 else if (findParameter(_sOption, "scriptpath", '='))
354 {
355 std::string sScriptpath = _sOption.substr(_sOption.find('=')+1);
356 StripSpaces(sScriptpath);
357
358 if (sScriptpath.length())
359 {
360 while (sScriptpath.find('\\') != std::string::npos)
361 sScriptpath[sScriptpath.find('\\')] = '/';
362
363 m_settings[SETTING_S_SCRIPTPATH].stringval() = sScriptpath;
364 return true;
365 }
366 }
367 else if (findParameter(_sOption, "procpath", '='))
368 {
369 std::string sProcsPath = _sOption.substr(_sOption.find('=')+1);
370 StripSpaces(sProcsPath);
371
372 if (sProcsPath.length())
373 {
374 while (sProcsPath.find('\\') != std::string::npos)
375 sProcsPath[sProcsPath.find('\\')] = '/';
376
377 m_settings[SETTING_S_PROCPATH].stringval() = sProcsPath;
378 return true;
379 }
380 }
381 else if (findParameter(_sOption, "precision", '='))
382 {
383 size_t nPrecision = StrToInt(_sOption.substr(_sOption.find('=')+1));
384
385 if (nPrecision > 0 && nPrecision < 15)
386 {
387 m_settings[SETTING_V_PRECISION].value() = nPrecision;
388 return true;
389 }
390 }
391 else if (findParameter(_sOption, "greeting", '='))
392 {
393 m_settings[SETTING_B_GREETING].active() = (bool)StrToInt(_sOption.substr(_sOption.find('=')+1));
394 return true;
395 }
396 else if (findParameter(_sOption, "hints", '='))
397 {
398 m_settings[SETTING_B_SHOWHINTS].active() = (bool)StrToInt(_sOption.substr(_sOption.find('=')+1));
399 return true;
400 }
401 else if (findParameter(_sOption, "escinscripts", '='))
402 {
403 m_settings[SETTING_B_USEESCINSCRIPTS].active() = (bool)StrToInt(_sOption.substr(_sOption.find('=')+1));
404 return true;
405 }
406 else if (findParameter(_sOption, "usedraftmode", '='))
407 {
408 m_settings[SETTING_B_DRAFTMODE].active() = (bool)StrToInt(_sOption.substr(_sOption.find('=')+1));
409 return true;
410 }
411 else if (findParameter(_sOption, "plotfont", '='))
412 {
413 std::string sDefaultfont = _sOption.substr(_sOption.find('=')+1);
414
415 if (sDefaultfont == "palatino")
416 sDefaultfont = "pagella";
417
418 if (sDefaultfont == "times")
419 sDefaultfont = "termes";
420
421 if (sDefaultfont == "bookman")
422 sDefaultfont = "bonum";
423
424 if (sDefaultfont == "avantgarde")
425 sDefaultfont = "adventor";
426
427 if (sDefaultfont == "chancery")
428 sDefaultfont = "chorus";
429
430 if (sDefaultfont == "courier")
431 sDefaultfont = "cursor";
432
433 if (sDefaultfont == "helvetica")
434 sDefaultfont = "heros";
435
436 if (sDefaultfont == "pagella"
437 || sDefaultfont == "adventor"
438 || sDefaultfont == "bonum"
439 || sDefaultfont == "chorus"
440 || sDefaultfont == "cursor"
441 || sDefaultfont == "heros"
442 || sDefaultfont == "heroscn"
443 || sDefaultfont == "schola"
444 || sDefaultfont == "termes"
445 )
446 {
447 m_settings[SETTING_S_PLOTFONT].stringval() = sDefaultfont;
448 return true;
449 }
450 }
451 else if (findParameter(_sOption, "usecompacttables", '='))
452 {
453 m_settings[SETTING_B_COMPACT].active() = (bool)StrToInt(_sOption.substr(_sOption.find('=')+1));
454 return true;
455 }
456 else if (findParameter(_sOption, "usecustomlangfile", '='))
457 {
458 m_settings[SETTING_B_USECUSTOMLANG].active() = (bool)StrToInt(_sOption.substr(_sOption.find('=')+1));
459 return true;
460 }
461 else if (findParameter(_sOption, "useexternaldocviewer", '=') || findParameter(_sOption, "useexternalviewer", '='))
462 {
463 m_settings[SETTING_B_EXTERNALDOCWINDOW].active() = (bool)StrToInt(_sOption.substr(_sOption.find('=')+1));
464 return true;
465 }
466 else if (findParameter(_sOption, "useexecutecommand", '='))
467 {
468 m_settings[SETTING_B_ENABLEEXECUTE].active() = (bool)StrToInt(_sOption.substr(_sOption.find('=')+1));
469 return true;
470 }
471 else if (findParameter(_sOption, "usemaskasdefault", '='))
472 {
473 m_settings[SETTING_B_MASKDEFAULT].active() = (bool)StrToInt(_sOption.substr(_sOption.find('=')+1));
474 return true;
475 }
476 else if (findParameter(_sOption, "trytodecodeprocedurearguments", '='))
477 {
478 m_settings[SETTING_B_DECODEARGUMENTS].active() = (bool)StrToInt(_sOption.substr(_sOption.find('=')+1));
479 return true;
480 }
481 else if (findParameter(_sOption, "extendedfileinfo", '='))
482 {
483 m_settings[SETTING_B_EXTENDEDFILEINFO].active() = (bool)StrToInt(_sOption.substr(_sOption.find('=')+1));
484 return true;
485 }
486 else if (findParameter(_sOption, "uselogfile", '='))
487 {
488 m_settings[SETTING_B_LOGFILE].active() = (bool)StrToInt(_sOption.substr(_sOption.find('=')+1));
489 return true;
490 }
491 else if (findParameter(_sOption, "loademptycols", '='))
492 {
493 m_settings[SETTING_B_LOADEMPTYCOLS].active() = (bool)StrToInt(_sOption.substr(_sOption.find('=')+1));
494 return true;
495 }
496 else if (findParameter(_sOption, "autosaveinterval", '='))
497 {
498 size_t nAutoSaveInterval = StrToInt(_sOption.substr(_sOption.find('=')+1));
499
500 if (nAutoSaveInterval)
501 {
502 m_settings[SETTING_V_AUTOSAVE].value() = nAutoSaveInterval;
503 return true;
504 }
505 }
506 else if (findParameter(_sOption, "buffersize", '='))
507 {
508 size_t nBuffer_y = (size_t)StrToInt(_sOption.substr(_sOption.find(',')+1));
509
510 if (nBuffer_y >= 300)
511 {
512 m_settings[SETTING_V_BUFFERSIZE].value() = nBuffer_y;
513 return true;
514 }
515 }
516 else if (findParameter(_sOption, "windowsize", '='))
517 {
518 size_t nWindow_x = (size_t)StrToInt(_sOption.substr(_sOption.find('=')+1,_sOption.find(',')));
519 size_t nWindow_y = (size_t)StrToInt(_sOption.substr(_sOption.find(',')+1));
520
521 if (nWindow_x >= 80 && nWindow_y >= 34)
522 {
523 m_settings[SETTING_V_WINDOW_X].value() = nWindow_x;
524 m_settings[SETTING_V_WINDOW_Y].value() = nWindow_y;
525 return true;
526 }
527 }
528 else if (findParameter(_sOption, "defcontrol", '='))
529 {
530 m_settings[SETTING_B_DEFCONTROL].active() = (bool)StrToInt(_sOption.substr(_sOption.find('=')+1));
531 return true;
532 }
533
534 /* --> Taucht ein Fehler auf (ein Wert kann nicht korrekt identifziziert werden),
535 * oder gibt's den Parameter in dieser Liste nicht, dann
536 * gib' FALSE zurueck <--
537 */
538 return false;
539}
540
541
552std::string Settings::replaceExePath(const std::string& _sPath)
553{
554 const std::string& sPath = m_settings[SETTING_S_EXEPATH].stringval();
555 std::string sReturn = _sPath;
556
557 if (sReturn.find(sPath) != std::string::npos)
558 sReturn.replace(sReturn.find(sPath), sPath.length(), "<>");
559
560 return sReturn;
561}
562
563
574void Settings::prepareFilePaths(const std::string& _sExePath)
575{
576 if (m_settings[SETTING_S_EXEPATH].stringval() == "./" || m_settings[SETTING_S_EXEPATH].stringval() == "<>")
577 m_settings[SETTING_S_EXEPATH].stringval() = _sExePath;
578
579 m_settings[SETTING_S_WORKPATH].stringval() = m_settings[SETTING_S_EXEPATH].stringval();
580
581 if (m_settings[SETTING_S_LOADPATH].stringval().substr(0, 3) == "<>/")
582 m_settings[SETTING_S_LOADPATH].stringval().replace(0, 2, _sExePath);
583
584 if (m_settings[SETTING_S_SAVEPATH].stringval().substr(0, 3) == "<>/")
585 m_settings[SETTING_S_SAVEPATH].stringval().replace(0, 2, _sExePath);
586
587 if (m_settings[SETTING_S_PLOTPATH].stringval().substr(0, 3) == "<>/")
588 m_settings[SETTING_S_PLOTPATH].stringval().replace(0, 2, _sExePath);
589
590 if (m_settings[SETTING_S_SCRIPTPATH].stringval().substr(0, 3) == "<>/")
591 m_settings[SETTING_S_SCRIPTPATH].stringval().replace(0, 2, _sExePath);
592
593 if (m_settings[SETTING_S_PROCPATH].stringval().substr(0, 3) == "<>/")
594 m_settings[SETTING_S_PROCPATH].stringval().replace(0, 2, _sExePath);
595}
596
597
607void Settings::load(const std::string& _sWhere)
608{
609 std::ifstream Settings_ini;
610 std::string s;
611
612 std::string sExecutablePath = _sWhere + "\\" + sSettings_ini;
613
614 // Open the configuration file
615 Settings_ini.open(sExecutablePath.c_str());
616
617 // If the file is not readable, try the *.ini.back
618 // file as fallback
619 if (Settings_ini.fail())
620 {
621 Settings_ini.close();
622 Settings_ini.clear();
623 Settings_ini.open((sExecutablePath+".back").c_str(), std::ios_base::in);
624
625 if (Settings_ini.fail())
626 {
627 NumeReKernel::printPreFmt(" -> NOTE: Could not find the configuration file \"" + sSettings_ini + "\".\n");
628 NumeReKernel::printPreFmt(" Loading default settings.\n");
629 Sleep(500);
630 Settings_ini.close();
631
632 prepareFilePaths(_sWhere);
633
634 return;
635 }
636 }
637
638 // Read the first line
639 std::getline(Settings_ini,s);
640
641 // Ensure that the file contains some
642 // strings
643 if (Settings_ini.eof() || Settings_ini.fail())
644 return;
645
646 // Identify the version of the configuration
647 // file and use the corresponding importing
648 // member function
649 if (s == "# NUMERE-CONFIG-1x-SERIES")
650 {
651 // Read every line of the file and
652 // import the values
653 while (!Settings_ini.eof())
654 {
655 std::getline(Settings_ini, s);
656
657 // Ignore empty lines or comments
658 if (!s.length() || s[0] == '#')
659 continue;
660
661 import_v1x(s);
662 }
663 }
664 else if (s == "# NUMERE-CONFIG-09-SERIES")
665 {
666 // Read every line of the file and
667 // import the values
668 while (!Settings_ini.eof())
669 {
670 std::getline(Settings_ini, s);
671
672 // Ignore empty lines or comments
673 if (!s.length() || s[0] == '#')
674 continue;
675
676 // --> Gib die Zeile an die Methode "set()" weiter <--
677 if (!Settings::set(s))
678 {
679 // --> FALSE wird nur dann zurueckgegeben, wenn ein Fehler auftaucht, oder ein Parameter unbekannt ist <--
680 NumeReKernel::printPreFmt("\n -> NOTE: The setting \"" + s + "\" is not known and will be ignored.\n");
681 Sleep(500);
682 continue;
683 }
684 }
685 }
686 else
687 {
688 // This is a legacy format before v0.9.x
689 std::getline(Settings_ini, s);
690 std::getline(Settings_ini, s);
692 std::getline(Settings_ini, s);
693 std::getline(Settings_ini, m_settings[SETTING_S_LOADPATH].stringval());
694 std::getline(Settings_ini, s);
695 std::getline(Settings_ini, m_settings[SETTING_S_SAVEPATH].stringval());
696
697 if (!Settings_ini.eof())
698 {
699 for (size_t i = 0; i < 6; i++)
700 std::getline(Settings_ini, s);
701
702 if (s.length())
703 m_settings[SETTING_B_COMPACT].active() = (bool)StrToInt(s);
704 }
705
706 if (!Settings_ini.eof())
707 {
708 std::getline(Settings_ini, s);
709 std::getline(Settings_ini, s);
710
711 if (s.length())
713 }
714
715 if (!Settings_ini.eof())
716 {
717 std::getline(Settings_ini, s);
718 std::getline(Settings_ini, s);
719
720 if (s.length())
721 m_settings[SETTING_S_PLOTPATH].stringval() = s;
722 }
723 }
724
725 prepareFilePaths(_sWhere);
726
727 Settings::save(_sWhere, true);
728 //NumeReKernel::printPreFmt(" -> Configuration loaded successful.");
729}
730
731
740void Settings::copySettings(const Settings& _settings)
741{
742 m_settings = _settings.m_settings;
743 setTokens(_settings.getTokenPaths());
744}
745
746
This class handles the documentation index and provides lookup functionalities to obtain the correspo...
Definition: doc_helper.hpp:39
std::string sPath
Definition: filesystem.hpp:98
std::string sExecutablePath
Definition: filesystem.hpp:99
void setTokens(std::string _sTokens)
This member function may be used to update the path placeholders of the current FileSystem instance.
Definition: filesystem.cpp:694
std::string get(const std::string &sMessage, const std::vector< std::string > &vTokens) const
This member function returns the language string for the passed language identifier and replaces all ...
Definition: language.cpp:292
static void printPreFmt(const std::string &__sLine, bool printingEnabled=true)
This member function appends the pre- formatted string to the buffer and informs the terminal that we...
Definition: kernel.cpp:2683
static void print(const std::string &__sLine, bool printingEnabled=true)
This member function appends the passed string as a new output line to the buffer and informs the ter...
Definition: kernel.cpp:2636
This class manages the setting values of the internal (kernel) settings of this application.
Definition: settings.hpp:663
std::map< std::string, SettingsValue > m_settings
Definition: settings.hpp:676
void import_v1x(const std::string &sSettings)
Imports a setting value string from a v1.x configuration file.
Definition: settings.cpp:267
std::string getTokenPaths() const
Returns a semicolon-separated list of the current defined path placeholders and their values.
Definition: settings.hpp:1122
std::string sSettings_ini
Definition: settings.hpp:665
Settings()
Settings class default constructor. Creates and fills the internal setting value map with their defau...
Definition: settings.cpp:39
void prepareFilePaths(const std::string &_sExePath)
This member function is a helper, which will replace the <> path token in all default file paths with...
Definition: settings.cpp:574
bool set(const std::string &)
Imports a setting value from a v0.9x configuration file.
Definition: settings.cpp:306
void copySettings(const Settings &_settings)
This member function is an alias for the assignment operator overload.
Definition: settings.cpp:740
std::string replaceExePath(const std::string &_sPath)
This member function is a helper, which will replace the executable path part in the passed file path...
Definition: settings.cpp:552
void load(const std::string &_sWhere)
Opens the configuration file, identifies its version and imports the setting values.
Definition: settings.cpp:607
void save(const std::string &_sWhere, bool bMkBackUp=false)
Saves the setting values to the corresponding config file. Does only save the setting values,...
Definition: settings.cpp:187
This class represents a single abstract settings value implemented as void*. We're using asserts to a...
Definition: settings.hpp:193
Language _lang
Definition: kernel.cpp:39
std::string toSystemCodePage(std::string)
Converts an internal to an external string. Does nothing currently.
CONSTCD11 std::enable_if<!std::chrono::treat_as_floating_point< T >::value, T >::type trunc(T t) NOEXCEPT
Definition: date.h:1113
void StripSpaces(std::string &)
Removes leading and trailing white spaces and tabulator characters.
int StrToInt(const std::string &)
Converts a string into an integer.
int findParameter(const std::string &sCmd, const std::string &sParam, const char cFollowing)
This function searches the passed parameter in the passed command string. If something is found,...
Definition: tools.cpp:113
#define SETTING_B_SMARTSENSE
Definition: settings.hpp:100
#define SETTING_B_TOOLBARTEXT
Definition: settings.hpp:76
#define DEFAULT_ST_DOCCOMMENT
Definition: settings.hpp:156
#define DEFAULT_ST_ACTIVELINE
Definition: settings.hpp:173
#define SETTING_B_SAVEBOOKMARKS
Definition: settings.hpp:86
#define DEFAULT_ST_STANDARD
Definition: settings.hpp:151
#define SETTING_B_ICONSONTABS
Definition: settings.hpp:78
#define SETTING_S_ST_FUNCTION
Definition: settings.hpp:134
#define SETTING_B_AN_CONSTANTS
Definition: settings.hpp:120
#define SETTING_S_ST_CLUSTER
Definition: settings.hpp:136
#define SETTING_B_AN_USEERRORS
Definition: settings.hpp:105
#define SETTING_V_POS_SASH_T
Definition: settings.hpp:81
#define SETTING_B_USEREVISIONS
Definition: settings.hpp:88
#define SETTING_V_PRECISION
Definition: settings.hpp:51
#define SETTING_S_ST_PROCCOMMAND
Definition: settings.hpp:129
#define DEFAULT_ST_OPERATOR
Definition: settings.hpp:167
#define SETTING_B_AN_GLOBALVARS
Definition: settings.hpp:119
#define SETTING_B_AN_TYPING
Definition: settings.hpp:115
#define DEFAULT_ST_PROCEDURE
Definition: settings.hpp:168
#define SETTING_B_AN_PROCLENGTH
Definition: settings.hpp:122
#define DEFAULT_ST_OPTION
Definition: settings.hpp:158
#define DEFAULT_ST_FUNCTION
Definition: settings.hpp:159
#define SETTING_B_GREETING
Definition: settings.hpp:50
#define SETTING_B_AN_INLINEIF
Definition: settings.hpp:121
#define SETTING_B_AN_START
Definition: settings.hpp:102
#define SETTING_B_QUOTEAUTOCOMP
Definition: settings.hpp:98
#define SETTING_B_BLOCKAUTOCOMP
Definition: settings.hpp:99
#define SETTING_B_MASKDEFAULT
Definition: settings.hpp:48
#define SETTING_S_PLOTFONT
Definition: settings.hpp:65
#define DEFAULT_ST_CLUSTER
Definition: settings.hpp:161
#define SETTING_B_FORMATBEFORESAVING
Definition: settings.hpp:87
#define SETTING_S_ST_INCLUDES
Definition: settings.hpp:141
#define SETTING_S_EDITORFONT
Definition: settings.hpp:101
#define SETTING_S_LATEXROOT
Definition: settings.hpp:68
#define SETTING_S_ST_ACTIVELINE
Definition: settings.hpp:148
#define SETTING_S_ST_OPTION
Definition: settings.hpp:133
#define DEFAULT_ST_NUMBER
Definition: settings.hpp:169
#define SETTING_V_AUTOSAVE
Definition: settings.hpp:57
#define DEFAULT_ST_COMMAND
Definition: settings.hpp:153
#define SETTING_B_TABLEREFS
Definition: settings.hpp:45
#define SETTING_V_FOCUSEDLINE
Definition: settings.hpp:70
#define SETTING_S_ST_CUSTOMFUNC
Definition: settings.hpp:135
#define SETTING_S_PROCPATH
Definition: settings.hpp:63
#define SETTING_S_ST_INSTALL
Definition: settings.hpp:146
#define SETTING_B_AN_COMMENTDENS
Definition: settings.hpp:109
#define SETTING_B_COMPACT
Definition: settings.hpp:37
#define SETTING_B_LINELENGTH
Definition: settings.hpp:95
#define SETTING_B_AN_COMPLEXITY
Definition: settings.hpp:111
#define SETTING_S_ST_METHODS
Definition: settings.hpp:145
#define SETTING_B_EXTERNALDOCWINDOW
Definition: settings.hpp:41
#define SETTING_B_AN_USENOTES
Definition: settings.hpp:103
#define SETTING_S_ST_STRINGPARSER
Definition: settings.hpp:140
#define SETTING_V_POS_SASH_V
Definition: settings.hpp:79
#define SETTING_B_SAVESASHS
Definition: settings.hpp:90
#define DEFAULT_ST_STRINGPARSER
Definition: settings.hpp:165
#define SETTING_S_ST_START
Definition: settings.hpp:125
#define SETTING_B_AN_UNDERSCOREARGS
Definition: settings.hpp:107
#define SETTING_B_AN_THISFILE
Definition: settings.hpp:108
#define SETTING_B_LOADEMPTYCOLS
Definition: settings.hpp:38
#define SETTING_S_EXEPATH
Definition: settings.hpp:58
#define SETTING_V_WINDOW_X
Definition: settings.hpp:52
#define SETTING_B_AN_PROGRESS
Definition: settings.hpp:123
#define SETTING_B_DEVELOPERMODE
Definition: settings.hpp:33
#define DEFAULT_ST_INCLUDES
Definition: settings.hpp:166
#define SETTING_B_USECUSTOMLANG
Definition: settings.hpp:40
#define SETTING_B_AN_UNUSEDVARS
Definition: settings.hpp:118
#define SETTING_S_LOADPATH
Definition: settings.hpp:60
#define SETTING_B_PROCEDUREARGS
Definition: settings.hpp:74
#define SETTING_S_ST_PROCEDURE
Definition: settings.hpp:143
#define SETTING_B_AN_FALLTHROUGH
Definition: settings.hpp:124
#define SETTING_B_PATHSONTABS
Definition: settings.hpp:77
#define DEFAULT_ST_STRING
Definition: settings.hpp:164
#define DEFAULT_ST_DEFVARS
Definition: settings.hpp:172
#define SETTING_B_AN_ALWAYSMETRICS
Definition: settings.hpp:112
#define SETTING_B_HIGHLIGHTLOCALS
Definition: settings.hpp:93
#define SETTING_B_USETABS
Definition: settings.hpp:94
#define DEFAULT_ST_SPECIALVAL
Definition: settings.hpp:163
#define SETTING_S_ST_DOCKEYWORD
Definition: settings.hpp:132
#define DEFAULT_ST_PROCCOMMAND
Definition: settings.hpp:154
#define SETTING_B_AN_LOC
Definition: settings.hpp:110
#define SETTING_S_ST_SPECIALVAL
Definition: settings.hpp:138
#define SETTING_B_AN_VARLENGTH
Definition: settings.hpp:117
#define DEFAULT_ST_METHODS
Definition: settings.hpp:170
#define SETTING_S_HISTORYFONT
Definition: settings.hpp:56
#define SETTING_B_EXTENDEDFILEINFO
Definition: settings.hpp:42
#define SETTING_B_SAVEWINDOWSIZE
Definition: settings.hpp:91
#define SETTING_B_AN_RESULTASS
Definition: settings.hpp:114
#define SETTING_S_ST_COMMENT
Definition: settings.hpp:130
#define SETTING_B_USEESCINSCRIPTS
Definition: settings.hpp:46
#define SETTING_B_LINESINSTACK
Definition: settings.hpp:71
#define SETTING_B_AUTOSAVEEXECUTION
Definition: settings.hpp:89
#define SETTING_V_BUFFERSIZE
Definition: settings.hpp:54
#define SETTING_S_ST_STANDARD
Definition: settings.hpp:126
#define DEFAULT_ST_CONSOLESTD
Definition: settings.hpp:152
#define SETTING_S_ST_STRING
Definition: settings.hpp:139
#define SETTING_B_DECODEARGUMENTS
Definition: settings.hpp:49
#define SETTING_V_WINDOW_Y
Definition: settings.hpp:53
#define SETTING_S_SAVEPATH
Definition: settings.hpp:59
#define SETTING_B_FLASHTASKBAR
Definition: settings.hpp:75
#define SETTING_S_TERMINALFONT
Definition: settings.hpp:55
#define SETTING_B_HOMEENDCANCELS
Definition: settings.hpp:96
#define DEFAULT_ST_CUSTOMFUNC
Definition: settings.hpp:160
#define DEFAULT_ST_CONSTANT
Definition: settings.hpp:162
#define SETTING_B_SYSTEMPRINTS
Definition: settings.hpp:35
#define SETTING_S_WINDOWSIZE
Definition: settings.hpp:82
#define DEFAULT_ST_COMMENT
Definition: settings.hpp:155
#define DEFAULT_ST_DOCKEYWORD
Definition: settings.hpp:157
#define SETTING_B_ENABLEEXECUTE
Definition: settings.hpp:47
#define SETTING_B_GLOBALVARS
Definition: settings.hpp:73
#define SETTING_S_ST_DEFVARS
Definition: settings.hpp:147
#define SETTING_B_DRAFTMODE
Definition: settings.hpp:36
#define DEFAULT_ST_INSTALL
Definition: settings.hpp:171
#define SETTING_S_ST_OPERATOR
Definition: settings.hpp:142
#define SETTING_S_ST_NUMBER
Definition: settings.hpp:144
#define SETTING_B_DEFCONTROL
Definition: settings.hpp:44
#define SETTING_S_WORKPATH
Definition: settings.hpp:64
#define SETTING_B_AN_RESULTSUP
Definition: settings.hpp:113
#define SETTING_S_ST_COMMAND
Definition: settings.hpp:128
#define SETTING_S_ST_CONSTANT
Definition: settings.hpp:137
#define SETTING_B_MODULESINSTACK
Definition: settings.hpp:72
#define SETTING_B_PRINTINCOLOR
Definition: settings.hpp:83
#define SETTING_S_ST_CONSOLESTD
Definition: settings.hpp:127
#define SETTING_B_SAVESESSION
Definition: settings.hpp:85
#define SETTING_B_DEBUGGER
Definition: settings.hpp:34
#define SETTING_S_PLOTPATH
Definition: settings.hpp:61
#define SETTING_B_FOLDLOADEDFILE
Definition: settings.hpp:92
#define SETTING_B_SHOWHINTS
Definition: settings.hpp:39
#define SETTING_S_SCRIPTPATH
Definition: settings.hpp:62
#define SETTING_B_AN_MISLEADINGTYPE
Definition: settings.hpp:116
#define SETTING_B_PRINTLINENUMBERS
Definition: settings.hpp:84
#define SETTING_B_AN_USEWARNINGS
Definition: settings.hpp:104
#define SETTING_B_AN_MAGICNUMBERS
Definition: settings.hpp:106
#define SETTING_V_CARETBLINKTIME
Definition: settings.hpp:69
#define SETTING_B_LOGFILE
Definition: settings.hpp:43
#define SETTING_S_ST_DOCCOMMENT
Definition: settings.hpp:131
#define SETTING_B_BRACEAUTOCOMP
Definition: settings.hpp:97
#define SETTING_V_POS_SASH_H
Definition: settings.hpp:80