s4
changeset 187:7dc0918ce321
Add PIPE to handled signals
author | HIROSE Yuuji <yuuji@gentei.org> |
---|---|
date | Tue, 29 Mar 2016 10:21:55 +0900 |
parents | fb05a0504425 |
children | 952e0a160efd |
files | s4-funcs.sh |
diffstat | 1 files changed, 78 insertions(+), 75 deletions(-) [+] |
line diff
1.1 --- a/s4-funcs.sh Sat Mar 05 11:27:58 2016 +0900 1.2 +++ b/s4-funcs.sh Tue Mar 29 10:21:55 2016 +0900 1.3 @@ -323,7 +323,10 @@ 1.4 fi >&5 1.5 cat $sqo 1.6 } 1.7 - 1.8 +_m4() { 1.9 + #_S4NAME_=f,f,f 1.10 + m4 ${_S4NAME_:+"-D_S4NAME_=${_S4NAME_}"} "$@" 1.11 +} 1.12 ismember() { 1.13 # $1=user, $2=group 1.14 err ismem: "select user from grp_mem where gname=$(sqlquote $2) and user='$1';" 1.15 @@ -920,7 +923,7 @@ 1.16 1.17 } 1.18 putfooter() { 1.19 - m4 -D_TITLE_="${TITLE:-$myname}" $layout/footer.m4.html 1.20 + _m4 -D_TITLE_="${TITLE:-$myname}" $layout/footer.m4.html 1.21 } 1.22 getcookie() ( 1.23 for kv in `echo $HTTP_COOKIE|sed 's/[;, ]/ /g'`; do 1.24 @@ -938,7 +941,7 @@ 1.25 # $SMAIL_TO <- Recipient value of To: header 1.26 rcpt=`echo $1` # strip newlines 1.27 subj=`echo $2|nkf -jM|tr -d '\n'` 1.28 - (m4 -D_RCPT_="${SMAIL_TO:-$rcpt}" -D_SUBJ_="\`$subj'" -D_FROM_=$admin $msgdir/mail-header.m4 1.29 + (_m4 -D_RCPT_="${SMAIL_TO:-$rcpt}" -D_SUBJ_="\`$subj'" -D_FROM_=$admin $msgdir/mail-header.m4 1.30 cat $3 | nkf -jd ) | sendmail -f $admin $rcpt 1.31 } 1.32 setviastring() { 1.33 @@ -974,7 +977,7 @@ 1.34 user=$1 1.35 if ! checkdomain $user; then 1.36 contenttype; echo 1.37 - m4 -D_TITLE_='Invalid email' $layout/title-only.html 1.38 + _m4 -D_TITLE_='Invalid email' $layout/title-only.html 1.39 echo "ユーザ名($user)には正しいメイルアドレスが必要です。" | html p 1.40 putfooter 1.41 exit 0 1.42 @@ -984,7 +987,7 @@ 1.43 encpswd=`echo $newpswd|mypwhash` 1.44 dbsetbyid user $user pswd "$encpswd" 1.45 # Avoid $user substitution with m4, because $url comes from user input. 1.46 - m4 -D_PSWD_="$newpswd" -D_URL_="$url" -D_ADMIN_="$admin" \ 1.47 + _m4 -D_PSWD_="$newpswd" -D_URL_="$url" -D_ADMIN_="$admin" \ 1.48 $msgdir/mail-newaccount.m4 \ 1.49 | sed "s/_USER_/$user/g" \ 1.50 | smail $user "New Account" 1.51 @@ -1017,7 +1020,7 @@ 1.52 } 1.53 showlogin() { 1.54 args=`echo $myargs|tr ' ' '+'` 1.55 - m4 -D_SYSNAME_="Welcome" -D_MYNAME_="$myname${args+?}$args" \ 1.56 + _m4 -D_SYSNAME_="Welcome" -D_MYNAME_="$myname${args+?}$args" \ 1.57 $layout/login.m4.html 1.58 exit 0 1.59 } 1.60 @@ -1026,7 +1029,7 @@ 1.61 st=$? 1.62 if [ $st != 0 ]; then 1.63 contenttype; echo 1.64 - m4 -D_USER_="$user" -D_URL_="$url" -D_ADMIN_="$admin" \ 1.65 + _m4 -D_USER_="$user" -D_URL_="$url" -D_ADMIN_="$admin" \ 1.66 $msgdir/login-fail-$st.m4.html 1.67 showlogin # and EXIT 1.68 fi 1.69 @@ -1034,7 +1037,7 @@ 1.70 1.71 # Do instant jobs here 1.72 dbsetup 1.73 -trap cleanup INT HUP EXIT TERM 1.74 +trap cleanup INT HUP EXIT TERM PIPE 1.75 # trap cleanup INT HUP 1.76 1.77 err() { 1.78 @@ -1159,12 +1162,12 @@ 1.79 gecos=`gecos` 1.80 name=$user"${gecos:+($gecos)}" 1.81 regist="$urlbase?reg+$iss" 1.82 - m4 -D_URL_="$urlbase" \ 1.83 - -D_USER_="$name" \ 1.84 - -D_EMAIL_="$1" \ 1.85 - -D_REGIST_="$regist" \ 1.86 - -D_ADMIN_="$admin" \ 1.87 - $msgdir/mail-invite.m4 \ 1.88 + _m4 -D_URL_="$urlbase" \ 1.89 + -D_USER_="$name" \ 1.90 + -D_EMAIL_="$1" \ 1.91 + -D_REGIST_="$regist" \ 1.92 + -D_ADMIN_="$admin" \ 1.93 + $msgdir/mail-invite.m4 \ 1.94 | smail $1 "BBSへの御招待" 1.95 return 0 1.96 ) 1.97 @@ -1203,13 +1206,13 @@ 1.98 if [ -n "$addr" ]; then 1.99 susp="<h2>招待済みで加入待ちのアドレス</h2><pre>$addr</pre>" 1.100 fi 1.101 - m4 -D_TITLE_="招待" -D_REPORT_="\`$repo'" -D_ACTION_="?invite" \ 1.102 - -D_BODYCLASS_="default" -D_SUSPENDED_="$susp" \ 1.103 - $layout/html.m4.html $layout/invite.m4.html 1.104 + _m4 -D_TITLE_="招待" -D_REPORT_="\`$repo'" -D_ACTION_="?invite" \ 1.105 + -D_BODYCLASS_="default" -D_SUSPENDED_="$susp" \ 1.106 + $layout/html.m4.html $layout/invite.m4.html 1.107 } 1.108 regist() { 1.109 # $1=session-id-for-invitation 1.110 - m4 -D_TITLE_="Invitation" $layout/html.m4.html 1.111 + _m4 -D_TITLE_="Invitation" $layout/html.m4.html 1.112 if [ -z "$1" ]; then 1.113 echo "bye bye" | html p 1.114 reutrn 1.115 @@ -1232,8 +1235,8 @@ 1.116 echo "このアドレスに初期パスワードを送信しました。" |html p 1.117 echo "新着メイルを確認してログインしてください。" |html p 1.118 addsession $1 # for removal after 1 minute 1.119 - m4 -D_SYSNAME_="Initial Login" -D_MYNAME_="$myname?userconf" \ 1.120 - $layout/login.m4.html 1.121 + _m4 -D_SYSNAME_="Initial Login" -D_MYNAME_="$myname?userconf" \ 1.122 + $layout/login.m4.html 1.123 return 1.124 } 1.125 newgrpchk() { 1.126 @@ -1297,20 +1300,20 @@ 1.127 GF_STAGE="grpconf" 1.128 GF_STAGE=groupupdate 1.129 DT_VIEW=grp dumptable html grp 'gname gecos:DESC mtime:TIME' 'order by b.TIME desc' \ 1.130 - |m4 -D_TITLE_="グループ作成" \ 1.131 - -D_FORM_="$note`genform $formdir/grp.def`" \ 1.132 - -D_DUMPTABLE_="syscmd(cat)" \ 1.133 - $layout/html.m4.html $layout/form+dump.m4.html 1.134 + |_m4 -D_TITLE_="グループ作成" \ 1.135 + -D_FORM_="$note`genform $formdir/grp.def`" \ 1.136 + -D_DUMPTABLE_="syscmd(cat)" \ 1.137 + $layout/html.m4.html $layout/form+dump.m4.html 1.138 } 1.139 userconf() { 1.140 [ -n "`getpar rowid`" ] && par2table $formdir/user.def 1.141 - m4 -D_BODYCLASS_=userconf -D_TITLE_="ユーザ情報編集" $layout/html.m4.html 1.142 + _m4 -D_BODYCLASS_=userconf -D_TITLE_="ユーザ情報編集" $layout/html.m4.html 1.143 GF_ACTION="?home" edittable "$formdir/user.def" "user" "$user" 1.144 } 1.145 groupconf() { 1.146 # $1=rowid in grp (2015-07-21 changed from gname) 1.147 [ -n "`getpar rowid`" ] && par2table $formdir/grp.def 1.148 - m4 -D_BODYCLASS_=groupconf -D_TITLE_="グループ情報編集" $layout/html.m4.html 1.149 + _m4 -D_BODYCLASS_=groupconf -D_TITLE_="グループ情報編集" $layout/html.m4.html 1.150 #rowid=`query "select rowid from grp where gname='$1';"` 1.151 rowid=${1%%[!A-Z0-9a-z_]*} 1.152 err gcon \$1=$1 rowid=$rowid 1.153 @@ -1318,18 +1321,18 @@ 1.154 GF_STAGE="groupupdate" edittable "$formdir/grp.def" "grp" "$rowid" 1.155 } 1.156 mems() { 1.157 - m4 -D_TITLE_="参加者一覧" -D_BODYCLASS_=listmember $layout/html.m4.html 1.158 + _m4 -D_TITLE_="参加者一覧" -D_BODYCLASS_=listmember $layout/html.m4.html 1.159 kwd=`getpar kwd` 1.160 listmember $kwd 1.161 } 1.162 grps() { 1.163 - m4 -D_TITLE_="グループ一覧" -D_BODYCLASS_=listgroup $layout/html.m4.html 1.164 + _m4 -D_TITLE_="グループ一覧" -D_BODYCLASS_=listgroup $layout/html.m4.html 1.165 kwd=`getpar kwd` 1.166 listgroup $kwd \ 1.167 - | m4 -D_DUMPTABLE_="syscmd(cat)" \ 1.168 - -D_TITLE_="グループ関連操作" \ 1.169 - -D_FORM_="<a href=\"?groupman\">新規グループ作成</a>" \ 1.170 - $layout/form+dump.m4.html 1.171 + | _m4 -D_DUMPTABLE_="syscmd(cat)" \ 1.172 + -D_TITLE_="グループ関連操作" \ 1.173 + -D_FORM_="<a href=\"?groupman\">新規グループ作成</a>" \ 1.174 + $layout/form+dump.m4.html 1.175 } 1.176 grp() { # $1=group-rowid 1.177 gpg=`getpar grp` 1.178 @@ -1343,7 +1346,7 @@ 1.179 [ -n "$jg" -a -n "$grp" ] && 1.180 joingrp "$grp" "$user" "$jg" "`getpar email`" 1.181 fi 1.182 - echo "グループ $grp"|m4 -D_TITLE_="syscmd(\`cat')" $layout/html.m4.html 1.183 + echo "グループ $grp"|_m4 -D_TITLE_="syscmd(\`cat')" $layout/html.m4.html 1.184 showgroup "$grid" 1.185 } 1.186 listnewblogsql() { # $1=user 1.187 @@ -1437,13 +1440,13 @@ 1.188 val='$uname';"` 1.189 listblog $uname > $bf 1.190 listgroupbytable $formdir/grp.def $cond \ 1.191 - | m4 -D_BODYCLASS_=home -D_TITLE_="spaste(\`$tf')" \ 1.192 - -D_PROFILE_="spaste(\`$pf')$conflink" \ 1.193 - -D_PROFIMG_="spaste(\`$imf')" \ 1.194 - -D_BLOGS_="spaste(\`$bf')" \ 1.195 - -D_NBLOG_="$nblog" \ 1.196 - -D_GROUPS_="syscmd(\`cat')" \ 1.197 - $layout/html.m4.html $layout/home.m4.html 1.198 + | _m4 -D_BODYCLASS_=home -D_TITLE_="spaste(\`$tf')" \ 1.199 + -D_PROFILE_="spaste(\`$pf')$conflink" \ 1.200 + -D_PROFIMG_="spaste(\`$imf')" \ 1.201 + -D_BLOGS_="spaste(\`$bf')" \ 1.202 + -D_NBLOG_="$nblog" \ 1.203 + -D_GROUPS_="syscmd(\`cat')" \ 1.204 + $layout/html.m4.html $layout/home.m4.html 1.205 1.206 if [ x"$user" = x"$uname" ]; then 1.207 # Display NEWS 1.208 @@ -1485,7 +1488,7 @@ 1.209 err commission: "$@" 1.210 gname=`getgroupbyid $1` 1.211 echo "グループ $gname 管理者委任" \ 1.212 - | m4 -D_TITLE_="syscmd(\`cat')" $layout/html.m4.html 1.213 + | _m4 -D_TITLE_="syscmd(\`cat')" $layout/html.m4.html 1.214 if [ -n "$2" ]; then 1.215 grp_reg_adm "$@" 1.216 else 1.217 @@ -1641,7 +1644,7 @@ 1.218 files=`getvalbyid $tbl profimg $id $dir` 1.219 # Pick up only first icon 1.220 echo "<div class=\"iconlist xy$thumbxy\"><p class=\"tag _$tag\">$tag</p>" \ 1.221 - | m4 $tagconv 1.222 + | _m4 $tagconv 1.223 if [ -n "$files" ]; then 1.224 icon=`echo "$files"|head -1` 1.225 iconhref $dir/$icon "$hrb+$lnk" "$gecos" 1.226 @@ -1680,10 +1683,10 @@ 1.227 tf=$tmpd/title.$$ 1.228 echo "グループ $grp" > $tf 1.229 showgroupsub $formdir/grp.def "$1" | \ 1.230 - m4 -D_TITLE_="spaste(\`$tf')" \ 1.231 - -D_FORM_="syscmd(\`cat')" \ 1.232 - -D_DUMPTABLE_="" \ 1.233 - $layout/form+dump.m4.html 1.234 + _m4 -D_TITLE_="spaste(\`$tf')" \ 1.235 + -D_FORM_="syscmd(\`cat')" \ 1.236 + -D_DUMPTABLE_="" \ 1.237 + $layout/form+dump.m4.html 1.238 else # if $grp is removed at par2table 1.239 listgroup 1.240 fi 1.241 @@ -1785,7 +1788,7 @@ 1.242 echo "加入者のみに許可された操作です。" | html p; return 1.243 fi 1.244 echo "グループ $grp 個別選択操作" \ 1.245 - | m4 -D_TITLE_="syscmd(\`cat')" $layout/html.m4.html 1.246 + | _m4 -D_TITLE_="syscmd(\`cat')" $layout/html.m4.html 1.247 1.248 isowner="" 1.249 isgrpowner "$user" "$grp" && isowner="yes" 1.250 @@ -1902,10 +1905,10 @@ 1.251 cgi_form grpaction<<EOF \ 1.252 | sed -e "s|^\(<TR><TD>\)k\([0-9]*\),\([^<]*\)|\1$ba\2$b2\3$b3|" \ 1.253 -e "s|^\(<TR><TD>\)\([0-9]*\),\([^<]*\)|\1$b1\2$b2\3$b3|" \ 1.254 - | m4 -D_TITLE_="spaste(\`$tf')" \ 1.255 - -D_SUBTITLE_="チェック後操作ボタン" \ 1.256 - -D_FORM_="syscmd(cat)" -D_DUMPTABLE_="" \ 1.257 - $layout/form+dump.m4.html 1.258 + | _m4 -D_TITLE_="spaste(\`$tf')" \ 1.259 + -D_SUBTITLE_="チェック後操作ボタン" \ 1.260 + -D_FORM_="syscmd(cat)" -D_DUMPTABLE_="" \ 1.261 + $layout/form+dump.m4.html 1.262 <div class="fold"> 1.263 `cgi_radio rm send id="sendmsg"`<label 1.264 for="sendmsg">下でチェックした人にメッセージを送信する</label> 1.265 @@ -1930,11 +1933,11 @@ 1.266 owner=`getvalbyid blog owner $rowid` 1.267 title=`getvalbyid blog title $rowid` 1.268 GF_ACTION="?blog" edittable $formdir/blog.def blog $rowid \ 1.269 - | m4 -D_TITLE_="修正" \ 1.270 - -D_SUBTITLE_="[$title]@$owner" -D_DIARY_="" \ 1.271 - -D_BLOGS_="" -D_DUMPTABLE_="" \ 1.272 - -D_FORM_="syscmd(\`cat')" \ 1.273 - $layout/html.m4.html $layout/form+dump.m4.html 1.274 + | _m4 -D_TITLE_="修正" \ 1.275 + -D_SUBTITLE_="[$title]@$owner" -D_DIARY_="" \ 1.276 + -D_BLOGS_="" -D_DUMPTABLE_="" \ 1.277 + -D_FORM_="syscmd(\`cat')" \ 1.278 + $layout/html.m4.html $layout/form+dump.m4.html 1.279 } 1.280 editart() { # $1=article-rowid $2=blogrowid 1.281 rowid=${1%%[!A-Z0-9a-z_]*} 1.282 @@ -1960,11 +1963,11 @@ 1.283 > $tmpout 1.284 rm -f /tmp/editart.out 1.285 # Cannot use pipelining to m4 with genform() because of stdin stack 1.286 - m4 -D_TITLE_="コメントの修正" -D_DIARY_="" \ 1.287 - -D_FORM_="syscmd(cat $tmpout)" \ 1.288 - -D_SUBTITLE_="`gecos $owner`の「$title」" \ 1.289 - -D_BLOGS_= -D_DUMPTABLE_= \ 1.290 - $layout/html.m4.html $layout/form+dump.m4.html 1.291 + _m4 -D_TITLE_="コメントの修正" -D_DIARY_="" \ 1.292 + -D_FORM_="syscmd(cat $tmpout)" \ 1.293 + -D_SUBTITLE_="`gecos $owner`の「$title」" \ 1.294 + -D_BLOGS_= -D_DUMPTABLE_= \ 1.295 + $layout/html.m4.html $layout/form+dump.m4.html 1.296 } 1.297 send2mem() { 1.298 rowid=`getpar grp` 1.299 @@ -2003,7 +2006,7 @@ 1.300 t_usr=`session=$2 getpar user` 1.301 t_grp=`session=$2 getpar group` 1.302 err joingrpadmit: t_usr=$t_usr, t_grp=$t_grp 1.303 - m4 -D_TITLE_="joingrp" $layout/html.m4.html 1.304 + _m4 -D_TITLE_="joingrp" $layout/html.m4.html 1.305 if [ -z "$t_usr" -o -z "$t_grp" ]; then 1.306 echo "無効な加入依頼です。" | html p 1.307 echo "有効期限が切れたか、 1.308 @@ -2743,27 +2746,27 @@ 1.309 query "select rowid from $tbl order by rowid desc;" \ 1.310 | while read rowid; do 1.311 viewtable $1 $tbl $rowid 1.312 - done | m4 -D_TITLE_="$tbl" \ 1.313 - -D_FORM_="`genform $1`" \ 1.314 - -D_DUMPTABLE_="syscmd(cat)" \ 1.315 - $layout/html.m4.html $layout/form+dump.m4.html 1.316 + done | _m4 -D_TITLE_="$tbl" \ 1.317 + -D_FORM_="`genform $1`" \ 1.318 + -D_DUMPTABLE_="syscmd(cat)" \ 1.319 + $layout/html.m4.html $layout/form+dump.m4.html 1.320 } 1.321 default_viewtext() { # $1=def-file 1.322 ### DT_VIEW="edittable+$tbl" dumptable html $tbl "$cols" \ 1.323 default_storedb "$@" 1.324 DT_VIEW="viewtable+$tbl" dumptable html $tbl "name memo file" \ 1.325 - | m4 -D_TITLE_="$tbl" \ 1.326 - -D_FORM_="`genform $1`" \ 1.327 - -D_DUMPTABLE_="syscmd(cat)" \ 1.328 - $layout/html.m4.html $layout/form+dump.m4.html 1.329 + | _m4 -D_TITLE_="$tbl" \ 1.330 + -D_FORM_="`genform $1`" \ 1.331 + -D_DUMPTABLE_="syscmd(cat)" \ 1.332 + $layout/html.m4.html $layout/form+dump.m4.html 1.333 } 1.334 default_smail() { 1.335 default_storedb "$@" 1.336 if [ $? -eq 2 ]; then 1.337 - m4 -D_TITLE_="入力" \ 1.338 - -D_FORM_="`genform $1`" \ 1.339 - -D_DUMPTABLE_="" \ 1.340 - $layout/html.m4.html $layout/form+dump.m4.html 1.341 + _m4 -D_TITLE_="入力" \ 1.342 + -D_FORM_="`genform $1`" \ 1.343 + -D_DUMPTABLE_="" \ 1.344 + $layout/html.m4.html $layout/form+dump.m4.html 1.345 return 1.346 fi 1.347 cond="" 1.348 @@ -2806,7 +2809,7 @@ 1.349 ) | (cd $tmpd && 1.350 err LS="`ls -lF`" && 1.351 $mydir/sendmultipart.sh -t "$admin" -s "$subj" $files) 1.352 - m4 -D_TITLE_="入力完了" $layout/html.m4.html 1.353 + _m4 -D_TITLE_="入力完了" $layout/html.m4.html 1.354 echo "以下の内容で送信しました。" | html p 1.355 viewtable $1 $tbl \ 1.356 `query "select rowid from $tbl order by rowid desc limit 1;"`