mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-29 05:01:49 +00:00
Dekel's import/export patch
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@1144 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
d7a20664db
commit
8aff605cae
18
ChangeLog
18
ChangeLog
@ -1,3 +1,21 @@
|
|||||||
|
2000-10-23 Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
|
||||||
|
|
||||||
|
* src/converter.h: add a std:: qualifier
|
||||||
|
|
||||||
|
2000-10-21 Dekel Tsur <dekelts@tau.ac.il>
|
||||||
|
|
||||||
|
* src/importer.[Ch]: New files. Used for importing files into LyX.
|
||||||
|
|
||||||
|
* src/lyxfunc.C (doImport): Use the new Importer class.
|
||||||
|
|
||||||
|
* src/converter.h: Add shortcut member to the Format class.
|
||||||
|
Used for holding the menu shortcut.
|
||||||
|
|
||||||
|
* src/converter.C and other files: Made a distinction between
|
||||||
|
format name and format extension. New formats can be defined using
|
||||||
|
the \format lyxrc tag.
|
||||||
|
Added two new converter flags: latex and disable.
|
||||||
|
|
||||||
2000-10-20 Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
|
2000-10-20 Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
|
||||||
|
|
||||||
* src/support/lyxlib.h: unify namespace/struct implementation.
|
* src/support/lyxlib.h: unify namespace/struct implementation.
|
||||||
|
@ -21,7 +21,7 @@ else
|
|||||||
lyx=lyx
|
lyx=lyx
|
||||||
fi
|
fi
|
||||||
|
|
||||||
$lyx --export nw $dir/examples/Literate.lyx
|
$lyx --export literate $dir/examples/Literate.lyx
|
||||||
# if no literate support stuff is installed nothing will be output
|
# if no literate support stuff is installed nothing will be output
|
||||||
if [ -f $dir/examples/Literate.nw ]
|
if [ -f $dir/examples/Literate.nw ]
|
||||||
then
|
then
|
||||||
|
189
lib/configure
vendored
189
lib/configure
vendored
@ -187,9 +187,9 @@ fi
|
|||||||
# Search for an installed reLyX or a ready-to-install one
|
# Search for an installed reLyX or a ready-to-install one
|
||||||
save_PATH=${PATH}
|
save_PATH=${PATH}
|
||||||
PATH=${PATH}:./reLyX/
|
PATH=${PATH}:./reLyX/
|
||||||
echo $ac_n "checking for reLyX LaTeX-to-LyX translator""... $ac_c"
|
echo $ac_n "checking for a LaTeX -> LyX converter""... $ac_c"
|
||||||
echo "$ac_t""(reLyX)"
|
echo "$ac_t""(reLyX)"
|
||||||
RELYX=
|
tex_to_lyx_command=
|
||||||
for ac_prog in reLyX
|
for ac_prog in reLyX
|
||||||
do
|
do
|
||||||
# Extract the first word of "$ac_prog", so it can be a program name with args.
|
# Extract the first word of "$ac_prog", so it can be a program name with args.
|
||||||
@ -200,33 +200,70 @@ if test -n "$ac_word"; then
|
|||||||
for ac_dir in $PATH; do
|
for ac_dir in $PATH; do
|
||||||
test -z "$ac_dir" && ac_dir=.
|
test -z "$ac_dir" && ac_dir=.
|
||||||
if test -x $ac_dir/$ac_word; then
|
if test -x $ac_dir/$ac_word; then
|
||||||
RELYX="$ac_prog"
|
tex_to_lyx_command="$ac_prog"
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
IFS="$ac_save_ifs"
|
IFS="$ac_save_ifs"
|
||||||
|
|
||||||
if test -n "$RELYX"; then
|
if test -n "$tex_to_lyx_command"; then
|
||||||
ac_result=yes
|
ac_result=yes
|
||||||
else
|
else
|
||||||
ac_result=no
|
ac_result=no
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "$ac_t""$ac_result"
|
echo "$ac_t""$ac_result"
|
||||||
test -n "$RELYX" && break
|
test -n "$tex_to_lyx_command" && break
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
if test -z "$RELYX" ; then
|
if test -z "$tex_to_lyx_command" ; then
|
||||||
RELYX=none
|
tex_to_lyx_command=none
|
||||||
fi
|
fi
|
||||||
|
|
||||||
PATH=${save_PATH}
|
PATH=${save_PATH}
|
||||||
|
test $tex_to_lyx_command = "reLyX" && tex_to_lyx_command="reLyX -f \$\$FName"
|
||||||
|
|
||||||
|
echo $ac_n "checking for a Noweb -> LyX converter""... $ac_c"
|
||||||
|
echo "$ac_t""(noweb2lyx)"
|
||||||
|
literate_to_lyx_command=
|
||||||
|
for ac_prog in noweb2lyx
|
||||||
|
do
|
||||||
|
# Extract the first word of "$ac_prog", so it can be a program name with args.
|
||||||
|
set dummy $ac_prog ; ac_word=$2
|
||||||
|
if test -n "$ac_word"; then
|
||||||
|
echo $ac_n "+checking for \"$ac_word\"""... $ac_c"
|
||||||
|
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
|
||||||
|
for ac_dir in $PATH; do
|
||||||
|
test -z "$ac_dir" && ac_dir=.
|
||||||
|
if test -x $ac_dir/$ac_word; then
|
||||||
|
literate_to_lyx_command="$ac_prog"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
IFS="$ac_save_ifs"
|
||||||
|
|
||||||
|
if test -n "$literate_to_lyx_command"; then
|
||||||
|
ac_result=yes
|
||||||
|
else
|
||||||
|
ac_result=no
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "$ac_t""$ac_result"
|
||||||
|
test -n "$literate_to_lyx_command" && break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if test -z "$literate_to_lyx_command" ; then
|
||||||
|
literate_to_lyx_command=none
|
||||||
|
fi
|
||||||
|
|
||||||
|
test $literate_to_lyx_command = "noweb2lyx" && literate_to_lyx_command="noweb2lyx \$\$FName \$\$OutName"
|
||||||
|
|
||||||
# Search something to process a literate document
|
# Search something to process a literate document
|
||||||
echo $ac_n "checking for a Literate programming processor""... $ac_c"
|
echo $ac_n "checking for a Noweb -> LaTeX converter""... $ac_c"
|
||||||
echo "$ac_t""(noweave)"
|
echo "$ac_t""(noweave)"
|
||||||
LITERATE=
|
literate_to_tex_command=
|
||||||
for ac_prog in noweave
|
for ac_prog in noweave
|
||||||
do
|
do
|
||||||
# Extract the first word of "$ac_prog", so it can be a program name with args.
|
# Extract the first word of "$ac_prog", so it can be a program name with args.
|
||||||
@ -237,29 +274,100 @@ if test -n "$ac_word"; then
|
|||||||
for ac_dir in $PATH; do
|
for ac_dir in $PATH; do
|
||||||
test -z "$ac_dir" && ac_dir=.
|
test -z "$ac_dir" && ac_dir=.
|
||||||
if test -x $ac_dir/$ac_word; then
|
if test -x $ac_dir/$ac_word; then
|
||||||
LITERATE="$ac_prog"
|
literate_to_tex_command="$ac_prog"
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
IFS="$ac_save_ifs"
|
IFS="$ac_save_ifs"
|
||||||
|
|
||||||
if test -n "$LITERATE"; then
|
if test -n "$literate_to_tex_command"; then
|
||||||
ac_result=yes
|
ac_result=yes
|
||||||
else
|
else
|
||||||
ac_result=no
|
ac_result=no
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "$ac_t""$ac_result"
|
echo "$ac_t""$ac_result"
|
||||||
test -n "$LITERATE" && break
|
test -n "$literate_to_tex_command" && break
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
if test -z "$LITERATE" ; then
|
if test -z "$literate_to_tex_command" ; then
|
||||||
LITERATE=none
|
literate_to_tex_command=none
|
||||||
fi
|
fi
|
||||||
|
|
||||||
test $LITERATE = "noweave" && LITERATE="noweave -delay -index \$\$FName > \$\$OutName"
|
test $literate_to_tex_command = "noweave" && literate_to_tex_command="noweave -delay -index \$\$FName > \$\$OutName"
|
||||||
LITERATE_EXT="nw"
|
|
||||||
|
echo $ac_n "checking for a HTML -> Latex converter""... $ac_c"
|
||||||
|
echo "$ac_t""(html2latex)"
|
||||||
|
html_to_latex_command=
|
||||||
|
for ac_prog in html2latex
|
||||||
|
do
|
||||||
|
# Extract the first word of "$ac_prog", so it can be a program name with args.
|
||||||
|
set dummy $ac_prog ; ac_word=$2
|
||||||
|
if test -n "$ac_word"; then
|
||||||
|
echo $ac_n "+checking for \"$ac_word\"""... $ac_c"
|
||||||
|
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
|
||||||
|
for ac_dir in $PATH; do
|
||||||
|
test -z "$ac_dir" && ac_dir=.
|
||||||
|
if test -x $ac_dir/$ac_word; then
|
||||||
|
html_to_latex_command="$ac_prog"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
IFS="$ac_save_ifs"
|
||||||
|
|
||||||
|
if test -n "$html_to_latex_command"; then
|
||||||
|
ac_result=yes
|
||||||
|
else
|
||||||
|
ac_result=no
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "$ac_t""$ac_result"
|
||||||
|
test -n "$html_to_latex_command" && break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if test -z "$html_to_latex_command" ; then
|
||||||
|
html_to_latex_command=none
|
||||||
|
fi
|
||||||
|
|
||||||
|
test $html_to_latex_command = "html2latex" && html_to_latex_command="html2latex \$\$FName"
|
||||||
|
|
||||||
|
echo $ac_n "checking for Image converter""... $ac_c"
|
||||||
|
echo "$ac_t""(convert)"
|
||||||
|
image_command=
|
||||||
|
for ac_prog in convert
|
||||||
|
do
|
||||||
|
# Extract the first word of "$ac_prog", so it can be a program name with args.
|
||||||
|
set dummy $ac_prog ; ac_word=$2
|
||||||
|
if test -n "$ac_word"; then
|
||||||
|
echo $ac_n "+checking for \"$ac_word\"""... $ac_c"
|
||||||
|
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
|
||||||
|
for ac_dir in $PATH; do
|
||||||
|
test -z "$ac_dir" && ac_dir=.
|
||||||
|
if test -x $ac_dir/$ac_word; then
|
||||||
|
image_command="$ac_prog"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
IFS="$ac_save_ifs"
|
||||||
|
|
||||||
|
if test -n "$image_command"; then
|
||||||
|
ac_result=yes
|
||||||
|
else
|
||||||
|
ac_result=no
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "$ac_t""$ac_result"
|
||||||
|
test -n "$image_command" && break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if test -z "$image_command" ; then
|
||||||
|
image_command=none
|
||||||
|
fi
|
||||||
|
|
||||||
|
test $image_command = "convert" && image_command="convert \$\$FName \$\$OutName"
|
||||||
|
|
||||||
# Search for a Postscript interpreter
|
# Search for a Postscript interpreter
|
||||||
echo $ac_n "checking for a Postscript interpreter""... $ac_c"
|
echo $ac_n "checking for a Postscript interpreter""... $ac_c"
|
||||||
@ -335,9 +443,9 @@ fi
|
|||||||
|
|
||||||
# Search for a program to preview pdf
|
# Search for a program to preview pdf
|
||||||
echo $ac_n "checking for a PDF preview""... $ac_c"
|
echo $ac_n "checking for a PDF preview""... $ac_c"
|
||||||
echo "$ac_t""(xpdf acroread gv ghostview)"
|
echo "$ac_t""(acroread gv ghostview xpdf)"
|
||||||
PDF_VIEWER=
|
PDF_VIEWER=
|
||||||
for ac_prog in xpdf acroread gv ghostview
|
for ac_prog in acroread gv ghostview xpdf
|
||||||
do
|
do
|
||||||
# Extract the first word of "$ac_prog", so it can be a program name with args.
|
# Extract the first word of "$ac_prog", so it can be a program name with args.
|
||||||
set dummy $ac_prog ; ac_word=$2
|
set dummy $ac_prog ; ac_word=$2
|
||||||
@ -719,7 +827,7 @@ case $LINUXDOC in
|
|||||||
linuxdoc_to_latex_command="sgml2latex \$\$FName"
|
linuxdoc_to_latex_command="sgml2latex \$\$FName"
|
||||||
linuxdoc_to_dvi_command="sgml2latex -o dvi \$\$FName"
|
linuxdoc_to_dvi_command="sgml2latex -o dvi \$\$FName"
|
||||||
linuxdoc_to_html_command="sgml2html \$\$FName"
|
linuxdoc_to_html_command="sgml2html \$\$FName"
|
||||||
linuxdoc_to_lyx_command="sgml2lyx";;
|
linuxdoc_to_lyx_command="sgml2lyx \$\$FName";;
|
||||||
none)
|
none)
|
||||||
linuxdoc_to_latex_command="none"
|
linuxdoc_to_latex_command="none"
|
||||||
linuxdoc_to_dvi_command="none"
|
linuxdoc_to_dvi_command="none"
|
||||||
@ -823,8 +931,7 @@ case $LPR in
|
|||||||
*) :;; # leave to empty values
|
*) :;; # leave to empty values
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# Search for a latex to html converter
|
echo $ac_n "checking for a LaTeX -> HTML converter""... $ac_c"
|
||||||
echo $ac_n "checking for an HTML converter""... $ac_c"
|
|
||||||
echo "$ac_t""(tth latex2html hevea)"
|
echo "$ac_t""(tth latex2html hevea)"
|
||||||
TOHTML=
|
TOHTML=
|
||||||
for ac_prog in tth latex2html hevea
|
for ac_prog in tth latex2html hevea
|
||||||
@ -948,18 +1055,39 @@ cat >lyxrc.defaults <<EOF
|
|||||||
# want to customize LyX, make a copy of the file LYXDIR/lyxrc as
|
# want to customize LyX, make a copy of the file LYXDIR/lyxrc as
|
||||||
# ~/.lyx/lyxrc and edit this file instead. Any setting in lyxrc will
|
# ~/.lyx/lyxrc and edit this file instead. Any setting in lyxrc will
|
||||||
# override the values given here.
|
# override the values given here.
|
||||||
\\converter tex dvi "$LATEX" ""
|
\\Format latex tex LaTeX L
|
||||||
\\converter tex pdf "$PDFLATEX" ""
|
\\Format dvi dvi DVI D
|
||||||
|
\\Format ps ps Postscript t
|
||||||
|
\\Format pdf pdf PDF P
|
||||||
|
\\Format html html HTML H
|
||||||
|
\\Format text txt ASCII A
|
||||||
|
\\Format literate nw NoWeb W
|
||||||
|
\\Format linuxdoc sgml LinuxDoc x
|
||||||
|
\\Format docbook sgml DocBook B
|
||||||
|
\\Format program run Program r
|
||||||
|
|
||||||
|
\\converter latex lyx "$tex_to_lyx_command" ""
|
||||||
|
\\converter latex dvi "$LATEX" "latex,disable=linuxdoc&docbook"
|
||||||
|
\\converter latex pdf "$PDFLATEX" "latex,disable=linuxdoc&docbook"
|
||||||
|
\\converter latex html "$latex_to_html_command"
|
||||||
|
"originaldir,needaux,disable=linuxdoc&docbook"
|
||||||
|
\\converter literate lyx "$literate_to_lyx_command" ""
|
||||||
|
\\converter literate latex "$literate_to_tex_command" ""
|
||||||
\\converter dvi ps "$dvi_to_ps_command" ""
|
\\converter dvi ps "$dvi_to_ps_command" ""
|
||||||
\\converter ps pdf "$ps_to_pdf_command" ""
|
\\converter ps pdf "$ps_to_pdf_command" ""
|
||||||
\\converter sgml tex "$linuxdoc_to_latex_command" ""
|
\\converter linuxdoc lyx "$linuxdoc_to_lyx_command" ""
|
||||||
\\converter sgml dvi "$linuxdoc_to_dvi_command" ""
|
\\converter linuxdoc latex "$linuxdoc_to_latex_command" ""
|
||||||
\\converter sgml html "$linuxdoc_to_html_command" ""
|
\\converter linuxdoc dvi "$linuxdoc_to_dvi_command" ""
|
||||||
|
\\converter linuxdoc html "$linuxdoc_to_html_command" ""
|
||||||
\\converter docbook dvi "$docbook_to_dvi_command" ""
|
\\converter docbook dvi "$docbook_to_dvi_command" ""
|
||||||
\\converter docbook html "$docbook_to_html_command" ""
|
\\converter docbook html "$docbook_to_html_command" ""
|
||||||
\\converter tex html "$latex_to_html_command"
|
\\converter html latex "$html_to_latex_command"
|
||||||
"originaldir,needaux"
|
"disable=latex&literate&linuxdoc&docbook"
|
||||||
\\converter $LITERATE_EXT tex "$LITERATE" ""
|
|
||||||
|
\converter gif eps "$image_command" ""
|
||||||
|
\converter png eps "$image_command" ""
|
||||||
|
\converter jpg eps "$image_command" ""
|
||||||
|
\converter gif png "$image_command" ""
|
||||||
|
|
||||||
\\viewer dvi "$DVI_VIEWER"
|
\\viewer dvi "$DVI_VIEWER"
|
||||||
\\viewer html "$HTML_VIEWER"
|
\\viewer html "$HTML_VIEWER"
|
||||||
@ -967,9 +1095,6 @@ cat >lyxrc.defaults <<EOF
|
|||||||
\\viewer ps "$GHOSTVIEW -swap"
|
\\viewer ps "$GHOSTVIEW -swap"
|
||||||
\\viewer eps "$GHOSTVIEW"
|
\\viewer eps "$GHOSTVIEW"
|
||||||
|
|
||||||
\\relyx_command "$RELYX"
|
|
||||||
\\linuxdoc_to_lyx_command "$linuxdoc_to_lyx_command"
|
|
||||||
\\literate_extension "$LITERATE_EXT"
|
|
||||||
\\ps_command "$GS"
|
\\ps_command "$GS"
|
||||||
\\ascii_roff_command "$ascii_roff_command"
|
\\ascii_roff_command "$ascii_roff_command"
|
||||||
\\chktex_command "$chktex_command"
|
\\chktex_command "$chktex_command"
|
||||||
|
@ -182,13 +182,22 @@ fi
|
|||||||
# Search for an installed reLyX or a ready-to-install one
|
# Search for an installed reLyX or a ready-to-install one
|
||||||
save_PATH=${PATH}
|
save_PATH=${PATH}
|
||||||
PATH=${PATH}:./reLyX/
|
PATH=${PATH}:./reLyX/
|
||||||
SEARCH_PROG([for reLyX LaTeX-to-LyX translator],RELYX,reLyX)
|
SEARCH_PROG([for a LaTeX -> LyX converter],tex_to_lyx_command,reLyX)
|
||||||
PATH=${save_PATH}
|
PATH=${save_PATH}
|
||||||
|
test $tex_to_lyx_command = "reLyX" && tex_to_lyx_command="reLyX -f \$\$FName"
|
||||||
|
|
||||||
|
SEARCH_PROG([for a Noweb -> LyX converter],literate_to_lyx_command,noweb2lyx)
|
||||||
|
test $literate_to_lyx_command = "noweb2lyx" && literate_to_lyx_command="noweb2lyx \$\$FName \$\$OutName"
|
||||||
|
|
||||||
# Search something to process a literate document
|
# Search something to process a literate document
|
||||||
SEARCH_PROG([for a Literate programming processor],LITERATE,noweave)
|
SEARCH_PROG([for a Noweb -> LaTeX converter],literate_to_tex_command,noweave)
|
||||||
test $LITERATE = "noweave" && LITERATE="noweave -delay -index \$\$FName > \$\$OutName"
|
test $literate_to_tex_command = "noweave" && literate_to_tex_command="noweave -delay -index \$\$FName > \$\$OutName"
|
||||||
LITERATE_EXT="nw"
|
|
||||||
|
SEARCH_PROG([for a HTML -> Latex converter],html_to_latex_command,html2latex)
|
||||||
|
test $html_to_latex_command = "html2latex" && html_to_latex_command="html2latex \$\$FName"
|
||||||
|
|
||||||
|
SEARCH_PROG([for Image converter],image_command,convert)
|
||||||
|
test $image_command = "convert" && image_command="convert \$\$FName \$\$OutName"
|
||||||
|
|
||||||
# Search for a Postscript interpreter
|
# Search for a Postscript interpreter
|
||||||
SEARCH_PROG([for a Postscript interpreter],GS, gs)
|
SEARCH_PROG([for a Postscript interpreter],GS, gs)
|
||||||
@ -197,7 +206,7 @@ SEARCH_PROG([for a Postscript interpreter],GS, gs)
|
|||||||
SEARCH_PROG([for a Postscript previewer],GHOSTVIEW,gv ghostview)
|
SEARCH_PROG([for a Postscript previewer],GHOSTVIEW,gv ghostview)
|
||||||
|
|
||||||
# Search for a program to preview pdf
|
# Search for a program to preview pdf
|
||||||
SEARCH_PROG([for a PDF preview],PDF_VIEWER,xpdf acroread gv ghostview)
|
SEARCH_PROG([for a PDF preview],PDF_VIEWER,acroread gv ghostview xpdf)
|
||||||
|
|
||||||
# Search something to preview dvi
|
# Search something to preview dvi
|
||||||
SEARCH_PROG([for a DVI previewer],DVI_VIEWER, xdvi)
|
SEARCH_PROG([for a DVI previewer],DVI_VIEWER, xdvi)
|
||||||
@ -252,7 +261,7 @@ case $LINUXDOC in
|
|||||||
linuxdoc_to_latex_command="sgml2latex \$\$FName"
|
linuxdoc_to_latex_command="sgml2latex \$\$FName"
|
||||||
linuxdoc_to_dvi_command="sgml2latex -o dvi \$\$FName"
|
linuxdoc_to_dvi_command="sgml2latex -o dvi \$\$FName"
|
||||||
linuxdoc_to_html_command="sgml2html \$\$FName"
|
linuxdoc_to_html_command="sgml2html \$\$FName"
|
||||||
linuxdoc_to_lyx_command="sgml2lyx";;
|
linuxdoc_to_lyx_command="sgml2lyx \$\$FName";;
|
||||||
none)
|
none)
|
||||||
linuxdoc_to_latex_command="none"
|
linuxdoc_to_latex_command="none"
|
||||||
linuxdoc_to_dvi_command="none"
|
linuxdoc_to_dvi_command="none"
|
||||||
@ -290,8 +299,7 @@ case $LPR in
|
|||||||
*) :;; # leave to empty values
|
*) :;; # leave to empty values
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# Search for a latex to html converter
|
SEARCH_PROG([for a LaTeX -> HTML converter], TOHTML, tth latex2html hevea)
|
||||||
SEARCH_PROG([for an HTML converter], TOHTML, tth latex2html hevea)
|
|
||||||
latex_to_html_command = $TOHTML
|
latex_to_html_command = $TOHTML
|
||||||
case $TOHTML in
|
case $TOHTML in
|
||||||
tth) latex_to_html_command="tth -t -e2 -L\$\$BaseName < \$\$FName > \$\$OutName";;
|
tth) latex_to_html_command="tth -t -e2 -L\$\$BaseName < \$\$FName > \$\$OutName";;
|
||||||
@ -370,18 +378,39 @@ cat >lyxrc.defaults <<EOF
|
|||||||
# want to customize LyX, make a copy of the file LYXDIR/lyxrc as
|
# want to customize LyX, make a copy of the file LYXDIR/lyxrc as
|
||||||
# ~/.lyx/lyxrc and edit this file instead. Any setting in lyxrc will
|
# ~/.lyx/lyxrc and edit this file instead. Any setting in lyxrc will
|
||||||
# override the values given here.
|
# override the values given here.
|
||||||
\\converter tex dvi "$LATEX" ""
|
\\Format latex tex LaTeX L
|
||||||
\\converter tex pdf "$PDFLATEX" ""
|
\\Format dvi dvi DVI D
|
||||||
|
\\Format ps ps Postscript t
|
||||||
|
\\Format pdf pdf PDF P
|
||||||
|
\\Format html html HTML H
|
||||||
|
\\Format text txt ASCII A
|
||||||
|
\\Format literate nw NoWeb W
|
||||||
|
\\Format linuxdoc sgml LinuxDoc x
|
||||||
|
\\Format docbook sgml DocBook B
|
||||||
|
\\Format program run Program r
|
||||||
|
|
||||||
|
\\converter latex lyx "$tex_to_lyx_command" ""
|
||||||
|
\\converter latex dvi "$LATEX" "latex,disable=linuxdoc&docbook"
|
||||||
|
\\converter latex pdf "$PDFLATEX" "latex,disable=linuxdoc&docbook"
|
||||||
|
\\converter latex html "$latex_to_html_command"
|
||||||
|
"originaldir,needaux,disable=linuxdoc&docbook"
|
||||||
|
\\converter literate lyx "$literate_to_lyx_command" ""
|
||||||
|
\\converter literate latex "$literate_to_tex_command" ""
|
||||||
\\converter dvi ps "$dvi_to_ps_command" ""
|
\\converter dvi ps "$dvi_to_ps_command" ""
|
||||||
\\converter ps pdf "$ps_to_pdf_command" ""
|
\\converter ps pdf "$ps_to_pdf_command" ""
|
||||||
\\converter sgml tex "$linuxdoc_to_latex_command" ""
|
\\converter linuxdoc lyx "$linuxdoc_to_lyx_command" ""
|
||||||
\\converter sgml dvi "$linuxdoc_to_dvi_command" ""
|
\\converter linuxdoc latex "$linuxdoc_to_latex_command" ""
|
||||||
\\converter sgml html "$linuxdoc_to_html_command" ""
|
\\converter linuxdoc dvi "$linuxdoc_to_dvi_command" ""
|
||||||
|
\\converter linuxdoc html "$linuxdoc_to_html_command" ""
|
||||||
\\converter docbook dvi "$docbook_to_dvi_command" ""
|
\\converter docbook dvi "$docbook_to_dvi_command" ""
|
||||||
\\converter docbook html "$docbook_to_html_command" ""
|
\\converter docbook html "$docbook_to_html_command" ""
|
||||||
\\converter tex html "$latex_to_html_command"
|
\\converter html latex "$html_to_latex_command"
|
||||||
"originaldir,needaux"
|
"disable=latex&literate&linuxdoc&docbook"
|
||||||
\\converter $LITERATE_EXT tex "$LITERATE" ""
|
|
||||||
|
\converter gif eps "$image_command" ""
|
||||||
|
\converter png eps "$image_command" ""
|
||||||
|
\converter jpg eps "$image_command" ""
|
||||||
|
\converter gif png "$image_command" ""
|
||||||
|
|
||||||
\\viewer dvi "$DVI_VIEWER"
|
\\viewer dvi "$DVI_VIEWER"
|
||||||
\\viewer html "$HTML_VIEWER"
|
\\viewer html "$HTML_VIEWER"
|
||||||
@ -389,9 +418,6 @@ cat >lyxrc.defaults <<EOF
|
|||||||
\\viewer ps "$GHOSTVIEW -swap"
|
\\viewer ps "$GHOSTVIEW -swap"
|
||||||
\\viewer eps "$GHOSTVIEW"
|
\\viewer eps "$GHOSTVIEW"
|
||||||
|
|
||||||
\\relyx_command "$RELYX"
|
|
||||||
\\linuxdoc_to_lyx_command "$linuxdoc_to_lyx_command"
|
|
||||||
\\literate_extension "$LITERATE_EXT"
|
|
||||||
\\ps_command "$GS"
|
\\ps_command "$GS"
|
||||||
\\ascii_roff_command "$ascii_roff_command"
|
\\ascii_roff_command "$ascii_roff_command"
|
||||||
\\chktex_command "$chktex_command"
|
\\chktex_command "$chktex_command"
|
||||||
|
@ -149,18 +149,6 @@
|
|||||||
# '.in' and '.out'. Only for advanced users.
|
# '.in' and '.out'. Only for advanced users.
|
||||||
# \serverpipe "/home/chb/.lyxpipe"
|
# \serverpipe "/home/chb/.lyxpipe"
|
||||||
|
|
||||||
# Which command to use to invoke the reLyX script to convert
|
|
||||||
# LaTeX files to LyX files. This setting is automatically
|
|
||||||
# disabled if you do not have the appropriate Perl version
|
|
||||||
# installed. In that case, the File->Import LaTeX command
|
|
||||||
# will be disabled. If the reLyX command does work for you,
|
|
||||||
# you can override that here by uncommenting this line:
|
|
||||||
#\relyx_command "reLyX"
|
|
||||||
#
|
|
||||||
# If it doesn't work, you can disable the command by uncommenting
|
|
||||||
# this line:
|
|
||||||
#\relyx_command "none"
|
|
||||||
|
|
||||||
# Default format string for the date-insert command
|
# Default format string for the date-insert command
|
||||||
#
|
#
|
||||||
# This accepts the normal strftime formats; see man strftime for full
|
# This accepts the normal strftime formats; see man strftime for full
|
||||||
@ -356,6 +344,8 @@
|
|||||||
# and $$OutName is replaced with the name of the target file.
|
# and $$OutName is replaced with the name of the target file.
|
||||||
# The flags argument is a list of comma separated flags.
|
# The flags argument is a list of comma separated flags.
|
||||||
# Known flags are
|
# Known flags are
|
||||||
|
# - * : copy the previously defined flags
|
||||||
|
# - latex : The converter is latex or its derivatives (pdflatex).
|
||||||
# - originaldir : The converter must be invoked in the directory of the lyx
|
# - originaldir : The converter must be invoked in the directory of the lyx
|
||||||
# file and not in the temporary directory. This is needed for tex->html
|
# file and not in the temporary directory. This is needed for tex->html
|
||||||
# converters in order to be able to read the eps files.
|
# converters in order to be able to read the eps files.
|
||||||
@ -372,18 +362,24 @@
|
|||||||
# - parselog=filtername : filtername is a name of a filter command that takes
|
# - parselog=filtername : filtername is a name of a filter command that takes
|
||||||
# the converter error log (from stderr), and converts it to a fake latex .log
|
# the converter error log (from stderr), and converts it to a fake latex .log
|
||||||
# file.
|
# file.
|
||||||
|
# - disable=backends : A list of & seperated backend in which the converter
|
||||||
|
# should not be used.
|
||||||
# For example:
|
# For example:
|
||||||
# \converter tex html "latex2html -split 0 $$FName"
|
#\converter latex html "latex2html -split 0 $$FName"
|
||||||
# "originaldir,needaux,resultdir"
|
# "originaldir,needaux,resultdir,disable=linuxdoc&docbook"
|
||||||
#
|
#
|
||||||
# For literate programming, use something like
|
# For literate programming, use something like
|
||||||
# \converter nw tex "noweave -delay -index $$FName >$$OutName"
|
#\converter literate latex "noweave -delay -index $$FName >$$OutName"
|
||||||
# "parselog=listerrors g"
|
# "parselog=listerrors g"
|
||||||
# \converter nw Program "build-script $$FName"
|
#\converter literate program "build-script $$FName"
|
||||||
# "originaldir,parselog=listerrors g"
|
# "originaldir,parselog=listerrors g"
|
||||||
|
|
||||||
|
# The format command is used to define file formats. It has 4 arguments:
|
||||||
|
# the format name, the extension, and "pretty name" and menu shortcut.
|
||||||
|
# For example
|
||||||
|
#\Format latex tex LaTeX L
|
||||||
|
|
||||||
# The \viewer command is used to define viewers for new file-formats,
|
# The \viewer command is used to define viewers for new formats,
|
||||||
# or to change the already defined viewers.
|
# or to change the already defined viewers.
|
||||||
# For example, to use xdvi as the viewer to dvi files use
|
# For example, to use xdvi as the viewer to dvi files use
|
||||||
#\viewer dvi "xdvi"
|
#\viewer dvi "xdvi"
|
||||||
@ -401,13 +397,6 @@
|
|||||||
# Choose "default" if T1 doesn't work for you for some reason:
|
# Choose "default" if T1 doesn't work for you for some reason:
|
||||||
#\font_encoding default
|
#\font_encoding default
|
||||||
|
|
||||||
#
|
|
||||||
# LINUXDOC SECTION #######################################################
|
|
||||||
#
|
|
||||||
|
|
||||||
# The LinuxDoc to LyX converter
|
|
||||||
#\linuxdoc_to_lyx_command "sgml2lyx"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# FILE SECTION ##########################################################
|
# FILE SECTION ##########################################################
|
||||||
#
|
#
|
||||||
|
@ -36,10 +36,10 @@ Menuset
|
|||||||
Separator
|
Separator
|
||||||
Item "View dvi|d" "buffer-view dvi"
|
Item "View dvi|d" "buffer-view dvi"
|
||||||
Item "View Postscript|w" "buffer-view ps"
|
Item "View Postscript|w" "buffer-view ps"
|
||||||
Submenu "View" "view"
|
Submenu "View|V" "view"
|
||||||
Item "Update dvi|v" "buffer-update dvi"
|
Item "Update dvi" "buffer-update dvi"
|
||||||
Item "Update Postscript|U" "buffer-update ps"
|
Item "Update Postscript" "buffer-update ps"
|
||||||
Submenu "Update" "update"
|
Submenu "Update|U" "update"
|
||||||
OptItem "Build program|B" "build-program"
|
OptItem "Build program|B" "build-program"
|
||||||
Separator
|
Separator
|
||||||
Item "Print...|P" "buffer-print"
|
Item "Print...|P" "buffer-print"
|
||||||
@ -74,9 +74,11 @@ Menuset
|
|||||||
|
|
||||||
Menu "import"
|
Menu "import"
|
||||||
Item "LaTeX|L" "buffer-import latex"
|
Item "LaTeX|L" "buffer-import latex"
|
||||||
Item "Ascii text as lines|A" "buffer-import ascii"
|
Item "Ascii text as lines|A" "buffer-import text"
|
||||||
Item "Ascii text as paragraphs|p" "buffer-import ascii"
|
Item "Ascii text as paragraphs|p" "buffer-import textparagraph"
|
||||||
Item "Noweb|N" "buffer-import noweb"
|
Item "HTML|H" "buffer-import html"
|
||||||
|
Item "Noweb|N" "buffer-import literate"
|
||||||
|
Item "LinuxDoc|D" "buffer-import linuxdoc"
|
||||||
End
|
End
|
||||||
|
|
||||||
Menu "export"
|
Menu "export"
|
||||||
|
@ -76,6 +76,7 @@ src/frontends/xforms/FormUrl.C
|
|||||||
src/frontends/xforms/form_url.C
|
src/frontends/xforms/form_url.C
|
||||||
src/frontends/xforms/Menubar_pimpl.C
|
src/frontends/xforms/Menubar_pimpl.C
|
||||||
src/gettext.h
|
src/gettext.h
|
||||||
|
src/importer.C
|
||||||
src/insets/figinset.C
|
src/insets/figinset.C
|
||||||
src/insets/form_graphics.C
|
src/insets/form_graphics.C
|
||||||
src/insets/insetbib.C
|
src/insets/insetbib.C
|
||||||
|
@ -1,51 +0,0 @@
|
|||||||
/* This file is part of
|
|
||||||
* ======================================================
|
|
||||||
*
|
|
||||||
* LyX, The Document Processor
|
|
||||||
* Copyright 1995 Matthias Ettrich
|
|
||||||
* Copyright 1995-2000 The LyX Team.
|
|
||||||
*
|
|
||||||
* This file is Copyright 1998
|
|
||||||
* Asger Alstrup
|
|
||||||
*
|
|
||||||
* ======================================================
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <config.h>
|
|
||||||
|
|
||||||
#ifdef __GNUG__
|
|
||||||
#pragma implementation
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "ImportLaTeX.h"
|
|
||||||
#include "lyxrc.h"
|
|
||||||
#include "support/syscall.h"
|
|
||||||
#include "support/filetools.h"
|
|
||||||
#include "bufferlist.h"
|
|
||||||
|
|
||||||
extern BufferList bufferlist;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* CLASS ImportLaTeX
|
|
||||||
*/
|
|
||||||
|
|
||||||
ImportLaTeX::ImportLaTeX(string const & file)
|
|
||||||
: file(file)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
Buffer * ImportLaTeX::run()
|
|
||||||
{
|
|
||||||
// run reLyX
|
|
||||||
string tmp = lyxrc.relyx_command + " -f " + file;
|
|
||||||
Systemcalls one;
|
|
||||||
Buffer * buf = 0;
|
|
||||||
int result = one.startscript(Systemcalls::System, tmp);
|
|
||||||
if (result == 0) {
|
|
||||||
string filename = ChangeExtension(file, ".lyx");
|
|
||||||
// File was generated without problems. Load it.
|
|
||||||
buf = bufferlist.loadLyXFile(filename);
|
|
||||||
}
|
|
||||||
return buf;
|
|
||||||
}
|
|
@ -1,43 +0,0 @@
|
|||||||
// -*- C++ -*-
|
|
||||||
/* This file is part of
|
|
||||||
* ======================================================
|
|
||||||
*
|
|
||||||
* LyX, The Document Processor
|
|
||||||
*
|
|
||||||
* Copyright 1995-2000 The LyX Team.
|
|
||||||
*
|
|
||||||
* This file is Copyright 1998
|
|
||||||
* Asger Alstrup
|
|
||||||
*
|
|
||||||
* ======================================================
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef IMPORTLATEX_H
|
|
||||||
#define IMPORTLATEX_H
|
|
||||||
|
|
||||||
#ifdef __GNUG__
|
|
||||||
#pragma interface
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "LString.h"
|
|
||||||
|
|
||||||
class Buffer;
|
|
||||||
|
|
||||||
///
|
|
||||||
class ImportLaTeX {
|
|
||||||
public:
|
|
||||||
/**
|
|
||||||
file = name and path of the latex file
|
|
||||||
*/
|
|
||||||
explicit ImportLaTeX(string const & file);
|
|
||||||
|
|
||||||
/** Imports the document.
|
|
||||||
Return 0 if fail.
|
|
||||||
*/
|
|
||||||
Buffer * run();
|
|
||||||
private:
|
|
||||||
///
|
|
||||||
string file;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,73 +0,0 @@
|
|||||||
/* This file is part of
|
|
||||||
* ======================================================
|
|
||||||
*
|
|
||||||
* LyX, The Document Processor
|
|
||||||
* Copyright 1995 Matthias Ettrich
|
|
||||||
* Copyright 1995-2000 The LyX Team.
|
|
||||||
*
|
|
||||||
* This file is Copyright 1999
|
|
||||||
* Kayvan A. Sylvan
|
|
||||||
*
|
|
||||||
* ======================================================
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <config.h>
|
|
||||||
|
|
||||||
#ifdef __GNUG__
|
|
||||||
#pragma implementation
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <fstream>
|
|
||||||
#include <cstdlib>
|
|
||||||
|
|
||||||
#include "ImportNoweb.h"
|
|
||||||
#include "lyxrc.h"
|
|
||||||
#include "support/syscall.h"
|
|
||||||
#include "bufferlist.h"
|
|
||||||
|
|
||||||
using std::ifstream;
|
|
||||||
using std::getline;
|
|
||||||
|
|
||||||
extern BufferList bufferlist;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Implementation the ImportNoweb methods.
|
|
||||||
*/
|
|
||||||
|
|
||||||
Buffer * ImportNoweb::run()
|
|
||||||
{
|
|
||||||
// run reLyX -n
|
|
||||||
string tmp = lyxrc.relyx_command + " -n -c " +
|
|
||||||
documentclass() + " -f " + file;
|
|
||||||
Systemcalls one;
|
|
||||||
Buffer * buf = 0;
|
|
||||||
int result= one.startscript(Systemcalls::System, tmp);
|
|
||||||
if (result == 0) {
|
|
||||||
string filename = file + ".lyx";
|
|
||||||
// File was generated without problems. Load it.
|
|
||||||
buf = bufferlist.loadLyXFile(filename);
|
|
||||||
}
|
|
||||||
return buf;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Provide the literate documentclass by parsing the file.
|
|
||||||
string const ImportNoweb::documentclass()
|
|
||||||
{
|
|
||||||
string result = "literate-article"; // Default
|
|
||||||
|
|
||||||
ifstream ifs(file.c_str());
|
|
||||||
|
|
||||||
if (!ifs) return "nofile"; // Should not happen!
|
|
||||||
string line;
|
|
||||||
while (getline(ifs, line)) {
|
|
||||||
string::size_type p = line.find("\\documentclass");
|
|
||||||
if (p != string::npos) {
|
|
||||||
p = line.find('{', p);
|
|
||||||
string::size_type q = line.find('}', p);
|
|
||||||
result = "literate-" + line.substr(p + 1, q - p - 1);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
@ -1,50 +0,0 @@
|
|||||||
// -*- C++ -*-
|
|
||||||
/* This file is part of
|
|
||||||
* ======================================================
|
|
||||||
*
|
|
||||||
* LyX, The Document Processor
|
|
||||||
*
|
|
||||||
* Copyright 1995-2000 The LyX Team.
|
|
||||||
*
|
|
||||||
* This file is Copyright 1999
|
|
||||||
* Kayvan A. Sylvan
|
|
||||||
*
|
|
||||||
* ======================================================
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef IMPORTNOWEB_H
|
|
||||||
#define IMPORTNOWEB_H
|
|
||||||
|
|
||||||
#ifdef __GNUG__
|
|
||||||
#pragma interface
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "LString.h"
|
|
||||||
|
|
||||||
class Buffer;
|
|
||||||
|
|
||||||
///
|
|
||||||
class ImportNoweb {
|
|
||||||
public:
|
|
||||||
/**
|
|
||||||
file = name and path of the noweb file to import
|
|
||||||
*/
|
|
||||||
explicit ImportNoweb(string const & file) : file(file) {}
|
|
||||||
|
|
||||||
/** Imports the document.
|
|
||||||
Return 0 if fail.
|
|
||||||
*/
|
|
||||||
Buffer * run();
|
|
||||||
private:
|
|
||||||
///
|
|
||||||
string file;
|
|
||||||
///
|
|
||||||
string const documentclass();
|
|
||||||
///
|
|
||||||
enum {
|
|
||||||
///
|
|
||||||
BUFSIZE = 512
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
@ -12,6 +12,7 @@
|
|||||||
#include "lyxrc.h"
|
#include "lyxrc.h"
|
||||||
#include "BufferView.h"
|
#include "BufferView.h"
|
||||||
#include "gettext.h"
|
#include "gettext.h"
|
||||||
|
#include "converter.h"
|
||||||
|
|
||||||
extern FD_LaTeXLog *fd_latex_log;
|
extern FD_LaTeXLog *fd_latex_log;
|
||||||
extern BufferView *current_view;
|
extern BufferView *current_view;
|
||||||
@ -26,7 +27,7 @@ void ShowLatexLog()
|
|||||||
if (!filename.empty()) {
|
if (!filename.empty()) {
|
||||||
fname = OnlyFilename(ChangeExtension(filename, ".log"));
|
fname = OnlyFilename(ChangeExtension(filename, ".log"));
|
||||||
bname = OnlyFilename(ChangeExtension(filename,
|
bname = OnlyFilename(ChangeExtension(filename,
|
||||||
lyxrc.literate_extension + ".out"));
|
Formats::Extension("literate") + ".out"));
|
||||||
path = OnlyPath(filename);
|
path = OnlyPath(filename);
|
||||||
if (lyxrc.use_tempdir || (IsDirWriteable(path) < 1)) {
|
if (lyxrc.use_tempdir || (IsDirWriteable(path) < 1)) {
|
||||||
path = current_view->buffer()->tmppath;
|
path = current_view->buffer()->tmppath;
|
||||||
|
@ -45,10 +45,6 @@ lyx_SOURCES = \
|
|||||||
FontInfo.h \
|
FontInfo.h \
|
||||||
FontLoader.C \
|
FontLoader.C \
|
||||||
FontLoader.h \
|
FontLoader.h \
|
||||||
ImportLaTeX.C \
|
|
||||||
ImportLaTeX.h \
|
|
||||||
ImportNoweb.C \
|
|
||||||
ImportNoweb.h \
|
|
||||||
LColor.C \
|
LColor.C \
|
||||||
LColor.h \
|
LColor.h \
|
||||||
LString.h \
|
LString.h \
|
||||||
@ -129,6 +125,8 @@ lyx_SOURCES = \
|
|||||||
form1.h \
|
form1.h \
|
||||||
gettext.C \
|
gettext.C \
|
||||||
gettext.h \
|
gettext.h \
|
||||||
|
importer.C \
|
||||||
|
importer.h \
|
||||||
include_form.h \
|
include_form.h \
|
||||||
intl.C \
|
intl.C \
|
||||||
intl.h \
|
intl.h \
|
||||||
|
@ -262,16 +262,23 @@ void Menu::expand(Menu & tomenu, Buffer * buf) const
|
|||||||
fit != names.end() ; ++fit) {
|
fit != names.end() ; ++fit) {
|
||||||
string fmt = (*fit).format->name;
|
string fmt = (*fit).format->name;
|
||||||
string label = (*fit).format->prettyname;
|
string label = (*fit).format->prettyname;
|
||||||
|
bool same_before =
|
||||||
|
fit != names.begin() &&
|
||||||
|
(*fit).format == (*(fit-1)).format;
|
||||||
|
bool same_after =
|
||||||
|
fit+1 != names.end() &&
|
||||||
|
(*fit).format == (*(fit+1)).format;
|
||||||
if ((*fit).from &&
|
if ((*fit).from &&
|
||||||
( (fit != names.begin() &&
|
(same_before || same_after)) {
|
||||||
(*fit).format == (*(fit-1)).format) ||
|
|
||||||
(fit+1 != names.end() &&
|
|
||||||
(*fit).format == (*(fit+1)).format) )) {
|
|
||||||
fmt += ":" + (*fit).from->name;
|
fmt += ":" + (*fit).from->name;
|
||||||
string head;
|
string head;
|
||||||
split((*fit).command, head, ' ');
|
split((*fit).command, head, ' ');
|
||||||
label += _(" (using ") + head + ")";
|
label += _(" (using ") + head + ")";
|
||||||
}
|
if (!(*fit).format->shortcut.empty() &&
|
||||||
|
!same_before)
|
||||||
|
label += "|" + (*fit).format->shortcut;
|
||||||
|
} else if (!(*fit).format->shortcut.empty())
|
||||||
|
label += "|" + (*fit).format->shortcut;
|
||||||
int action2 = lyxaction.getPseudoAction(action, fmt);
|
int action2 = lyxaction.getPseudoAction(action, fmt);
|
||||||
tomenu.add(MenuItem(MenuItem::Command,
|
tomenu.add(MenuItem(MenuItem::Command,
|
||||||
label, action2));
|
label, action2));
|
||||||
|
277
src/converter.C
277
src/converter.C
@ -33,6 +33,8 @@ using std::vector;
|
|||||||
using std::queue;
|
using std::queue;
|
||||||
using std::pair;
|
using std::pair;
|
||||||
using std::endl;
|
using std::endl;
|
||||||
|
using std::find;
|
||||||
|
using std::find_if;
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
@ -50,37 +52,17 @@ string const add_options(string const & command, string const & options)
|
|||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
Format::Format(string const & n)
|
|
||||||
: name(n)
|
|
||||||
{
|
|
||||||
struct Item {
|
|
||||||
char const * name;
|
|
||||||
char const * prettyname;
|
|
||||||
};
|
|
||||||
Item items[] = {
|
|
||||||
{ "tex", "LaTeX" },
|
|
||||||
{ "dvi", "DVI" },
|
|
||||||
{ "ps", "PostScript" },
|
|
||||||
{ "txt", "Ascii" },
|
|
||||||
{ "html", "HTML" },
|
|
||||||
{ "pdf", "PDF" },
|
|
||||||
{ "nw", "NoWeb/LaTeX"},
|
|
||||||
{ 0, 0}
|
|
||||||
};
|
|
||||||
|
|
||||||
prettyname = n;
|
|
||||||
for (int i = 0; items[i].name != 0; ++i)
|
|
||||||
if (items[i].name == n) {
|
|
||||||
prettyname = items[i].prettyname;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void Formats::Add(string const & name)
|
void Formats::Add(string const & name)
|
||||||
{
|
{
|
||||||
if (formats.find(name) == formats.end())
|
if (formats.find(name) == formats.end())
|
||||||
formats[name] = Format(name);
|
formats[name] = Format(name, name, name, string());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Formats::Add(string const & name, string const & extension,
|
||||||
|
string const & prettyname, string const & shortcut)
|
||||||
|
{
|
||||||
|
formats[name] = Format(name, extension, prettyname, shortcut);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -96,23 +78,23 @@ void Formats::SetViewer(string const & name, string const & command)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool Formats::View(Buffer const * buffer, string const & filename)
|
bool Formats::View(Buffer const * buffer, string const & filename,
|
||||||
|
string const & format_name)
|
||||||
{
|
{
|
||||||
if (filename.empty())
|
if (filename.empty())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
string extension = GetExtension(filename);
|
Format const * format = GetFormat(format_name);
|
||||||
Format * format = GetFormat(extension);
|
|
||||||
if (!format || format->viewer.empty()) {
|
if (!format || format->viewer.empty()) {
|
||||||
WriteAlert(_("Can not view file"),
|
WriteAlert(_("Can not view file"),
|
||||||
_("No information for viewing ")
|
_("No information for viewing ")
|
||||||
+ Formats::PrettyName(extension));
|
+ Formats::PrettyName(format_name));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
string command = format->viewer;
|
string command = format->viewer;
|
||||||
|
|
||||||
if (extension == "dvi" &&
|
if (format_name == "dvi" &&
|
||||||
!lyxrc.view_dvi_paper_option.empty()) {
|
!lyxrc.view_dvi_paper_option.empty()) {
|
||||||
string options = lyxrc.view_dvi_paper_option;
|
string options = lyxrc.view_dvi_paper_option;
|
||||||
options += " " + Converter::dvi_papersize(buffer);
|
options += " " + Converter::dvi_papersize(buffer);
|
||||||
@ -152,38 +134,68 @@ Format * Formats::GetFormat(string const & name)
|
|||||||
|
|
||||||
string const Formats::PrettyName(string const & name)
|
string const Formats::PrettyName(string const & name)
|
||||||
{
|
{
|
||||||
string format;
|
Format const * format = GetFormat(name);
|
||||||
Converter::SplitFormat(name, format);
|
if (format)
|
||||||
Format * f = GetFormat(format);
|
return format->prettyname;
|
||||||
if (f)
|
|
||||||
return f->prettyname;
|
|
||||||
else
|
else
|
||||||
return format;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
string const Formats::Extension(string const & name)
|
||||||
|
{
|
||||||
|
Format const * format = GetFormat(name);
|
||||||
|
if (format)
|
||||||
|
return format->extension;
|
||||||
|
else
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
class compare_Command {
|
||||||
|
public:
|
||||||
|
compare_Command(Command const & c) : com(c) {}
|
||||||
|
bool operator()(Command const & c) {
|
||||||
|
return c.from == com.from && c.to == com.to;
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
Command com;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
void Converter::Add(string const & from, string const & to,
|
void Converter::Add(string const & from, string const & to,
|
||||||
string const & command, string const & flags)
|
string const & command, string const & flags)
|
||||||
{
|
{
|
||||||
if (command == "none")
|
Formats::Add(from);
|
||||||
|
Formats::Add(to);
|
||||||
|
Command Com(Formats::GetFormat(from), Formats::GetFormat(to), command);
|
||||||
|
vector<Command>::iterator it = find_if(commands.begin(),
|
||||||
|
commands.end(),
|
||||||
|
compare_Command(Com));
|
||||||
|
|
||||||
|
if (command.empty() || command == "none") {
|
||||||
|
if (it != commands.end())
|
||||||
|
commands.erase(it);
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
Command Com(from, to, command);
|
|
||||||
|
|
||||||
if (from == "tex" &&
|
|
||||||
(to == "dvi" ||
|
|
||||||
(to == "pdf" && latex_command.empty())))
|
|
||||||
latex_command = command;
|
|
||||||
|
|
||||||
// Read the flags
|
// Read the flags
|
||||||
string flag_name,flag_value;
|
|
||||||
string flag_list(flags);
|
string flag_list(flags);
|
||||||
while (!flag_list.empty()) {
|
while (!flag_list.empty()) {
|
||||||
flag_list = split(flag_list, flag_value,',');
|
string flag_name, flag_value;
|
||||||
|
flag_list = split(flag_list, flag_value, ',');
|
||||||
flag_value = split(flag_value, flag_name, '=');
|
flag_value = split(flag_value, flag_name, '=');
|
||||||
if (flag_name == "originaldir")
|
if (flag_name == "*") {
|
||||||
|
if (it != commands.end()) {
|
||||||
|
Com = *it;
|
||||||
|
Com.command = command;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (flag_name == "latex")
|
||||||
|
Com.latex = true;
|
||||||
|
else if (flag_name == "originaldir")
|
||||||
Com.original_dir = true;
|
Com.original_dir = true;
|
||||||
else if (flag_name == "needaux")
|
else if (flag_name == "needaux")
|
||||||
Com.need_aux = true;
|
Com.need_aux = true;
|
||||||
@ -194,27 +206,47 @@ void Converter::Add(string const & from, string const & to,
|
|||||||
Com.result_file = flag_value;
|
Com.result_file = flag_value;
|
||||||
else if (flag_name == "parselog")
|
else if (flag_name == "parselog")
|
||||||
Com.parselog = flag_value;
|
Com.parselog = flag_value;
|
||||||
|
else if (flag_name == "disable") {
|
||||||
|
while (!flag_value.empty()) {
|
||||||
|
string tmp;
|
||||||
|
flag_value = split(flag_value, tmp, '&');
|
||||||
|
Com.disable.push_back(tmp);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (!Com.result_dir.empty() && Com.result_file.empty())
|
if (!Com.result_dir.empty() && Com.result_file.empty())
|
||||||
Com.result_file = "index." + to;
|
Com.result_file = "index." + to;
|
||||||
|
//if (!contains(command, "$$FName"))
|
||||||
|
// Com.latex = true;
|
||||||
|
|
||||||
for (vector<Command>::iterator it = commands.begin();
|
if (Com.latex && (latex_command.empty() || to == "dvi"))
|
||||||
it != commands.end(); ++it)
|
latex_command = command;
|
||||||
if ((*it).from == from && (*it).to == to) {
|
// If we have both latex & pdflatex, we set latex_command to latex.
|
||||||
*it = Com;
|
// The latex_command is used to update the .aux file when running
|
||||||
return;
|
// a converter that uses it.
|
||||||
}
|
|
||||||
|
if (it != commands.end()) {
|
||||||
|
*it = Com;
|
||||||
|
return;
|
||||||
|
}
|
||||||
commands.push_back(Com);
|
commands.push_back(Com);
|
||||||
Formats::Add(from);
|
}
|
||||||
Formats::Add(to);
|
|
||||||
|
|
||||||
|
inline
|
||||||
|
bool enable(vector<Command>::iterator it, string const & from)
|
||||||
|
{
|
||||||
|
return find((*it).disable.begin(), (*it).disable.end(), from)
|
||||||
|
== (*it).disable.end();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
vector<FormatPair> const
|
vector<FormatPair> const
|
||||||
Converter::GetReachable(string const & from, bool only_viewable)
|
Converter::GetReachable(string const & from, string const & stop_format,
|
||||||
|
bool only_viewable)
|
||||||
{
|
{
|
||||||
vector<FormatPair> result;
|
vector<FormatPair> result;
|
||||||
Format * format = Formats::GetFormat(from);
|
Format const * format = Formats::GetFormat(from);
|
||||||
if (!format)
|
if (!format)
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
@ -224,7 +256,8 @@ Converter::GetReachable(string const & from, bool only_viewable)
|
|||||||
queue< vector<Command>::iterator > Q;
|
queue< vector<Command>::iterator > Q;
|
||||||
for (vector<Command>::iterator it = commands.begin();
|
for (vector<Command>::iterator it = commands.begin();
|
||||||
it != commands.end(); ++it)
|
it != commands.end(); ++it)
|
||||||
if ((*it).from == from) {
|
if ((*it).from->name == from && enable(it, from)
|
||||||
|
&& (*it).to->name != stop_format) {
|
||||||
Q.push(it);
|
Q.push(it);
|
||||||
(*it).visited = true;
|
(*it).visited = true;
|
||||||
} else
|
} else
|
||||||
@ -233,14 +266,14 @@ Converter::GetReachable(string const & from, bool only_viewable)
|
|||||||
while (!Q.empty()) {
|
while (!Q.empty()) {
|
||||||
vector<Command>::iterator it = Q.front();
|
vector<Command>::iterator it = Q.front();
|
||||||
Q.pop();
|
Q.pop();
|
||||||
format = Formats::GetFormat((*it).to);
|
if (!only_viewable || !(*it).to->viewer.empty())
|
||||||
if (!only_viewable || !format->viewer.empty())
|
result.push_back(FormatPair((*it).to, (*it).from,
|
||||||
result.push_back(FormatPair(format,
|
|
||||||
Formats::GetFormat((*it).from),
|
|
||||||
(*it).command));
|
(*it).command));
|
||||||
for (vector<Command>::iterator it2 = commands.begin();
|
for (vector<Command>::iterator it2 = commands.begin();
|
||||||
it2 != commands.end(); ++it2)
|
it2 != commands.end(); ++it2)
|
||||||
if (!(*it2).visited && (*it).to == (*it2).from) {
|
if (!(*it2).visited && (*it).to == (*it2).from &&
|
||||||
|
enable(it2, from) &&
|
||||||
|
(*it2).to->name != stop_format) {
|
||||||
Q.push(it2);
|
Q.push(it2);
|
||||||
(*it2).visited = true;
|
(*it2).visited = true;
|
||||||
}
|
}
|
||||||
@ -249,18 +282,16 @@ Converter::GetReachable(string const & from, bool only_viewable)
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Converter::IsReachable(string const & from, string const & target_format)
|
|
||||||
|
bool Converter::IsReachable(string const & from, string const & to)
|
||||||
{
|
{
|
||||||
Format * format = Formats::GetFormat(from);
|
if (from == to)
|
||||||
if (!format)
|
|
||||||
return false;
|
|
||||||
else if (format->name == target_format)
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
queue< vector<Command>::iterator > Q;
|
queue< vector<Command>::iterator > Q;
|
||||||
for (vector<Command>::iterator it = commands.begin();
|
for (vector<Command>::iterator it = commands.begin();
|
||||||
it != commands.end(); ++it)
|
it != commands.end(); ++it)
|
||||||
if ((*it).from == from) {
|
if ((*it).from->name == from && enable(it, from)) {
|
||||||
Q.push(it);
|
Q.push(it);
|
||||||
(*it).visited = true;
|
(*it).visited = true;
|
||||||
} else
|
} else
|
||||||
@ -269,12 +300,12 @@ bool Converter::IsReachable(string const & from, string const & target_format)
|
|||||||
while (!Q.empty()) {
|
while (!Q.empty()) {
|
||||||
vector<Command>::iterator it = Q.front();
|
vector<Command>::iterator it = Q.front();
|
||||||
Q.pop();
|
Q.pop();
|
||||||
format = Formats::GetFormat((*it).to);
|
if ((*it).to->name == to)
|
||||||
if (format->name == target_format)
|
|
||||||
return true;
|
return true;
|
||||||
for (vector<Command>::iterator it2 = commands.begin();
|
for (vector<Command>::iterator it2 = commands.begin();
|
||||||
it2 != commands.end(); ++it2)
|
it2 != commands.end(); ++it2)
|
||||||
if (!(*it2).visited && (*it).to == (*it2).from) {
|
if (!(*it2).visited && (*it).to == (*it2).from &&
|
||||||
|
enable(it2, from)) {
|
||||||
Q.push(it2);
|
Q.push(it2);
|
||||||
(*it2).visited = true;
|
(*it2).visited = true;
|
||||||
}
|
}
|
||||||
@ -283,15 +314,14 @@ bool Converter::IsReachable(string const & from, string const & target_format)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool Converter::Convert(Buffer const * buffer, string const & from_file,
|
bool Converter::Convert(Buffer const * buffer,
|
||||||
string const & to_file, string const & using_format,
|
string const & from_file, string const & to_file_base,
|
||||||
string * view_file)
|
string const & from_format, string const & to_format,
|
||||||
|
string const & using_format, string & to_file)
|
||||||
{
|
{
|
||||||
if (view_file)
|
to_file = ChangeExtension(to_file_base,
|
||||||
*view_file = to_file;
|
Formats::Extension(to_format));
|
||||||
|
|
||||||
string from_format = GetExtension(from_file);
|
|
||||||
string to_format = GetExtension(to_file);
|
|
||||||
if (from_format == to_format)
|
if (from_format == to_format)
|
||||||
if (from_file != to_file)
|
if (from_file != to_file)
|
||||||
return lyx::rename(from_file, to_file);
|
return lyx::rename(from_file, to_file);
|
||||||
@ -301,7 +331,7 @@ bool Converter::Convert(Buffer const * buffer, string const & from_file,
|
|||||||
queue< vector<Command>::iterator > Q;
|
queue< vector<Command>::iterator > Q;
|
||||||
for (vector<Command>::iterator it = commands.begin();
|
for (vector<Command>::iterator it = commands.begin();
|
||||||
it != commands.end(); ++it)
|
it != commands.end(); ++it)
|
||||||
if ((*it).from == from_format) {
|
if ((*it).from->name == from_format && enable(it, from_format)) {
|
||||||
Q.push(it);
|
Q.push(it);
|
||||||
(*it).visited = true;
|
(*it).visited = true;
|
||||||
(*it).previous = commands.end();
|
(*it).previous = commands.end();
|
||||||
@ -318,15 +348,16 @@ bool Converter::Convert(Buffer const * buffer, string const & from_file,
|
|||||||
vector<Command>::iterator it;
|
vector<Command>::iterator it;
|
||||||
while (!Q.empty()) {
|
while (!Q.empty()) {
|
||||||
it = Q.front();
|
it = Q.front();
|
||||||
if ((*it).to == to_format &&
|
if ((*it).to->name == to_format &&
|
||||||
(using_format.empty() || using_format == (*it).from)) {
|
(using_format.empty() || using_format == (*it).from->name)) {
|
||||||
found = true;
|
found = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
Q.pop();
|
Q.pop();
|
||||||
for (vector<Command>::iterator it2 = commands.begin();
|
for (vector<Command>::iterator it2 = commands.begin();
|
||||||
it2 != commands.end(); ++it2)
|
it2 != commands.end(); ++it2)
|
||||||
if (!(*it2).visited && (*it).to == (*it2).from) {
|
if (!(*it2).visited && (*it).to == (*it2).from &&
|
||||||
|
enable(it2, from_format)) {
|
||||||
Q.push(it2);
|
Q.push(it2);
|
||||||
(*it2).visited = true;
|
(*it2).visited = true;
|
||||||
(*it2).previous = it;
|
(*it2).previous = it;
|
||||||
@ -359,18 +390,17 @@ bool Converter::Convert(Buffer const * buffer, string const & from_file,
|
|||||||
S.rbegin(); rit != S.rend(); ++rit) {
|
S.rbegin(); rit != S.rend(); ++rit) {
|
||||||
it = *rit;
|
it = *rit;
|
||||||
lyxerr << "Converting from "
|
lyxerr << "Converting from "
|
||||||
<< (*it).from << " to " << (*it).to << endl;
|
<< (*it).from->name << " to " << (*it).to->name << endl;
|
||||||
infile = outfile;
|
infile = outfile;
|
||||||
outfile = (*it).result_dir.empty()
|
outfile = (*it).result_dir.empty()
|
||||||
? ChangeExtension(from_file, (*it).to)
|
? ChangeExtension(from_file, (*it).to->extension)
|
||||||
: AddName(subst((*it).result_dir,
|
: AddName(subst((*it).result_dir,
|
||||||
"$$BaseName", from_base),
|
"$$BaseName", from_base),
|
||||||
subst((*it).result_file,
|
subst((*it).result_file,
|
||||||
"$$BaseName", OnlyFilename(from_base)));
|
"$$BaseName", OnlyFilename(from_base)));
|
||||||
|
|
||||||
if ((*it).from == "tex" &&
|
if ((*it).latex) {
|
||||||
( (*it).to == "dvi" || (*it).to == "pdf") ) {
|
lyxrc.pdf_mode = (*it).to->name == "pdf";
|
||||||
lyxrc.pdf_mode = (*it).to == "pdf";
|
|
||||||
lyxerr << "Running " << (*it).command << endl;
|
lyxerr << "Running " << (*it).command << endl;
|
||||||
run_latex = true;
|
run_latex = true;
|
||||||
if (!runLaTeX(buffer, (*it).command))
|
if (!runLaTeX(buffer, (*it).command))
|
||||||
@ -396,16 +426,17 @@ bool Converter::Convert(Buffer const * buffer, string const & from_file,
|
|||||||
if (!(*it).parselog.empty())
|
if (!(*it).parselog.empty())
|
||||||
command += " 2> " + QuoteName(infile2 + ".out");
|
command += " 2> " + QuoteName(infile2 + ".out");
|
||||||
|
|
||||||
if ((*it).from == "dvi" && (*it).to == "ps")
|
if ((*it).from->name == "dvi" && (*it).to->name == "ps")
|
||||||
command = add_options(command,
|
command = add_options(command,
|
||||||
dvips_options(buffer));
|
dvips_options(buffer));
|
||||||
|
|
||||||
lyxerr << "Calling " << command << endl;
|
lyxerr << "Calling " << command << endl;
|
||||||
ShowMessage(buffer, _("Executing command:"), command);
|
if (buffer)
|
||||||
|
ShowMessage(buffer, _("Executing command:"), command);
|
||||||
|
|
||||||
Systemcalls one;
|
Systemcalls one;
|
||||||
int res;
|
int res;
|
||||||
if ((*it).original_dir) {
|
if ((*it).original_dir && buffer) {
|
||||||
Path p(buffer->filepath);
|
Path p(buffer->filepath);
|
||||||
res = one.startscript(Systemcalls::System, command);
|
res = one.startscript(Systemcalls::System, command);
|
||||||
} else
|
} else
|
||||||
@ -422,7 +453,7 @@ bool Converter::Convert(Buffer const * buffer, string const & from_file,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (res) {
|
if (res) {
|
||||||
if ((*it).to == "Program")
|
if ((*it).to->name == "program")
|
||||||
WriteAlert(_("There were errors during the Build process."),
|
WriteAlert(_("There were errors during the Build process."),
|
||||||
_("You should try to fix them."));
|
_("You should try to fix them."));
|
||||||
else
|
else
|
||||||
@ -435,11 +466,10 @@ bool Converter::Convert(Buffer const * buffer, string const & from_file,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!(*it).result_dir.empty()) {
|
if (!(*it).result_dir.empty()) {
|
||||||
if (view_file)
|
to_file = AddName(subst((*it).result_dir,
|
||||||
*view_file = AddName(subst((*it).result_dir,
|
"$$BaseName", to_base),
|
||||||
"$$BaseName", to_base),
|
subst((*it).result_file,
|
||||||
subst((*it).result_file,
|
"$$BaseName", OnlyFilename(to_base)));
|
||||||
"$$BaseName", OnlyFilename(to_base)));
|
|
||||||
if (from_base != to_base) {
|
if (from_base != to_base) {
|
||||||
string from = subst((*it).result_dir,
|
string from = subst((*it).result_dir,
|
||||||
"$$BaseName", from_base);
|
"$$BaseName", from_base);
|
||||||
@ -447,10 +477,8 @@ bool Converter::Convert(Buffer const * buffer, string const & from_file,
|
|||||||
"$$BaseName", to_base);
|
"$$BaseName", to_base);
|
||||||
return lyx::rename(from, to);
|
return lyx::rename(from, to);
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (outfile != to_file)
|
} else if (outfile != to_file)
|
||||||
if ((*it).from == "tex" &&
|
if ((*it).latex)
|
||||||
( (*it).to == "dvi" || (*it).to == "pdf") )
|
|
||||||
return lyx::copy(outfile, to_file);
|
return lyx::copy(outfile, to_file);
|
||||||
else
|
else
|
||||||
return lyx::rename(outfile, to_file);
|
return lyx::rename(outfile, to_file);
|
||||||
@ -459,6 +487,17 @@ bool Converter::Convert(Buffer const * buffer, string const & from_file,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool Converter::Convert(Buffer const * buffer,
|
||||||
|
string const & from_file, string const & to_file_base,
|
||||||
|
string const & from_format, string const & to_format,
|
||||||
|
string const & using_format)
|
||||||
|
{
|
||||||
|
string to_file;
|
||||||
|
return Convert(buffer, from_file, to_file_base, from_format, to_format,
|
||||||
|
using_format, to_file);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
string const Converter::SplitFormat(string const & str, string & format)
|
string const Converter::SplitFormat(string const & str, string & format)
|
||||||
{
|
{
|
||||||
string using_format = split(str, format, ':');
|
string using_format = split(str, format, ':');
|
||||||
@ -467,9 +506,13 @@ string const Converter::SplitFormat(string const & str, string & format)
|
|||||||
return using_format;
|
return using_format;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool Converter::scanLog(Buffer const * buffer, string const & command,
|
bool Converter::scanLog(Buffer const * buffer, string const & command,
|
||||||
string const & filename)
|
string const & filename)
|
||||||
{
|
{
|
||||||
|
if (!buffer)
|
||||||
|
return false;
|
||||||
|
|
||||||
BufferView * bv = buffer->getUser();
|
BufferView * bv = buffer->getUser();
|
||||||
bool need_redraw = false;
|
bool need_redraw = false;
|
||||||
if (bv) {
|
if (bv) {
|
||||||
@ -491,14 +534,9 @@ bool Converter::scanLog(Buffer const * buffer, string const & command,
|
|||||||
bv->redraw();
|
bv->redraw();
|
||||||
bv->fitCursor(bv->text);
|
bv->fitCursor(bv->text);
|
||||||
}
|
}
|
||||||
if (result & LaTeX::NO_OUTPUT) {
|
|
||||||
string const s = _("The operation resulted in");
|
|
||||||
string const t = _("an empty file.");
|
|
||||||
WriteAlert(_("Resulting file is empty"), s, t);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
AllowInput(bv);
|
AllowInput(bv);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((result & LaTeX::ERRORS)) {
|
if ((result & LaTeX::ERRORS)) {
|
||||||
int num_errors = latex.getNumErrors();
|
int num_errors = latex.getNumErrors();
|
||||||
string s;
|
string s;
|
||||||
@ -516,13 +554,21 @@ bool Converter::scanLog(Buffer const * buffer, string const & command,
|
|||||||
WriteAlert(_("There were errors during running of ") + head,
|
WriteAlert(_("There were errors during running of ") + head,
|
||||||
s, t);
|
s, t);
|
||||||
return false;
|
return false;
|
||||||
|
} else if (result & LaTeX::NO_OUTPUT) {
|
||||||
|
string const s = _("The operation resulted in");
|
||||||
|
string const t = _("an empty file.");
|
||||||
|
WriteAlert(_("Resulting file is empty"), s, t);
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool Converter::runLaTeX(Buffer const * buffer, string const & command)
|
bool Converter::runLaTeX(Buffer const * buffer, string const & command)
|
||||||
{
|
{
|
||||||
|
if (!buffer)
|
||||||
|
return false;
|
||||||
|
|
||||||
BufferView * bv = buffer->getUser();
|
BufferView * bv = buffer->getUser();
|
||||||
string name = buffer->getLatexName();
|
string name = buffer->getLatexName();
|
||||||
bool need_redraw = false;
|
bool need_redraw = false;
|
||||||
@ -555,10 +601,6 @@ bool Converter::runLaTeX(Buffer const * buffer, string const & command)
|
|||||||
bv->redraw();
|
bv->redraw();
|
||||||
bv->fitCursor(bv->text);
|
bv->fitCursor(bv->text);
|
||||||
}
|
}
|
||||||
} else if (result & LaTeX::NO_OUTPUT) {
|
|
||||||
string const s = _("The operation resulted in");
|
|
||||||
string const t = _("an empty file.");
|
|
||||||
WriteAlert(_("Resulting file is empty"), s, t);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// check return value from latex.run().
|
// check return value from latex.run().
|
||||||
@ -579,6 +621,10 @@ bool Converter::runLaTeX(Buffer const * buffer, string const & command)
|
|||||||
}
|
}
|
||||||
WriteAlert(_("There were errors during the LaTeX run."),
|
WriteAlert(_("There were errors during the LaTeX run."),
|
||||||
s, t);
|
s, t);
|
||||||
|
} else if (result & LaTeX::NO_OUTPUT) {
|
||||||
|
string const s = _("The operation resulted in");
|
||||||
|
string const t = _("an empty file.");
|
||||||
|
WriteAlert(_("Resulting file is empty"), s, t);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (bv)
|
if (bv)
|
||||||
@ -623,6 +669,9 @@ string const Converter::dvi_papersize(Buffer const * buffer)
|
|||||||
string const Converter::dvips_options(Buffer const * buffer)
|
string const Converter::dvips_options(Buffer const * buffer)
|
||||||
{
|
{
|
||||||
string result;
|
string result;
|
||||||
|
if (!buffer)
|
||||||
|
return result;
|
||||||
|
|
||||||
if (buffer->params.use_geometry
|
if (buffer->params.use_geometry
|
||||||
&& buffer->params.papersize2 == BufferParams::VM_PAPER_CUSTOM
|
&& buffer->params.papersize2 == BufferParams::VM_PAPER_CUSTOM
|
||||||
&& !lyxrc.print_paper_dimension_flag.empty()
|
&& !lyxrc.print_paper_dimension_flag.empty()
|
||||||
@ -649,7 +698,7 @@ string const Converter::dvips_options(Buffer const * buffer)
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Converter::init()
|
void Converter::init()
|
||||||
{
|
{
|
||||||
Formats::Add("txt");
|
|
||||||
}
|
}
|
||||||
|
@ -22,18 +22,41 @@
|
|||||||
|
|
||||||
class Buffer;
|
class Buffer;
|
||||||
|
|
||||||
|
///
|
||||||
|
class Format {
|
||||||
|
public:
|
||||||
|
///
|
||||||
|
Format() {}
|
||||||
|
///
|
||||||
|
Format(string const & n, string const & e, string const & p,
|
||||||
|
string const & s) :
|
||||||
|
name(n), extension(e), prettyname(p), shortcut(s) {};
|
||||||
|
///
|
||||||
|
string name;
|
||||||
|
///
|
||||||
|
string extension;
|
||||||
|
///
|
||||||
|
string prettyname;
|
||||||
|
///
|
||||||
|
string shortcut;
|
||||||
|
///
|
||||||
|
string viewer;
|
||||||
|
};
|
||||||
|
|
||||||
///
|
///
|
||||||
struct Command {
|
struct Command {
|
||||||
///
|
///
|
||||||
Command(string const & f, string const & t, string const & c)
|
Command(Format const * f, Format const * t, string const & c)
|
||||||
: from(f), to(t), command(c),
|
: from(f), to(t), command(c),
|
||||||
original_dir(false), need_aux(false) {}
|
latex(false), original_dir(false), need_aux(false) {}
|
||||||
///
|
///
|
||||||
string from;
|
Format const * from;
|
||||||
///
|
///
|
||||||
string to;
|
Format const * to;
|
||||||
///
|
///
|
||||||
string command;
|
string command;
|
||||||
|
/// The converter is latex or its derivatives
|
||||||
|
bool latex;
|
||||||
/// Do we need to run the converter in the original directory?
|
/// Do we need to run the converter in the original directory?
|
||||||
bool original_dir;
|
bool original_dir;
|
||||||
/// This converter needs the .aux files
|
/// This converter needs the .aux files
|
||||||
@ -46,6 +69,8 @@ struct Command {
|
|||||||
string result_file;
|
string result_file;
|
||||||
/// Command to convert the program output to a LaTeX log file format
|
/// Command to convert the program output to a LaTeX log file format
|
||||||
string parselog;
|
string parselog;
|
||||||
|
/// Backends in which the converter is not used
|
||||||
|
std::vector<string> disable;
|
||||||
|
|
||||||
/// Used by the BFS algorithm
|
/// Used by the BFS algorithm
|
||||||
bool visited;
|
bool visited;
|
||||||
@ -53,31 +78,16 @@ struct Command {
|
|||||||
std::vector<Command>::iterator previous;
|
std::vector<Command>::iterator previous;
|
||||||
};
|
};
|
||||||
|
|
||||||
///
|
|
||||||
class Format {
|
|
||||||
public:
|
|
||||||
///
|
|
||||||
Format() {}
|
|
||||||
///
|
|
||||||
Format(string const & n);
|
|
||||||
///
|
|
||||||
string name;
|
|
||||||
///
|
|
||||||
string prettyname;
|
|
||||||
///
|
|
||||||
string viewer;
|
|
||||||
};
|
|
||||||
|
|
||||||
class FormatPair {
|
class FormatPair {
|
||||||
public:
|
public:
|
||||||
///
|
///
|
||||||
Format * format;
|
Format const * format;
|
||||||
///
|
///
|
||||||
Format * from;
|
Format const * from;
|
||||||
///
|
///
|
||||||
string command;
|
string command;
|
||||||
///
|
///
|
||||||
FormatPair(Format * f1, Format * f2, string c)
|
FormatPair(Format const * f1, Format const * f2, string c)
|
||||||
: format(f1), from(f2), command(c) {}
|
: format(f1), from(f2), command(c) {}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -89,16 +99,24 @@ public:
|
|||||||
void Add(string const & name);
|
void Add(string const & name);
|
||||||
///
|
///
|
||||||
static
|
static
|
||||||
|
void Add(string const & name, string const & extension,
|
||||||
|
string const & prettyname, string const & shortcut);
|
||||||
|
///
|
||||||
|
static
|
||||||
void SetViewer(string const & name, string const & command);
|
void SetViewer(string const & name, string const & command);
|
||||||
///
|
///
|
||||||
static
|
static
|
||||||
bool View(Buffer const * buffer, string const & filename);
|
bool View(Buffer const * buffer, string const & filename,
|
||||||
|
string const & format_name);
|
||||||
///
|
///
|
||||||
static
|
static
|
||||||
Format * GetFormat(string const & name);
|
Format * GetFormat(string const & name);
|
||||||
///
|
///
|
||||||
static
|
static
|
||||||
string const PrettyName(string const & name);
|
string const PrettyName(string const & name);
|
||||||
|
///
|
||||||
|
static
|
||||||
|
string const Extension(string const & name);
|
||||||
private:
|
private:
|
||||||
///
|
///
|
||||||
static
|
static
|
||||||
@ -117,16 +135,23 @@ public:
|
|||||||
///
|
///
|
||||||
static
|
static
|
||||||
std::vector<FormatPair> const
|
std::vector<FormatPair> const
|
||||||
GetReachable(string const & from,
|
GetReachable(string const & from, string const & stop_format,
|
||||||
bool only_viewable = false);
|
bool only_viewable);
|
||||||
///
|
///
|
||||||
static
|
static
|
||||||
bool IsReachable(string const & from, string const & target_format);
|
bool IsReachable(string const & from, string const & to);
|
||||||
///
|
///
|
||||||
static
|
static
|
||||||
bool Convert(Buffer const * buffer, string const & from_file,
|
bool Convert(Buffer const * buffer,
|
||||||
string const & to_file, string const & using_format,
|
string const & from_file, string const & to_file_base,
|
||||||
string * view_file = 0);
|
string const & from_format, string const & to_format,
|
||||||
|
string const & using_format, string & to_file);
|
||||||
|
///
|
||||||
|
static
|
||||||
|
bool Convert(Buffer const * buffer,
|
||||||
|
string const & from_file, string const & to_file_base,
|
||||||
|
string const & from_format, string const & to_format,
|
||||||
|
string const & using_format = string());
|
||||||
///
|
///
|
||||||
static
|
static
|
||||||
string const SplitFormat(string const & str, string & format);
|
string const SplitFormat(string const & str, string & format);
|
||||||
|
@ -24,22 +24,23 @@
|
|||||||
using std::vector;
|
using std::vector;
|
||||||
|
|
||||||
bool Exporter::Export(Buffer * buffer, string const & format0,
|
bool Exporter::Export(Buffer * buffer, string const & format0,
|
||||||
bool put_in_tempdir, string * view_file)
|
bool put_in_tempdir, string & result_file)
|
||||||
{
|
{
|
||||||
string format;
|
string format;
|
||||||
string using_format = Converter::SplitFormat(format0, format);
|
string using_format = Converter::SplitFormat(format0, format);
|
||||||
|
|
||||||
string backend_format = (format == "txt")
|
string backend_format = (format == "text")
|
||||||
? format : BufferExtension(buffer);
|
? format : BufferFormat(buffer);
|
||||||
bool only_backend = backend_format == format;
|
bool only_backend = backend_format == format;
|
||||||
|
|
||||||
string filename = buffer->getLatexName(false);
|
string filename = buffer->getLatexName(false);
|
||||||
if (!buffer->tmppath.empty())
|
if (!buffer->tmppath.empty())
|
||||||
filename = AddName(buffer->tmppath, filename);
|
filename = AddName(buffer->tmppath, filename);
|
||||||
filename = ChangeExtension(filename, backend_format);
|
filename = ChangeExtension(filename,
|
||||||
|
Formats::Extension(backend_format));
|
||||||
|
|
||||||
// Ascii backend
|
// Ascii backend
|
||||||
if (backend_format == "txt")
|
if (backend_format == "text")
|
||||||
buffer->writeFileAscii(filename, lyxrc.ascii_linelen);
|
buffer->writeFileAscii(filename, lyxrc.ascii_linelen);
|
||||||
// Linuxdoc backend
|
// Linuxdoc backend
|
||||||
else if (buffer->isLinuxDoc())
|
else if (buffer->isLinuxDoc())
|
||||||
@ -53,12 +54,12 @@ bool Exporter::Export(Buffer * buffer, string const & format0,
|
|||||||
else
|
else
|
||||||
buffer->makeLaTeXFile(filename, buffer->filepath, false);
|
buffer->makeLaTeXFile(filename, buffer->filepath, false);
|
||||||
|
|
||||||
string outfile = (put_in_tempdir)
|
string outfile_base = (put_in_tempdir)
|
||||||
? ChangeExtension(filename, format)
|
? filename : buffer->getLatexName(false);
|
||||||
: ChangeExtension(buffer->getLatexName(false), format);
|
|
||||||
|
|
||||||
if (!Converter::Convert(buffer, filename, outfile, using_format,
|
if (!Converter::Convert(buffer, filename, outfile_base,
|
||||||
view_file))
|
backend_format, format, using_format,
|
||||||
|
result_file))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (!put_in_tempdir)
|
if (!put_in_tempdir)
|
||||||
@ -66,25 +67,32 @@ bool Exporter::Export(Buffer * buffer, string const & format0,
|
|||||||
_("Document exported as ")
|
_("Document exported as ")
|
||||||
+ Formats::PrettyName(format)
|
+ Formats::PrettyName(format)
|
||||||
+ _(" to file `")
|
+ _(" to file `")
|
||||||
+ MakeDisplayPath(outfile) +'\'');
|
+ MakeDisplayPath(result_file) +'\'');
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Exporter::Export(Buffer * buffer, string const & format,
|
||||||
|
bool put_in_tempdir)
|
||||||
|
{
|
||||||
|
string result_file;
|
||||||
|
return Export(buffer, format, put_in_tempdir, result_file);
|
||||||
|
}
|
||||||
|
|
||||||
bool Exporter::Preview(Buffer * buffer, string const & format0)
|
bool Exporter::Preview(Buffer * buffer, string const & format0)
|
||||||
{
|
{
|
||||||
string view_file;
|
string result_file;
|
||||||
if (!Export(buffer, format0, true, &view_file))
|
if (!Export(buffer, format0, true, result_file))
|
||||||
return false;
|
return false;
|
||||||
|
string format;
|
||||||
return Formats::View(buffer, view_file);
|
Converter::SplitFormat(format0, format);
|
||||||
|
return Formats::View(buffer, result_file, format);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool Exporter::IsExportable(Buffer const * buffer, string const & format)
|
bool Exporter::IsExportable(Buffer const * buffer, string const & format)
|
||||||
{
|
{
|
||||||
return format == "txt" ||
|
return format == "text" ||
|
||||||
Converter::IsReachable(BufferExtension(buffer), format);
|
Converter::IsReachable(BufferFormat(buffer), format);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -92,8 +100,8 @@ vector<FormatPair> const
|
|||||||
Exporter::GetExportableFormats(Buffer const * buffer)
|
Exporter::GetExportableFormats(Buffer const * buffer)
|
||||||
{
|
{
|
||||||
vector<FormatPair> result =
|
vector<FormatPair> result =
|
||||||
Converter::GetReachable(BufferExtension(buffer), false);
|
Converter::GetReachable(BufferFormat(buffer), "lyx", false);
|
||||||
Format * format = Formats::GetFormat("txt");
|
Format * format = Formats::GetFormat("text");
|
||||||
if (format)
|
if (format)
|
||||||
result.push_back(FormatPair(format , 0, ""));
|
result.push_back(FormatPair(format , 0, ""));
|
||||||
return result;
|
return result;
|
||||||
@ -104,22 +112,22 @@ vector<FormatPair> const
|
|||||||
Exporter::GetViewableFormats(Buffer const * buffer)
|
Exporter::GetViewableFormats(Buffer const * buffer)
|
||||||
{
|
{
|
||||||
vector<FormatPair> result =
|
vector<FormatPair> result =
|
||||||
Converter::GetReachable(BufferExtension(buffer), true);
|
Converter::GetReachable(BufferFormat(buffer), "lyx", true);
|
||||||
Format * format = Formats::GetFormat("txt");
|
Format * format = Formats::GetFormat("text");
|
||||||
if (format && !format->viewer.empty())
|
if (format && !format->viewer.empty())
|
||||||
result.push_back(FormatPair(format , 0, ""));
|
result.push_back(FormatPair(format , 0, ""));
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
string const Exporter::BufferExtension(Buffer const * buffer)
|
string const Exporter::BufferFormat(Buffer const * buffer)
|
||||||
{
|
{
|
||||||
if (buffer->isLinuxDoc())
|
if (buffer->isLinuxDoc())
|
||||||
return "sgml";
|
return "linuxdoc";
|
||||||
else if (buffer->isDocBook())
|
else if (buffer->isDocBook())
|
||||||
return "docbook";
|
return "docbook";
|
||||||
else if (buffer->isLiterate())
|
else if (buffer->isLiterate())
|
||||||
return lyxrc.literate_extension;
|
return "literate";
|
||||||
else
|
else
|
||||||
return "tex";
|
return "latex";
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,11 @@ public:
|
|||||||
///
|
///
|
||||||
static
|
static
|
||||||
bool Export(Buffer * buffer, string const & format,
|
bool Export(Buffer * buffer, string const & format,
|
||||||
bool put_in_tempdir, string * view_file = 0);
|
bool put_in_tempdir, string & result_file);
|
||||||
|
///
|
||||||
|
static
|
||||||
|
bool Export(Buffer * buffer, string const & format,
|
||||||
|
bool put_in_tempdir);
|
||||||
///
|
///
|
||||||
static
|
static
|
||||||
bool Preview(Buffer * buffer, string const & format);
|
bool Preview(Buffer * buffer, string const & format);
|
||||||
@ -44,6 +48,6 @@ public:
|
|||||||
GetViewableFormats(Buffer const * buffer);
|
GetViewableFormats(Buffer const * buffer);
|
||||||
///
|
///
|
||||||
static
|
static
|
||||||
string const BufferExtension(Buffer const * buffer);
|
string const BufferFormat(Buffer const * buffer);
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
69
src/importer.C
Normal file
69
src/importer.C
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
/* This file is part of
|
||||||
|
* ======================================================
|
||||||
|
*
|
||||||
|
* LyX, The Document Processor
|
||||||
|
*
|
||||||
|
* Copyright 1995 Matthias Ettrich
|
||||||
|
* Copyright 1995-2000 The LyX Team.
|
||||||
|
*
|
||||||
|
* ====================================================== */
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma implementation
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "importer.h"
|
||||||
|
#include "converter.h"
|
||||||
|
#include "LyXView.h"
|
||||||
|
#include "lyxfunc.h"
|
||||||
|
#include "minibuffer.h"
|
||||||
|
#include "bufferlist.h"
|
||||||
|
#include "support/filetools.h"
|
||||||
|
|
||||||
|
extern BufferList bufferlist;
|
||||||
|
extern void InsertAsciiFile(BufferView *, string const &, bool);
|
||||||
|
|
||||||
|
|
||||||
|
void Importer::Import(LyXView * lv, string const & filename,
|
||||||
|
string const & format)
|
||||||
|
{
|
||||||
|
string displaypath = MakeDisplayPath(filename);
|
||||||
|
lv->getMiniBuffer()->Set(_("Importing"), displaypath, "...");
|
||||||
|
|
||||||
|
string lyxfile = ChangeExtension(filename, ".lyx");
|
||||||
|
|
||||||
|
bool result = true;
|
||||||
|
if (format == "text" || format == "textparagraph") {
|
||||||
|
lv->view()->buffer(bufferlist.newFile(lyxfile, string(), true));
|
||||||
|
bool as_paragraphs = format == "textparagraph";
|
||||||
|
InsertAsciiFile(lv->view(), filename, as_paragraphs);
|
||||||
|
lv->getLyXFunc()->Dispatch(LFUN_MARK_OFF);
|
||||||
|
} else {
|
||||||
|
result = Converter::Convert(0, filename, filename, format, "lyx");
|
||||||
|
if (result) {
|
||||||
|
Buffer * buffer = bufferlist.loadLyXFile(lyxfile);
|
||||||
|
if (buffer)
|
||||||
|
lv->view()->buffer(buffer);
|
||||||
|
else
|
||||||
|
result = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// we are done
|
||||||
|
if (result)
|
||||||
|
lv->getMiniBuffer()->Set(displaypath, _("imported."));
|
||||||
|
else
|
||||||
|
lv->getMiniBuffer()->Set(displaypath, _(": import failed."));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool Importer::IsImportable(string const & format)
|
||||||
|
{
|
||||||
|
if (format == "text" || format == "textparagraph")
|
||||||
|
return true;
|
||||||
|
else
|
||||||
|
return Converter::IsReachable(format, "lyx");
|
||||||
|
}
|
32
src/importer.h
Normal file
32
src/importer.h
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
// -*- C++ -*-
|
||||||
|
/* This file is part of
|
||||||
|
* ======================================================
|
||||||
|
*
|
||||||
|
* LyX, The Document Processor
|
||||||
|
*
|
||||||
|
* Copyright 1995 Matthias Ettrich
|
||||||
|
* Copyright 1995-2000 The LyX Team.
|
||||||
|
*
|
||||||
|
* ====================================================== */
|
||||||
|
|
||||||
|
#ifndef IMPORTER_H
|
||||||
|
#define IMPORTER_H
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma interface
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "LString.h"
|
||||||
|
|
||||||
|
class LyXView;
|
||||||
|
|
||||||
|
class Importer {
|
||||||
|
public:
|
||||||
|
///
|
||||||
|
static
|
||||||
|
void Import(LyXView * lv, string const & filename,
|
||||||
|
string const & format);
|
||||||
|
static
|
||||||
|
bool IsImportable(string const & format);
|
||||||
|
};
|
||||||
|
#endif
|
@ -1902,7 +1902,7 @@ void InsetFig::Preview(string const & p)
|
|||||||
tfname += ".eps";
|
tfname += ".eps";
|
||||||
string buf1 = OnlyPath(owner->fileName());
|
string buf1 = OnlyPath(owner->fileName());
|
||||||
string buf2 = MakeAbsPath(tfname, buf1);
|
string buf2 = MakeAbsPath(tfname, buf1);
|
||||||
if (!Formats::View(owner, buf2))
|
if (!Formats::View(owner, buf2, "eps"))
|
||||||
lyxerr << "Can't view " << buf2 << endl;
|
lyxerr << "Can't view " << buf2 << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -183,7 +183,8 @@ TODO Extended features:
|
|||||||
#include "lyxtext.h"
|
#include "lyxtext.h"
|
||||||
#include "font.h" // For the lyxfont class.
|
#include "font.h" // For the lyxfont class.
|
||||||
#include <algorithm> // For the std::max
|
#include <algorithm> // For the std::max
|
||||||
|
#include "lyxrc.h"
|
||||||
|
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
|
|
||||||
|
|
||||||
@ -655,12 +656,15 @@ int InsetGraphics::Latex(Buffer const *buf, ostream & os,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// How do we decide to what format should we export?
|
// How do we decide to what format should we export?
|
||||||
const string empty_string = string();
|
string extension = GetExtension(params.filename);
|
||||||
const string eps_outfile = ChangeExtension(params.filename, "eps");
|
//if (pdf) {
|
||||||
const string png_outfile = ChangeExtension(params.filename, "png");
|
if (extension != "jpg")
|
||||||
|
Converter::Convert(buf,
|
||||||
Converter::Convert(buf, params.filename, eps_outfile, empty_string);
|
params.filename, params.filename,
|
||||||
Converter::Convert(buf, params.filename, png_outfile, empty_string);
|
extension, "png");
|
||||||
|
//} else
|
||||||
|
Converter::Convert(buf, params.filename, params.filename,
|
||||||
|
extension, "eps");
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -159,13 +159,11 @@ void ShowMessage(Buffer const * buf,
|
|||||||
string const & msg2,
|
string const & msg2,
|
||||||
string const & msg3, int delay)
|
string const & msg3, int delay)
|
||||||
{
|
{
|
||||||
if (lyxrc.use_gui) {
|
if (lyxrc.use_gui)
|
||||||
buf->getUser()->owner()->getMiniBuffer()->Set(msg1, msg2,
|
buf->getUser()->owner()->getMiniBuffer()->Set(msg1, msg2,
|
||||||
msg3, delay);
|
msg3, delay);
|
||||||
} else {
|
else
|
||||||
// can somebody think of something more clever? cerr?
|
lyxerr << msg1 << msg2 << msg3 << endl;
|
||||||
cout << msg1 << msg2 << msg3 << endl;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
137
src/lyxfunc.C
137
src/lyxfunc.C
@ -74,8 +74,6 @@
|
|||||||
#include "lyxtext.h"
|
#include "lyxtext.h"
|
||||||
#include "gettext.h"
|
#include "gettext.h"
|
||||||
#include "trans_mgr.h"
|
#include "trans_mgr.h"
|
||||||
#include "ImportLaTeX.h"
|
|
||||||
#include "ImportNoweb.h"
|
|
||||||
#include "layout.h"
|
#include "layout.h"
|
||||||
#include "WorkArea.h"
|
#include "WorkArea.h"
|
||||||
#include "lyxfr1.h"
|
#include "lyxfr1.h"
|
||||||
@ -84,7 +82,9 @@
|
|||||||
#include "frontends/Toolbar.h"
|
#include "frontends/Toolbar.h"
|
||||||
#include "frontends/Menubar.h"
|
#include "frontends/Menubar.h"
|
||||||
#include "FloatList.h"
|
#include "FloatList.h"
|
||||||
|
#include "converter.h"
|
||||||
#include "exporter.h"
|
#include "exporter.h"
|
||||||
|
#include "importer.h"
|
||||||
#include "FontLoader.h"
|
#include "FontLoader.h"
|
||||||
#include "TextCache.h"
|
#include "TextCache.h"
|
||||||
|
|
||||||
@ -479,10 +479,7 @@ LyXFunc::func_status LyXFunc::getStatus(int ac) const
|
|||||||
|| lyxrc.fax_command == "none";
|
|| lyxrc.fax_command == "none";
|
||||||
break;
|
break;
|
||||||
case LFUN_IMPORT:
|
case LFUN_IMPORT:
|
||||||
if (argument == "latex" || argument == "noweb")
|
disable = !Importer::IsImportable(argument);
|
||||||
disable = lyxrc.relyx_command == "none";
|
|
||||||
else if (argument == "linuxdoc")
|
|
||||||
disable = lyxrc.linuxdoc_to_lyx_command == "none";
|
|
||||||
break;
|
break;
|
||||||
case LFUN_UNDO:
|
case LFUN_UNDO:
|
||||||
disable = buf->undostack.empty();
|
disable = buf->undostack.empty();
|
||||||
@ -497,7 +494,7 @@ LyXFunc::func_status LyXFunc::getStatus(int ac) const
|
|||||||
disable = lyxrc.chktex_command == "none";
|
disable = lyxrc.chktex_command == "none";
|
||||||
break;
|
break;
|
||||||
case LFUN_BUILDPROG:
|
case LFUN_BUILDPROG:
|
||||||
disable = !Exporter::IsExportable(buf, "Program");
|
disable = !Exporter::IsExportable(buf, "program");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LFUN_LAYOUT_TABULAR:
|
case LFUN_LAYOUT_TABULAR:
|
||||||
@ -932,7 +929,7 @@ string const LyXFunc::Dispatch(int ac,
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case LFUN_BUILDPROG:
|
case LFUN_BUILDPROG:
|
||||||
Exporter::Export(owner->buffer(), "Program", true);
|
Exporter::Export(owner->buffer(), "program", true);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LFUN_RUNCHKTEX:
|
case LFUN_RUNCHKTEX:
|
||||||
@ -3242,18 +3239,13 @@ void LyXFunc::MenuOpen()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// returns filename if file must be imported,
|
|
||||||
// empty string if either file not found or already loaded
|
|
||||||
// checks for running without gui are missing.
|
// checks for running without gui are missing.
|
||||||
|
void LyXFunc::doImport(string const & argument)
|
||||||
void LyXFunc::doImportHelper(
|
|
||||||
string const & file, // filename (possibly empty)
|
|
||||||
string const & text, // info when asking for filename
|
|
||||||
string const & pattern, // filetype
|
|
||||||
bool func(BufferView *, string const &) // the real import function
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
string filename = file;
|
string format;
|
||||||
|
string filename = split(argument, format, ' ');
|
||||||
|
lyxerr.debug() << "LyXFunc::doImport: " << format
|
||||||
|
<< " file: " << filename << endl;
|
||||||
|
|
||||||
if (filename.empty()) { // need user interaction
|
if (filename.empty()) { // need user interaction
|
||||||
string initpath = lyxrc.document_path;
|
string initpath = lyxrc.document_path;
|
||||||
@ -3271,7 +3263,11 @@ void LyXFunc::doImportHelper(
|
|||||||
fileDlg.SetButton(0, _("Documents"), lyxrc.document_path);
|
fileDlg.SetButton(0, _("Documents"), lyxrc.document_path);
|
||||||
fileDlg.SetButton(1, _("Examples"),
|
fileDlg.SetButton(1, _("Examples"),
|
||||||
AddPath(system_lyxdir, "examples"));
|
AddPath(system_lyxdir, "examples"));
|
||||||
filename = fileDlg.Select(text, initpath, pattern);
|
string text = _("Select ") + Formats::PrettyName(format)
|
||||||
|
+ _(" file to import");
|
||||||
|
string format2 = (format == "textparagraph") ? "text" : format;
|
||||||
|
string extension = "*." + Formats::Extension(format2);
|
||||||
|
filename = fileDlg.Select(text, initpath, extension);
|
||||||
AllowInput(owner->view());
|
AllowInput(owner->view());
|
||||||
|
|
||||||
// check selected filename
|
// check selected filename
|
||||||
@ -3319,78 +3315,7 @@ void LyXFunc::doImportHelper(
|
|||||||
}
|
}
|
||||||
// filename should be valid now
|
// filename should be valid now
|
||||||
|
|
||||||
// notify user of import ahead
|
Importer::Import(owner, filename, format);
|
||||||
string displaypath = MakeDisplayPath(filename);
|
|
||||||
owner->getMiniBuffer()->Set(_("Importing"), displaypath, "...");
|
|
||||||
|
|
||||||
// call real importer
|
|
||||||
bool result = func(owner->view(), filename);
|
|
||||||
|
|
||||||
// we are done
|
|
||||||
if (result)
|
|
||||||
owner->getMiniBuffer()->Set(displaypath, _("imported."));
|
|
||||||
else
|
|
||||||
owner->getMiniBuffer()->Set(displaypath, _(": import failed."));
|
|
||||||
}
|
|
||||||
|
|
||||||
static
|
|
||||||
bool doImportASCIIasLines(BufferView * view, string const & filename)
|
|
||||||
{
|
|
||||||
view->buffer(bufferlist.newFile(filename, string()));
|
|
||||||
InsertAsciiFile(view, filename, false);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
static
|
|
||||||
bool doImportASCIIasParagraphs(BufferView * view, string const & filename)
|
|
||||||
{
|
|
||||||
view->buffer(bufferlist.newFile(filename, string()));
|
|
||||||
InsertAsciiFile(view, filename, true);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
static
|
|
||||||
bool doImportLaTeX(BufferView * view, string const & filename)
|
|
||||||
{
|
|
||||||
ImportLaTeX myImport(filename);
|
|
||||||
Buffer * openbuf = myImport.run();
|
|
||||||
if (openbuf) {
|
|
||||||
view->buffer(openbuf);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
static
|
|
||||||
bool doImportNoweb(BufferView * view, string const & filename)
|
|
||||||
{
|
|
||||||
ImportNoweb myImport(filename);
|
|
||||||
Buffer * openbuf = myImport.run();
|
|
||||||
if (openbuf) {
|
|
||||||
view->buffer(openbuf);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
static
|
|
||||||
bool doImportLinuxDoc(BufferView *, string const & filename)
|
|
||||||
{
|
|
||||||
// run sgml2lyx
|
|
||||||
string tmp = lyxrc.linuxdoc_to_lyx_command + filename;
|
|
||||||
Systemcalls one;
|
|
||||||
Buffer * buf = 0;
|
|
||||||
|
|
||||||
int result = one.startscript(Systemcalls::System, tmp);
|
|
||||||
if (result == 0) {
|
|
||||||
string filename = ChangeExtension(filename, ".lyx");
|
|
||||||
// File was generated without problems. Load it.
|
|
||||||
buf = bufferlist.loadLyXFile(filename);
|
|
||||||
}
|
|
||||||
|
|
||||||
return result == 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -3446,36 +3371,6 @@ void LyXFunc::MenuInsertLyXFile(string const & filen)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void LyXFunc::doImport(string const & argument)
|
|
||||||
{
|
|
||||||
string type;
|
|
||||||
string filename = split(argument, type, ' ');
|
|
||||||
lyxerr.debug() << "LyXFunc::doImport: " << type
|
|
||||||
<< " file: " << filename << endl;
|
|
||||||
|
|
||||||
if (type == "latex")
|
|
||||||
doImportHelper(filename,
|
|
||||||
_("Select LaTeX file to import"), "*.tex",
|
|
||||||
doImportLaTeX);
|
|
||||||
else if (type == "ascii")
|
|
||||||
doImportHelper(filename,
|
|
||||||
_("Select ASCII file to import"), "*.txt",
|
|
||||||
doImportASCIIasLines);
|
|
||||||
else if (type == "asciiparagraph")
|
|
||||||
doImportHelper(filename,
|
|
||||||
_("Select ASCII file to import"), "*.txt",
|
|
||||||
doImportASCIIasParagraphs);
|
|
||||||
else if (type == "noweb")
|
|
||||||
doImportHelper(filename,
|
|
||||||
_("Select NoWeb file to import"), "*.nw",
|
|
||||||
doImportNoweb);
|
|
||||||
else if (type == "linuxdoc")
|
|
||||||
doImportHelper(filename,
|
|
||||||
_("Select LinuxDoc file to import"), "*.doc",
|
|
||||||
doImportLinuxDoc);
|
|
||||||
else
|
|
||||||
setErrorMessage(string(N_("Unknown import type: ")) + type);
|
|
||||||
}
|
|
||||||
|
|
||||||
void LyXFunc::reloadBuffer()
|
void LyXFunc::reloadBuffer()
|
||||||
{
|
{
|
||||||
|
@ -125,10 +125,6 @@ private:
|
|||||||
|
|
||||||
///
|
///
|
||||||
void doImport(string const &);
|
void doImport(string const &);
|
||||||
///
|
|
||||||
void doImportHelper(string const &, string const &, string const &,
|
|
||||||
bool func(BufferView *, string const &) );
|
|
||||||
|
|
||||||
///
|
///
|
||||||
void MenuInsertLyXFile(string const &);
|
void MenuInsertLyXFile(string const &);
|
||||||
|
|
||||||
|
66
src/lyxrc.C
66
src/lyxrc.C
@ -68,7 +68,6 @@ enum LyXRCTags {
|
|||||||
RC_PRINTPAPERDIMENSIONFLAG,
|
RC_PRINTPAPERDIMENSIONFLAG,
|
||||||
RC_CUSTOM_EXPORT_COMMAND,
|
RC_CUSTOM_EXPORT_COMMAND,
|
||||||
RC_CUSTOM_EXPORT_FORMAT,
|
RC_CUSTOM_EXPORT_FORMAT,
|
||||||
RC_LITERATE_EXTENSION,
|
|
||||||
RC_SCREEN_DPI,
|
RC_SCREEN_DPI,
|
||||||
RC_SCREEN_ZOOM,
|
RC_SCREEN_ZOOM,
|
||||||
RC_SCREEN_FONT_SIZES,
|
RC_SCREEN_FONT_SIZES,
|
||||||
@ -120,7 +119,6 @@ enum LyXRCTags {
|
|||||||
RC_CURSOR_FOLLOWS_SCROLLBAR,
|
RC_CURSOR_FOLLOWS_SCROLLBAR,
|
||||||
RC_EXIT_CONFIRMATION,
|
RC_EXIT_CONFIRMATION,
|
||||||
RC_DISPLAY_SHORTCUTS,
|
RC_DISPLAY_SHORTCUTS,
|
||||||
RC_RELYX_COMMAND,
|
|
||||||
RC_MAKE_BACKUP,
|
RC_MAKE_BACKUP,
|
||||||
RC_BACKUPDIR_PATH,
|
RC_BACKUPDIR_PATH,
|
||||||
RC_RTL_SUPPORT,
|
RC_RTL_SUPPORT,
|
||||||
@ -133,10 +131,10 @@ enum LyXRCTags {
|
|||||||
RC_LANGUAGE_COMMAND_END,
|
RC_LANGUAGE_COMMAND_END,
|
||||||
RC_DATE_INSERT_FORMAT,
|
RC_DATE_INSERT_FORMAT,
|
||||||
RC_SHOW_BANNER,
|
RC_SHOW_BANNER,
|
||||||
RC_LINUXDOC_TO_LYX_COMMAND,
|
|
||||||
RC_WHEEL_JUMP,
|
RC_WHEEL_JUMP,
|
||||||
RC_CONVERTER,
|
RC_CONVERTER,
|
||||||
RC_VIEWER,
|
RC_VIEWER,
|
||||||
|
RC_FORMAT,
|
||||||
RC_NEW_ASK_FILENAME,
|
RC_NEW_ASK_FILENAME,
|
||||||
RC_DEFAULT_LANGUAGE,
|
RC_DEFAULT_LANGUAGE,
|
||||||
RC_LAST
|
RC_LAST
|
||||||
@ -171,6 +169,7 @@ keyword_item lyxrcTags[] = {
|
|||||||
{ "\\fax_command", RC_FAX_COMMAND },
|
{ "\\fax_command", RC_FAX_COMMAND },
|
||||||
{ "\\fax_program", RC_FAXPROGRAM },
|
{ "\\fax_program", RC_FAXPROGRAM },
|
||||||
{ "\\font_encoding", RC_FONT_ENCODING },
|
{ "\\font_encoding", RC_FONT_ENCODING },
|
||||||
|
{ "\\format", RC_FORMAT },
|
||||||
{ "\\input", RC_INPUT },
|
{ "\\input", RC_INPUT },
|
||||||
{ "\\kbmap", RC_KBMAP },
|
{ "\\kbmap", RC_KBMAP },
|
||||||
{ "\\kbmap_primary", RC_KBMAP_PRIMARY },
|
{ "\\kbmap_primary", RC_KBMAP_PRIMARY },
|
||||||
@ -181,8 +180,6 @@ keyword_item lyxrcTags[] = {
|
|||||||
{ "\\language_command_end", RC_LANGUAGE_COMMAND_END },
|
{ "\\language_command_end", RC_LANGUAGE_COMMAND_END },
|
||||||
{ "\\language_package", RC_LANGUAGE_PACKAGE },
|
{ "\\language_package", RC_LANGUAGE_PACKAGE },
|
||||||
{ "\\lastfiles", RC_LASTFILES },
|
{ "\\lastfiles", RC_LASTFILES },
|
||||||
{ "\\linuxdoc_to_lyx_command", RC_LINUXDOC_TO_LYX_COMMAND },
|
|
||||||
{ "\\literate_extension", RC_LITERATE_EXTENSION },
|
|
||||||
{ "\\make_backup", RC_MAKE_BACKUP },
|
{ "\\make_backup", RC_MAKE_BACKUP },
|
||||||
{ "\\mark_foreign_language", RC_MARK_FOREIGN_LANGUAGE },
|
{ "\\mark_foreign_language", RC_MARK_FOREIGN_LANGUAGE },
|
||||||
{ "\\new_ask_filename", RC_NEW_ASK_FILENAME },
|
{ "\\new_ask_filename", RC_NEW_ASK_FILENAME },
|
||||||
@ -209,7 +206,6 @@ keyword_item lyxrcTags[] = {
|
|||||||
{ "\\print_to_printer", RC_PRINTTOPRINTER },
|
{ "\\print_to_printer", RC_PRINTTOPRINTER },
|
||||||
{ "\\printer", RC_PRINTER },
|
{ "\\printer", RC_PRINTER },
|
||||||
{ "\\ps_command", RC_PS_COMMAND },
|
{ "\\ps_command", RC_PS_COMMAND },
|
||||||
{ "\\relyx_command", RC_RELYX_COMMAND },
|
|
||||||
{ "\\rtl", RC_RTL_SUPPORT },
|
{ "\\rtl", RC_RTL_SUPPORT },
|
||||||
{ "\\screen_dpi", RC_SCREEN_DPI },
|
{ "\\screen_dpi", RC_SCREEN_DPI },
|
||||||
{ "\\screen_font_encoding", RC_SCREEN_FONT_ENCODING },
|
{ "\\screen_font_encoding", RC_SCREEN_FONT_ENCODING },
|
||||||
@ -271,8 +267,6 @@ void LyXRC::setDefaults() {
|
|||||||
document_path = GetEnvPath("HOME");
|
document_path = GetEnvPath("HOME");
|
||||||
tempdir_path = "/tmp";
|
tempdir_path = "/tmp";
|
||||||
use_tempdir = true;
|
use_tempdir = true;
|
||||||
literate_extension = "none";
|
|
||||||
relyx_command = "reLyX";
|
|
||||||
ps_command = "gs";
|
ps_command = "gs";
|
||||||
view_dvi_paper_option = "-paper";
|
view_dvi_paper_option = "-paper";
|
||||||
default_papersize = BufferParams::PAPER_USLETTER;
|
default_papersize = BufferParams::PAPER_USLETTER;
|
||||||
@ -338,8 +332,6 @@ void LyXRC::setDefaults() {
|
|||||||
date_insert_format = "%A, %e %B %Y";
|
date_insert_format = "%A, %e %B %Y";
|
||||||
show_banner = true;
|
show_banner = true;
|
||||||
cursor_follows_scrollbar = false;
|
cursor_follows_scrollbar = false;
|
||||||
//
|
|
||||||
linuxdoc_to_lyx_command="none";
|
|
||||||
|
|
||||||
/// These variables are not stored on disk (perhaps they
|
/// These variables are not stored on disk (perhaps they
|
||||||
// should be moved from the LyXRC class).
|
// should be moved from the LyXRC class).
|
||||||
@ -568,16 +560,6 @@ int LyXRC::read(string const & filename)
|
|||||||
custom_export_format = lexrc.GetString();
|
custom_export_format = lexrc.GetString();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RC_LITERATE_EXTENSION:
|
|
||||||
if (lexrc.next())
|
|
||||||
literate_extension = lexrc.GetString();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case RC_RELYX_COMMAND:
|
|
||||||
if (lexrc.next())
|
|
||||||
relyx_command = lexrc.GetString();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case RC_DEFAULT_PAPERSIZE:
|
case RC_DEFAULT_PAPERSIZE:
|
||||||
if (lexrc.next()) {
|
if (lexrc.next()) {
|
||||||
string size = lowercase(lexrc.GetString());
|
string size = lowercase(lexrc.GetString());
|
||||||
@ -954,17 +936,12 @@ int LyXRC::read(string const & filename)
|
|||||||
if (lexrc.next())
|
if (lexrc.next())
|
||||||
show_banner = lexrc.GetBool();
|
show_banner = lexrc.GetBool();
|
||||||
break;
|
break;
|
||||||
case RC_LINUXDOC_TO_LYX_COMMAND:
|
|
||||||
if ( lexrc.next())
|
|
||||||
linuxdoc_to_lyx_command = lexrc.GetString();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case RC_NEW_ASK_FILENAME:
|
case RC_NEW_ASK_FILENAME:
|
||||||
if ( lexrc.next())
|
if ( lexrc.next())
|
||||||
new_ask_filename = lexrc.GetBool();
|
new_ask_filename = lexrc.GetBool();
|
||||||
break;
|
break;
|
||||||
case RC_CONVERTER:
|
case RC_CONVERTER: {
|
||||||
{
|
|
||||||
string from, to, command, flags;
|
string from, to, command, flags;
|
||||||
if (lexrc.next())
|
if (lexrc.next())
|
||||||
from = lexrc.GetString();
|
from = lexrc.GetString();
|
||||||
@ -977,8 +954,7 @@ int LyXRC::read(string const & filename)
|
|||||||
Converter::Add(from, to, command, flags);
|
Converter::Add(from, to, command, flags);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case RC_VIEWER:
|
case RC_VIEWER: {
|
||||||
{
|
|
||||||
string format, command;
|
string format, command;
|
||||||
if (lexrc.next())
|
if (lexrc.next())
|
||||||
format = lexrc.GetString();
|
format = lexrc.GetString();
|
||||||
@ -987,6 +963,19 @@ int LyXRC::read(string const & filename)
|
|||||||
Formats::SetViewer(format, command);
|
Formats::SetViewer(format, command);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case RC_FORMAT: {
|
||||||
|
string format, extension, prettyname, shortcut;
|
||||||
|
if (lexrc.next())
|
||||||
|
format = lexrc.GetString();
|
||||||
|
if (lexrc.next())
|
||||||
|
extension = lexrc.GetString();
|
||||||
|
if (lexrc.next())
|
||||||
|
prettyname = lexrc.GetString();
|
||||||
|
if (lexrc.next())
|
||||||
|
shortcut = lexrc.GetString();
|
||||||
|
Formats::Add(format, extension, prettyname, shortcut);
|
||||||
|
break;
|
||||||
|
}
|
||||||
case RC_DEFAULT_LANGUAGE:
|
case RC_DEFAULT_LANGUAGE:
|
||||||
if ( lexrc.next())
|
if ( lexrc.next())
|
||||||
default_language = lexrc.GetString();
|
default_language = lexrc.GetString();
|
||||||
@ -1148,10 +1137,6 @@ void LyXRC::output(ostream & os) const
|
|||||||
if (lyxpipes != system_lyxrc.lyxpipes) {
|
if (lyxpipes != system_lyxrc.lyxpipes) {
|
||||||
os << "\\serverpipe \"" << lyxpipes << "\"\n";
|
os << "\\serverpipe \"" << lyxpipes << "\"\n";
|
||||||
}
|
}
|
||||||
case RC_RELYX_COMMAND:
|
|
||||||
if (relyx_command != system_lyxrc.relyx_command) {
|
|
||||||
os << "\\relyx_command \"" << relyx_command << "\"\n";
|
|
||||||
}
|
|
||||||
case RC_DATE_INSERT_FORMAT:
|
case RC_DATE_INSERT_FORMAT:
|
||||||
if (date_insert_format != system_lyxrc.date_insert_format) {
|
if (date_insert_format != system_lyxrc.date_insert_format) {
|
||||||
os << "\\date_insert_format \"" << date_insert_format
|
os << "\\date_insert_format \"" << date_insert_format
|
||||||
@ -1382,18 +1367,6 @@ void LyXRC::output(ostream & os) const
|
|||||||
os << "\\font_encoding \"" << fontenc << "\"\n";
|
os << "\\font_encoding \"" << fontenc << "\"\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
os << "\n#\n"
|
|
||||||
<< "# LINUXDOC SECTION ##################################\n"
|
|
||||||
<< "#\n\n";
|
|
||||||
|
|
||||||
case RC_LINUXDOC_TO_LYX_COMMAND:
|
|
||||||
if (linuxdoc_to_lyx_command
|
|
||||||
!= system_lyxrc.linuxdoc_to_lyx_command) {
|
|
||||||
os << "\\linuxdoc_to_lyx_command \""
|
|
||||||
<< linuxdoc_to_lyx_command
|
|
||||||
<< "\"\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
os << "\n#\n"
|
os << "\n#\n"
|
||||||
<< "# FILE SECTION ######################################\n"
|
<< "# FILE SECTION ######################################\n"
|
||||||
<< "#\n\n";
|
<< "#\n\n";
|
||||||
@ -1565,11 +1538,6 @@ void LyXRC::output(ostream & os) const
|
|||||||
<< "# 2nd MISC SUPPORT SECTION ##########################\n"
|
<< "# 2nd MISC SUPPORT SECTION ##########################\n"
|
||||||
<< "#\n\n";
|
<< "#\n\n";
|
||||||
|
|
||||||
case RC_LITERATE_EXTENSION:
|
|
||||||
if (literate_extension != system_lyxrc.literate_extension) {
|
|
||||||
os << "\\literate_extension \"" << literate_extension
|
|
||||||
<< "\"\n";
|
|
||||||
}
|
|
||||||
case RC_OVERRIDE_X_DEADKEYS:
|
case RC_OVERRIDE_X_DEADKEYS:
|
||||||
if (override_x_deadkeys != system_lyxrc.override_x_deadkeys) {
|
if (override_x_deadkeys != system_lyxrc.override_x_deadkeys) {
|
||||||
os << "\\override_x_deadkeys "
|
os << "\\override_x_deadkeys "
|
||||||
|
@ -87,10 +87,6 @@ public:
|
|||||||
string custom_export_format;
|
string custom_export_format;
|
||||||
///
|
///
|
||||||
bool pdf_mode;
|
bool pdf_mode;
|
||||||
///
|
|
||||||
string literate_extension;
|
|
||||||
/// program for running relyx
|
|
||||||
string relyx_command;
|
|
||||||
/// postscript interpreter (in general "gs", if it is installed)
|
/// postscript interpreter (in general "gs", if it is installed)
|
||||||
string ps_command;
|
string ps_command;
|
||||||
/// option for telling the dvi viewer about the paper size
|
/// option for telling the dvi viewer about the paper size
|
||||||
@ -225,8 +221,6 @@ public:
|
|||||||
/// Do we have to use a GUI?
|
/// Do we have to use a GUI?
|
||||||
bool use_gui;
|
bool use_gui;
|
||||||
///
|
///
|
||||||
string linuxdoc_to_lyx_command;
|
|
||||||
///
|
|
||||||
bool new_ask_filename;
|
bool new_ask_filename;
|
||||||
///
|
///
|
||||||
string default_language;
|
string default_language;
|
||||||
|
Loading…
Reference in New Issue
Block a user