Simplify code by telling gs to output bitmap files as %d, not %Nd where

N is some painfully specified integer.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@5204 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Angus Leeming 2002-09-04 10:15:56 +00:00
parent 952b6a424c
commit 63dca538e9
4 changed files with 27 additions and 38 deletions

View File

@ -1,3 +1,8 @@
2002-09-04 Angus Leeming <leeming@lyx.org>
* scripts/lyxpreview2ppm.sh: output gs filenames as %d, not %Nd where N
is some input value.
2002-09-04 Lars Gullik Bjønnes <larsbj@gullik.net>
* layouts/stdclass.inc: include stdfloats.h

View File

@ -14,17 +14,15 @@
# preview.sty can be obtained from CTAN/macros/latex/contrib/supported/preview.
# This script takes three arguments:
# This script takes two arguments:
# TEXFILE: the name of the .tex file to be converted.
# SCALEFACTOR: scale factor, used to ascertain the resolution of the
# SCALEFACTOR: a scale factor, used to ascertain the resolution of the
# generated image which is then passed to gs.
# NDIGITS: the number of digits in the filenames generated by gs,
# ${BASE}%0${NDIGITS}d.ppm.
# If successful, this script will leave in dir ${DIR}:
# ${BASE}[0-9]\{${NDIGITS}\}.ppm: a (possibly large) number of image files.
# ${BASE}.metrics: a file containing info needed by LyX to
# position the images correctly on the screen.
# ${BASE}\([0-9]*\).ppm: a (possibly large) number of image files.
# ${BASE}.metrics: a file containing info needed by LyX to position the
# images correctly on the screen.
# All other files ${BASE}* will be deleted.
# Three helper functions.
@ -49,7 +47,7 @@ REQUIRED_VERSION () {
}
# Preliminary check.
if [ $# -ne 3 ]; then
if [ $# -ne 2 ]; then
exit 1
fi
@ -63,7 +61,6 @@ DIR=`dirname $1`
BASE=`basename $1 .tex`
SCALEFACTOR=$2
NDIGITS=$3
TEXFILE=${BASE}.tex
LOGFILE=${BASE}.log
@ -139,7 +136,7 @@ if [ ${INT_RESOLUTION} -gt 150 ]; then
fi
gs -q -dNOPAUSE -dBATCH -dSAFER \
-sDEVICE=pnmraw -sOutputFile=${BASE}%0${NDIGITS}d.ppm \
-sDEVICE=pnmraw -sOutputFile=${BASE}%d.ppm \
-dGraphicsAlphaBit=${ALPHA} -dTextAlphaBits=${ALPHA} -r${RESOLUTION} \
${PSFILE}
@ -151,5 +148,5 @@ fi
# All has been successful, so remove everything except the bitmap files
# and the metrics file.
FILES=`ls ${BASE}* | \
sed -e "/${BASE}.metrics/d" -e "/${BASE}[0-9]\{${NDIGITS}\}.ppm/d"`
rm -f ${FILES}
sed -e "/${BASE}.metrics/d" -e "/${BASE}\([0-9]*\).ppm/d"`
rm -f ${FILES} texput.log

View File

@ -1,3 +1,7 @@
2002-09-04 Angus Leeming <leeming@lyx.org>
* PreviewLoader.C: remove this ndigits stuff as an unnecessary extra.
2002-09-03 Angus Leeming <leeming@lyx.org>
* PreviewLoader.C: fix crash reported by Norbert Koksch when

View File

@ -86,16 +86,6 @@ private:
};
// Given a base-10 number return the number of digits needed to store it.
// Eg 2 requires 1 digit, 22 requires 2 digits and 999 requires 3 digits.
// Note that André suggests just returning '12' here...
int ndigits(int /*num*/)
{
//return 1 + int(std::log10(double(num)));
return 5;
}
/// Store info on a currently executing, forked process.
struct InProgress {
///
@ -256,18 +246,14 @@ namespace {
struct IncrementedFileName {
IncrementedFileName(string const & to_format,
string const & filename_base, int nd)
: to_format_(to_format), base_(filename_base),
ndigits_(nd), counter_(1)
string const & filename_base)
: to_format_(to_format), base_(filename_base), counter_(1)
{}
StrPair const operator()(string const & snippet)
{
ostringstream os;
os << base_
<< setfill('0') << setw(ndigits_) << counter_++
<< "." << to_format_;
os << base_ << counter_++ << "." << to_format_;
string const file = os.str().c_str();
return make_pair(snippet, file);
@ -276,7 +262,6 @@ struct IncrementedFileName {
private:
string const & to_format_;
string const & base_;
int const ndigits_;
int counter_;
};
@ -292,9 +277,8 @@ InProgress::InProgress(string const & filename_base,
PendingSnippets::const_iterator pend = pending.end();
BitmapFile::iterator sit = snippets.begin();
std::transform(pit, pend, sit,
IncrementedFileName(to_format, filename_base,
ndigits(int(snippets.size()))));
std::transform(pit, pend, sit,
IncrementedFileName(to_format, filename_base));
}
@ -471,6 +455,9 @@ void PreviewLoader::Impl::startLoading()
// such processes if it starts correctly.
InProgress inprogress(filename_base, pending_, pconverter_->to);
// clear pending_, so we're ready to start afresh.
pending_.clear();
// Output the LaTeX file.
string const latexfile = filename_base + ".tex";
@ -485,14 +472,10 @@ void PreviewLoader::Impl::startLoading()
// The conversion command.
ostringstream cs;
cs << pconverter_->command << " " << latexfile << " "
<< int(font_scaling_factor_) << " "
<< ndigits(int(pending_.size()));
<< int(font_scaling_factor_);
string const command = LibScriptSearch(cs.str().c_str());
// clear pending_, so we're ready to start afresh.
pending_.clear();
// Initiate the conversion from LaTeX to bitmap images files.
Forkedcall::SignalTypePtr convert_ptr;
convert_ptr.reset(new Forkedcall::SignalType);