mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-06 00:10:59 +00:00
fix bug 4639
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23813 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
e01e14872d
commit
6c57005797
@ -144,7 +144,7 @@ def get_encoding(language, inputencoding, format, cjk_encoding):
|
|||||||
#
|
#
|
||||||
class LyX_base:
|
class LyX_base:
|
||||||
"""This class carries all the information of the LyX file."""
|
"""This class carries all the information of the LyX file."""
|
||||||
|
|
||||||
def __init__(self, end_format = 0, input = "", output = "", error = "",
|
def __init__(self, end_format = 0, input = "", output = "", error = "",
|
||||||
debug = default_debug__, try_hard = 0, cjk_encoding = '',
|
debug = default_debug__, try_hard = 0, cjk_encoding = '',
|
||||||
language = "english", encoding = "auto"):
|
language = "english", encoding = "auto"):
|
||||||
@ -222,10 +222,10 @@ class LyX_base:
|
|||||||
line = trim_eol(line)
|
line = trim_eol(line)
|
||||||
if check_token(line, '\\end_preamble'):
|
if check_token(line, '\\end_preamble'):
|
||||||
break
|
break
|
||||||
|
|
||||||
if line.split()[:0] in ("\\layout",
|
if line.split()[:0] in ("\\layout",
|
||||||
"\\begin_layout", "\\begin_body"):
|
"\\begin_layout", "\\begin_body"):
|
||||||
|
|
||||||
self.warning("Malformed LyX file:"
|
self.warning("Malformed LyX file:"
|
||||||
"Missing '\\end_preamble'."
|
"Missing '\\end_preamble'."
|
||||||
"\nAdding it now and hoping"
|
"\nAdding it now and hoping"
|
||||||
@ -247,6 +247,12 @@ class LyX_base:
|
|||||||
|
|
||||||
self.header.append(line)
|
self.header.append(line)
|
||||||
|
|
||||||
|
i = find_token(self.header, '\\textclass', 0)
|
||||||
|
if i == -1:
|
||||||
|
self.warning("Malformed LyX file: Missing '\\textclass'.")
|
||||||
|
i = find_token(self.header, '\\lyxformat', 0) + 1
|
||||||
|
self.header[i:i] = ['\\textclass article']
|
||||||
|
|
||||||
self.textclass = get_value(self.header, "\\textclass", 0)
|
self.textclass = get_value(self.header, "\\textclass", 0)
|
||||||
self.backend = get_backend(self.textclass)
|
self.backend = get_backend(self.textclass)
|
||||||
self.format = self.read_format()
|
self.format = self.read_format()
|
||||||
@ -284,10 +290,7 @@ class LyX_base:
|
|||||||
if self.preamble:
|
if self.preamble:
|
||||||
i = find_token(self.header, '\\textclass', 0) + 1
|
i = find_token(self.header, '\\textclass', 0) + 1
|
||||||
preamble = ['\\begin_preamble'] + self.preamble + ['\\end_preamble']
|
preamble = ['\\begin_preamble'] + self.preamble + ['\\end_preamble']
|
||||||
if i == 0:
|
header = self.header[:i] + preamble + self.header[i:]
|
||||||
self.error("Malformed LyX file: Missing '\\textclass'.")
|
|
||||||
else:
|
|
||||||
header = self.header[:i] + preamble + self.header[i:]
|
|
||||||
else:
|
else:
|
||||||
header = self.header
|
header = self.header
|
||||||
|
|
||||||
@ -309,7 +312,7 @@ class LyX_base:
|
|||||||
try:
|
try:
|
||||||
gzip.open(input).readline()
|
gzip.open(input).readline()
|
||||||
self.input = gzip.open(input)
|
self.input = gzip.open(input)
|
||||||
self.output = gzip.GzipFile(mode="wb", fileobj=self.output)
|
self.output = gzip.GzipFile(mode="wb", fileobj=self.output)
|
||||||
except:
|
except:
|
||||||
self.input = open(input)
|
self.input = open(input)
|
||||||
else:
|
else:
|
||||||
@ -601,7 +604,7 @@ class LyX_base:
|
|||||||
# skip paragraph parameters
|
# skip paragraph parameters
|
||||||
while not self.body[k].strip() or self.body[k].split()[0] \
|
while not self.body[k].strip() or self.body[k].split()[0] \
|
||||||
in allowed_parameters:
|
in allowed_parameters:
|
||||||
k += 1
|
k += 1
|
||||||
|
|
||||||
while k < j:
|
while k < j:
|
||||||
if check_token(self.body[k], '\\begin_inset'):
|
if check_token(self.body[k], '\\begin_inset'):
|
||||||
|
@ -84,7 +84,7 @@ def find_tokens(lines, tokens, start, end = 0, exact = False):
|
|||||||
if len(x) < len(y):
|
if len(x) < len(y):
|
||||||
continue
|
continue
|
||||||
if x[:len(y)] == y:
|
if x[:len(y)] == y:
|
||||||
return i
|
return i
|
||||||
else:
|
else:
|
||||||
if lines[i][:len(token)] == token:
|
if lines[i][:len(token)] == token:
|
||||||
return i
|
return i
|
||||||
@ -149,7 +149,7 @@ def get_value(lines, token, start, end = 0, default = ""):
|
|||||||
|
|
||||||
i = find_token_exact(lines, token, start, end)
|
i = find_token_exact(lines, token, start, end)
|
||||||
if i == -1:
|
if i == -1:
|
||||||
return ""
|
return default
|
||||||
if len(lines[i].split()) > 1:
|
if len(lines[i].split()) > 1:
|
||||||
return lines[i].split()[1]
|
return lines[i].split()[1]
|
||||||
else:
|
else:
|
||||||
|
Loading…
Reference in New Issue
Block a user