mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-23 05:25:26 +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>
|
||||
|
||||
* 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
|
||||
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
|
||||
TMP=tmp
|
||||
OUTPUT_FILE=${TMP}; INTRO_MESSAGE
|
||||
|
||||
OUTPUT_FILE=${COUT}; INTRO_MESSAGE
|
||||
|
||||
# This "c_str" is potentially used many times in many functions
|
||||
# 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}
|
||||
echo "#include <config.h>" >> ${TMP}
|
||||
echo "#include \"forms_gettext.h\"" >> ${TMP}
|
||||
echo "#include \"gettext.h\"" >> ${TMP}
|
||||
|
||||
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
|
||||
echo "Patching ${COUT} with ${CPATCH}"
|
||||
patch -s ${COUT} < ${CPATCH}
|
||||
|
Loading…
Reference in New Issue
Block a user