diff --git a/development/cmake/src/tex2lyx/CMakeLists.txt b/development/cmake/src/tex2lyx/CMakeLists.txt index 7fbd12f7f6..5e33cdfc63 100644 --- a/development/cmake/src/tex2lyx/CMakeLists.txt +++ b/development/cmake/src/tex2lyx/CMakeLists.txt @@ -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) diff --git a/development/scons/scons_manifest.py b/development/scons/scons_manifest.py index d4337f8f3e..af9e32298e 100644 --- a/development/scons/scons_manifest.py +++ b/development/scons/scons_manifest.py @@ -635,6 +635,7 @@ src_tex2lyx_copied_files = Split(''' ModuleList.cpp Spacing.cpp TextClass.cpp + version.cpp insets/InsetLayout.cpp ''') diff --git a/src/tex2lyx/Makefile.am b/src/tex2lyx/Makefile.am index 93b1c7cb9a..8020d02d34 100644 --- a/src/tex2lyx/Makefile.am +++ b/src/tex2lyx/Makefile.am @@ -44,7 +44,8 @@ LINKED_FILES = \ ../ModuleList.cpp \ ../Spacing.cpp \ ../TextClass.cpp \ - ../TextClass.h + ../TextClass.h \ + ../version.cpp BUILT_SOURCES = $(PCH_FILE) diff --git a/src/tex2lyx/tex2lyx.1in b/src/tex2lyx/tex2lyx.1in index 8ff02218ff..316ec0ce20 100644 --- a/src/tex2lyx/tex2lyx.1in +++ b/src/tex2lyx/tex2lyx.1in @@ -83,6 +83,9 @@ named \fIfoo.lyx.lyx\fR, and the re-exported file will be named .TP .BI \-help Help. Print out usage information and quit. +.TP +.BI \-version +Print out the version number and build information and quit. .SH "DESCRIPTION" .SS "Introduction" \fBtex2lyx\fR will create a LyX file with the specified name (or diff --git a/src/tex2lyx/tex2lyx.cpp b/src/tex2lyx/tex2lyx.cpp index 8d5e858885..25f5955a68 100644 --- a/src/tex2lyx/tex2lyx.cpp +++ b/src/tex2lyx/tex2lyx.cpp @@ -11,6 +11,7 @@ // {[( #include +#include #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,16 @@ void easyParse(int & argc, char * argv[]) { map cmdmap; + cmdmap["-h"] = parse_help; + cmdmap["-help"] = parse_help; + cmdmap["--help"] = parse_help; + cmdmap["-v"] = parse_version; + 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 +791,16 @@ int main(int argc, char * argv[]) os::init(argc, argv); + try { + init_package(internal_path(os::utf8_argv(0)), string(), string(), + top_build_dir_is_two_levels_up); + } 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) diff --git a/status.20x b/status.20x index cbe4305455..7d435e7e71 100644 --- a/status.20x +++ b/status.20x @@ -53,6 +53,11 @@ What's new text which is not explicitly marked in a different language, irrespective of the multilingual status, except for LTR<=>RTL changes. +- Augmented the tex2lyx -help message with the default pathes (bug 6827). + +- New command-line switch -v (-version) for tex2lyx showing build information + and version number (bug 6827). + * DOCUMENTATION AND LOCALIZATION