mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-23 13:31:49 +00:00
I declare these scripts finished. Probably.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@5734 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
d0ba17263c
commit
6ec64848a8
@ -1,3 +1,11 @@
|
|||||||
|
2002-11-27 Angus Leeming <leeming@lyx.org>
|
||||||
|
|
||||||
|
* forms/fdfix.sh:
|
||||||
|
* forms/c_str.sed: replace that nasty global c_str declaration with
|
||||||
|
nice function-specific ones. Use a two-pass algorithm to do so.
|
||||||
|
It's possible to do it in one-pass, but the resulting sed script
|
||||||
|
must use the hold space in a convoluted manner.
|
||||||
|
|
||||||
2002-11-27 Lars Gullik Bjønnes <larsbj@gullik.net>
|
2002-11-27 Lars Gullik Bjønnes <larsbj@gullik.net>
|
||||||
|
|
||||||
* XMiniBuffer.C (peek_event): add l10n on a string missing it.
|
* XMiniBuffer.C (peek_event): add l10n on a string missing it.
|
||||||
|
41
src/frontends/xforms/forms/c_str.sed
Normal file
41
src/frontends/xforms/forms/c_str.sed
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
# file c_str.sed
|
||||||
|
# This file is part of LyX, the document processor.
|
||||||
|
# Licence details can be found in the file COPYING.
|
||||||
|
#
|
||||||
|
# author Angus Leeming
|
||||||
|
#
|
||||||
|
# Full author contact details are available in file CREDITS
|
||||||
|
|
||||||
|
# This sed script is run on the .C file after the main fdfixc.sed has done
|
||||||
|
# its stuff. It ensures that any c_str variables inserted by fdfixc.sed
|
||||||
|
# are declared at the top of the appropriate function.
|
||||||
|
#
|
||||||
|
# We use a two-pass algorithm like this because a single pass results in
|
||||||
|
# convoluted sed.
|
||||||
|
|
||||||
|
|
||||||
|
# Initialise the hold space at the start of the function.
|
||||||
|
/ \* build_/ {
|
||||||
|
h; d
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# For all lines within the function...
|
||||||
|
/^{$/,/^}$/ {
|
||||||
|
|
||||||
|
# If it isn't the last line, append it to the hold space.
|
||||||
|
/^}$/!{
|
||||||
|
H; d
|
||||||
|
}
|
||||||
|
|
||||||
|
# If it is the last line, paste the contents of the hold space above it,
|
||||||
|
# seach for the string "c_str" and, if found, add its declaration to the top
|
||||||
|
# of the function.
|
||||||
|
/^}$/ {
|
||||||
|
x; G
|
||||||
|
|
||||||
|
/c_str/s/\( FL_OBJECT \*\)/ char const * c_str;\
|
||||||
|
\1/
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -117,31 +117,29 @@ CPATCH=${DIRNAME}/${BASENAME}.C.patch
|
|||||||
COUT=${BASENAME}.cpp
|
COUT=${BASENAME}.cpp
|
||||||
FINAL_COUT=${BASENAME}.C
|
FINAL_COUT=${BASENAME}.C
|
||||||
|
|
||||||
|
# We use a two pass algorithm to generate elegant C++ code whilst
|
||||||
|
# keeping the sed clean also.
|
||||||
|
|
||||||
|
# Pass 1. The bulk of the clean-up
|
||||||
FDFIXC=${DIRNAME}/fdfixc.sed
|
FDFIXC=${DIRNAME}/fdfixc.sed
|
||||||
|
TMP=tmp
|
||||||
|
OUTPUT_FILE=${TMP}; INTRO_MESSAGE
|
||||||
|
|
||||||
OUTPUT_FILE=${COUT}; INTRO_MESSAGE
|
echo "#include <config.h>" >> ${TMP}
|
||||||
|
echo "#include \"forms_gettext.h\"" >> ${TMP}
|
||||||
# This "c_str" is potentially used many times in many functions
|
echo "#include \"gettext.h\"" >> ${TMP}
|
||||||
# so add it to the top of the generated file.
|
|
||||||
grep -E 'fl_add.*".*[|].*"' ${CIN} > /dev/null &&
|
|
||||||
cat - >> ${COUT} <<EOF
|
|
||||||
namespace {
|
|
||||||
char const * c_str;
|
|
||||||
} // namespace anon
|
|
||||||
|
|
||||||
|
|
||||||
EOF
|
|
||||||
|
|
||||||
echo "#include <config.h>" >> ${COUT}
|
|
||||||
echo "#include \"forms_gettext.h\"" >> ${COUT}
|
|
||||||
echo "#include \"gettext.h\"" >> ${COUT}
|
|
||||||
|
|
||||||
grep bmtable ${CIN} > /dev/null &&
|
grep bmtable ${CIN} > /dev/null &&
|
||||||
echo "#include \"bmtable.h\"" >> ${COUT}
|
echo "#include \"bmtable.h\"" >> ${TMP}
|
||||||
|
|
||||||
sed -f ${FDFIXC} < ${CIN} >> ${COUT}
|
sed -f ${FDFIXC} < ${CIN} >> ${TMP}
|
||||||
|
|
||||||
|
# Pass 2. Ensure that any c_str variables inserted by fdfixc.sed
|
||||||
|
# are declared at the top of the appropriate function.
|
||||||
|
FDFIXC=${DIRNAME}/c_str.sed
|
||||||
|
sed -f ${FDFIXC} < ${TMP} > ${COUT}
|
||||||
|
rm -f ${TMP}
|
||||||
|
|
||||||
# Patch the .C file if a patch exists
|
|
||||||
if [ -f "${CPATCH}" ] ; then
|
if [ -f "${CPATCH}" ] ; then
|
||||||
echo "Patching ${COUT} with ${CPATCH}"
|
echo "Patching ${COUT} with ${CPATCH}"
|
||||||
patch -s ${COUT} < ${CPATCH}
|
patch -s ${COUT} < ${CPATCH}
|
||||||
|
Loading…
Reference in New Issue
Block a user