]> git.lyx.org Git - lyx.git/commitdiff
tex2lyx : More descriptive --help message and implement --version (#6827).
authorJulien Rioux <jrioux@lyx.org>
Mon, 3 Oct 2011 17:47:37 +0000 (17:47 +0000)
committerJulien Rioux <jrioux@lyx.org>
Mon, 3 Oct 2011 17:47:37 +0000 (17:47 +0000)
The init_package before easyParse is necessary to initiate the default
values for userdir and sysdir, which are now part of the help message.
This step would be necessary anyway if we ever internationalize tex2lyx.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39799 a592a061-630c-0410-9148-cb99ea01b6c8

development/scons/scons_manifest.py
src/tex2lyx/CMakeLists.txt
src/tex2lyx/Makefile.am
src/tex2lyx/tex2lyx.cpp

index bb1883c4aeb967bfa064def6a2844637ca25200a..af9d0729873e1e4f613aa117549ce1e9e4015073 100644 (file)
@@ -633,6 +633,7 @@ src_tex2lyx_copied_files = Split('''
     ModuleList.cpp
     Spacing.cpp
     TextClass.cpp
+    version.cpp
     insets/InsetLayout.cpp
 ''')
 
index 49d39c4bd44c3ab8cf1f633c7bb8c68040768791..0debbeb022d96a99bf0aa38f28e54e6b530373e3 100644 (file)
@@ -13,9 +13,9 @@ set(LINKED_sources ${TOP_SRC_DIR}/src/lengthcommon.cpp)
 set(LINKED_headers)
 
 foreach(_src insets/InsetLayout Color Counters
-       Encoding FloatList Floating
+       Encoding FloatList Floating FontInfo
        Layout LayoutFile LayoutModuleList Lexer ModuleList TextClass
-       FontInfo Spacing)
+       Spacing version)
        list(APPEND LINKED_sources ${TOP_SRC_DIR}/src/${_src}.cpp)
        list(APPEND LINKED_headers ${TOP_SRC_DIR}/src/${_src}.h)
 endforeach(_src)
index ac38c8025b095e38ce41c0dfd10bf5f70bec3ac6..fc39503b90218ccaded5bedb47dfc2403590d778 100644 (file)
@@ -44,7 +44,8 @@ LINKED_FILES = \
        ../ModuleList.cpp \
        ../Spacing.cpp \
        ../TextClass.cpp \
-       ../TextClass.h
+       ../TextClass.h \
+       ../version.cpp
 
 BUILT_SOURCES = $(PCH_FILE)
 
index 8ba2c4ddecd3bce4474f2279ebe7873c3a99a7bc..d5538d8c3683b74d9e7e2f2aa08970cd74f539a9 100644 (file)
@@ -11,6 +11,7 @@
 // {[(
 
 #include <config.h>
+#include <version.h>
 
 #include "tex2lyx.h"
 
@@ -464,13 +465,33 @@ int parse_help(string const &, string const &)
                "\t-n                 translate a noweb (aka literate programming) file.\n"
                "\t-roundtrip         re-export created .lyx file infile.lyx.lyx to infile.lyx.tex.\n"
                "\t-s syntaxfile      read additional syntax file.\n"
-               "\t-sysdir dir        Set system directory to DIR.\n"
-               "\t-userdir DIR       Set user directory to DIR."
+               "\t-sysdir SYSDIR     Set system directory to SYSDIR.\n"
+               "\t                   Default: " << package().system_support() << "\n"
+               "\t-userdir USERDIR   Set user directory to USERDIR.\n"
+               "\t                   Default: " << package().user_support() << "\n"
+               "\t-version           Summarize version and build info.\n"
+               "Paths:\n"
+               "\tThe program searches for the files \"encodings\", \"lyxmodules.lst\",\n"
+               "\t\"textclass.lst\", \"syntax.default\", and \"unicodesymbols\", first in\n"
+               "\t\"USERDIR\", then in \"SYSDIR\". The subdirectories \"USERDIR/layouts\"\n"
+               "\tand \"SYSDIR/layouts\" are searched for layout and module files.\n"
+               "Check the tex2lyx man page for more details."
             << endl;
        exit(error_code);
 }
 
 
+int parse_version(string const &, string const &)
+{
+       lyxerr << "tex2lyx " << lyx_version
+              << " (" << lyx_release_date << ")" << endl;
+       lyxerr << "Built on " << __DATE__ << ", " << __TIME__ << endl;
+
+       lyxerr << lyx_version_info << endl;
+       exit(error_code);
+}
+
+
 void error_message(string const & message)
 {
        cerr << "tex2lyx: " << message << "\n\n";
@@ -555,12 +576,14 @@ void easyParse(int & argc, char * argv[])
 {
        map<string, cmd_helper> cmdmap;
 
+       cmdmap["-help"] = parse_help;
+       cmdmap["--help"] = parse_help;
+       cmdmap["-version"] = parse_version;
+       cmdmap["--version"] = parse_version;
        cmdmap["-c"] = parse_class;
        cmdmap["-e"] = parse_encoding;
        cmdmap["-f"] = parse_force;
        cmdmap["-s"] = parse_syntaxfile;
-       cmdmap["-help"] = parse_help;
-       cmdmap["--help"] = parse_help;
        cmdmap["-n"] = parse_noweb;
        cmdmap["-sysdir"] = parse_sysdir;
        cmdmap["-userdir"] = parse_userdir;
@@ -766,6 +789,15 @@ int main(int argc, char * argv[])
 
        os::init(argc, argv);
 
+       try {
+               init_package(internal_path(os::utf8_argv(0)), string(), string());
+       } catch (ExceptionMessage const & message) {
+               cerr << to_utf8(message.title_) << ":\n"
+                    << to_utf8(message.details_) << endl;
+               if (message.type_ == ErrorException)
+                       return EXIT_FAILURE;
+       }
+
        easyParse(argc, argv);
 
        if (argc <= 1)