summaryrefslogtreecommitdiff
path: root/src/make_unicode_property.sh
diff options
context:
space:
mode:
authorJörg Frings-Fürst <debian@jff.email>2018-09-07 13:43:11 +0200
committerJörg Frings-Fürst <debian@jff.email>2018-09-07 13:43:11 +0200
commit66dfd6613394a8903701840bbc9d67de537e597e (patch)
tree3b0943539a09fe5322b0b984222abb7c60ddfacb /src/make_unicode_property.sh
parent6bf91b141b7b3e3524f422d4c18bccf7f87aecd1 (diff)
parent52796af94a055f1c704a604f4eac567242c845b7 (diff)
Merge branch 'release/debian/6.9.0-1'debian/6.9.0-1
Diffstat (limited to 'src/make_unicode_property.sh')
-rwxr-xr-xsrc/make_unicode_property.sh22
1 files changed, 14 insertions, 8 deletions
diff --git a/src/make_unicode_property.sh b/src/make_unicode_property.sh
index 1e57674..2aab41b 100755
--- a/src/make_unicode_property.sh
+++ b/src/make_unicode_property.sh
@@ -1,19 +1,25 @@
#!/bin/sh
NAME=unicode_property_data
-TMP=gperf.tmp
-#GPERF_OPT='-P -Q prop_name_pool -C -c -t -j1 -L ANSI-C --ignore-case'
+TMP1=gperf1.tmp
+TMP2=gperf2.tmp
+TMP=
+GPERF=/usr/bin/gperf
+
GPERF_OPT='-T -C -c -t -j1 -L ANSI-C --ignore-case --pic -Q unicode_prop_name_pool'
-POOL_CAST='s/\(int *\)\(long *\)&\(\(struct +unicode_prop_name_pool_t *\* *\) *0\)->unicode_prop_name_pool_str([^,]+)/pool_offset(\1)/g'
+POOL_CAST='s/\(int *\)\(size_t *\)&\(\(struct +unicode_prop_name_pool_t *\* *\) *0\)->unicode_prop_name_pool_str([^,]+)/pool_offset(\1)/g'
+ADD_STATIC='s/(const +struct +PoolPropertyNameCtype +\*)/static \1/'
+ADD_CAST='s/unsigned +int +hval *= *len/unsigned int hval = (unsigned int )len/'
./make_unicode_property_data.py > ${NAME}.gperf
./make_unicode_property_data.py -posix > ${NAME}_posix.gperf
-gperf ${GPERF_OPT} -N unicode_lookup_property_name --output-file ${TMP} ${NAME}.gperf
-sed -e 's/^#line.*$//g' ${TMP} | sed -r "${POOL_CAST}" > ${NAME}.c
-gperf ${GPERF_OPT} -N unicode_lookup_property_name --output-file ${TMP} ${NAME}_posix.gperf
-sed -e 's/^#line.*$//g' ${TMP} | sed -r "${POOL_CAST}" > ${NAME}_posix.c
+${GPERF} ${GPERF_OPT} -N unicode_lookup_property_name --output-file ${TMP1} ${NAME}.gperf
+cat ${TMP1} | sed -e 's/^#line.*$//g' | sed -r "${POOL_CAST}" | sed -r "${ADD_STATIC}" | sed -r "${ADD_CAST}" > ${NAME}.c
+
+${GPERF} ${GPERF_OPT} -N unicode_lookup_property_name --output-file ${TMP2} ${NAME}_posix.gperf
+cat ${TMP2} | sed -e 's/^#line.*$//g' | sed -r "${POOL_CAST}" | sed -r "${ADD_STATIC}" > ${NAME}_posix.c
-rm -f ${NAME}.gperf ${NAME}_posix.gperf ${TMP}
+rm -f ${NAME}.gperf ${NAME}_posix.gperf ${TMP1} ${TMP2}
exit 0