This patch: * updates the version of lyx2lyx to match the corresponing lyx version; * updates the reference to the copyright date. * adds two new options to list the supported lyx versions, and allow to specify it instead of the final file format. * if both the file format and lyx version are given for the resulting file it aborts as they are mutually exclusive.
The purpose of this patch is to make lyx2lyx more user friendly and to simplify its usage for normal users who wnat to use it for older version of lyx. Comments? -- José Abílio
? patch-lyx2lyx Index: lyx2lyx =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/lib/lyx2lyx/lyx2lyx,v retrieving revision 1.5 diff -u -p -r1.5 lyx2lyx --- lyx2lyx 7 Jan 2003 17:03:59 -0000 1.5 +++ lyx2lyx 21 Jan 2003 18:17:46 -0000 @@ -1,5 +1,5 @@ #! /usr/bin/env python -# Copyright (C) 2002 José Matos <[EMAIL PROTECTED]> +# Copyright (C) 2002-2003 José Matos <[EMAIL PROTECTED]> # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License @@ -19,7 +19,7 @@ import getopt, sys, string, re from error import error, warning from parser_tools import set_comment, set_format, check_token -version = "0.0.2" +version = "1.3.0" # Allow the dummy object to be able to carry related data # like a C struct @@ -37,7 +37,13 @@ opt.quiet = 0 format = re.compile(r"(\d)[\.,]?(\d\d)") fileformat = re.compile(r"\\lyxformat\s*(\S*)") -lst_ft = ["210", "215", "216", "217", "218", "220", "221"] + +lyx_version = {"0.12":"215", "1.0.0":"215", "1.0.1": "215", "1.0.2":"215", + "1.0.3":"215", "1.0.4":"215", "1.1.2":"215", "1.1.4":"215", + "1.1.5":"216", "1.1.5fix1":"216", "1.1.5fix2":"216", + "1.1.6":"217", "1.1.6fix1":"217", "1.1.6fix2":"217", + "1.1.6fix3":"218", "1.1.6fix4":"218","1.2.0":"220", + "1.2.1":"220", "1.2.2":"220", "1.2.3":"220","1.3.0":"221"} def usage(): print """Usage: lyx2lyx [options] file1 @@ -45,44 +51,70 @@ Convert old lyx file <file1> to newer fo Options: -h, --help this information -v, --version output version information and exit - -l, --list list all available formats + -l, --list list all available file formats + -m, --list-versions list all lyx versions supported -d, --debug level level=0..2 (O_ no debug information,2_verbose) default: level=1 - -f, --from version initial version (optional) - -t, --to version final version (optional) + -f, --from version initial version + -t, --to version final lyx file format version + -n, --final-version version final lyx version -o, --output name name of the output file or else goes to stdout -q, --quiet same as --debug=0""" def parse_options(argv): - _options = ["help", "version", "list", "from=", "to=", "output=", "quiet"] + _options = ["help", "version", "list", "list-versions", "from=", "to=", "output=", "final-version=", "quiet"] try: - opts, args = getopt.getopt(argv[1:], "f:hlo:qt:v", _options) + opts, args = getopt.getopt(argv[1:], "f:hlmn:o:qt:v", _options) except getopt.error: usage() sys.exit(2) + output_option = 0 + for o, a in opts: if o in ("-h", "--help"): usage() sys.exit() if o in ("-v", "--version"): print "lyxconvert, version %s" %(version) - print "Copyright (C) 2002 LyX Team" + print "Copyright (C) 2002-2003 LyX Team" sys.exit() if o in ("-d", "--debug"): opt.debug = int(a) if o in ("-q", "--quiet"): opt.debug = 0 if o in ("-l", "--list"): - print lst_ft + lst = lyx_version.values() + lst.sort() + #determine unique representation + value = None + for item in lst: + if item != value: + value = item + print value, + print + sys.exit() + if o in ("-m", "--list-versions"): + lyx_versions = lyx_version.keys() + lyx_versions.sort() + print lyx_versions sys.exit() if o in ("-o", "--output"): opt.output = open(a, "w") if o in ("-f", "--from"): opt.start = lyxformat(a) if o in ("-t", "--to"): + output_option = output_option + 1 opt.end = lyxformat(a) + if o in ("-n","--final-version"): + output_option = output_option + 1 + opt.end = lyxversion[a] + + if output_option == 2: + sys.stderr.write("Final output format and final LyX version are mutually exclusive, provide only one of them.\n") + usage() + sys.exit(2) if not opt.end: opt.end = lst_ft[len(lst_ft)-1]