|
#!/usr/bin/env bash
#=============================================================================
# Script: hidemaru
# Description: An wrapper script around hidemaru.exe
# Date: $Date: 2003-10-14 13:40:47+09 $
# Revision: $Revision: 1.43 $
#=============================================================================
# 環境依存変数。
# hidemaru.exe のあるディレクトリ
# cygpath -u 'c:\program files\hidemaru' とかで確認してください。
hm_hidemarudir='/cygdrive/c/program files/hidemaru'
# -e で使う。秀丸マクロディレクトリ
hm_macrodir='/cygdrive/c/program files/hidemaru/macro'
# -e で使う。一時マクロファイル名
hm_macro='tmp.mac'
# マクロ実行または印刷時のウインドウの大きさ
hm_showwindow='/(0,0,200,200) '
#=============================================================================
if [ "$1" == "--help" ]; then
ver='$Id: hidemaru,v 1.43 2003-10-14 13:40:47+09 ta Exp $'
cat <<EOD >&2
SYNOPSIS: ${0##*/} [options] [files]
新規ファイルは引数で指定できません。
OPTIONS:
-Kkcode 漢字コードの指定。kcode で有効な文字は以下。
s[jis], e[uc], j[is], u[nicode], u[tf]7,
u[tf]8, u[nicode]b, cs (簡体字中国語), ct (繁体字中国語)
k[orea] (韓国語), a (欧文 iso-8859-1)
-kkcode, -fkcode -K と同じ。
-b 閲覧モードで開く。
-c[extension] ファイルタイプ別の設定を適応する。
例。-c.txt, -c.cpp, -c.java
-e 'command' 一行スクリプトの指定。複数の -e が使える。
明示的に終了させるには、exit などを使い、
endmacro 等は使ってはならない。
-h ウインドウを隠して開く。
-jline[,column] カーソルを指定の行の指定のカラムへ位置づける。
-p 印刷。
-Ptemplate テンプレートファイルを指定して印刷。
-r 書き込み禁止で開く。
-xmacrofile 実行マクロ指定。マクロは、"exit", "saveexitall",
"quit" などで終了する必要がある。
-w 通常の大きさのウインドウで開く。
$ver
EOD
exit 0
elif [ "$1" == "--showmacro" ]; then
echo "$hm_macrodir/$hm_macro"
echo "--"
cat "$hm_macrodir/$hm_macro"
exit 0
fi
execmacro=0
options=
wait_for=0
while getopts :K:k:c:g:j:k:f:x:e:P:s:brphw opt; do
case $opt in
K | k | f )
case $OPTARG in
s* ) options="$options/fs " ;;
e* ) options="$options/fe " ;;
j* ) options="$options/fj " ;;
u*b) options="$options/fub " ;;
u*7) options="$options/fu7 " ;;
u*8) options="$options/fu8 " ;;
u* ) options="$options/fu " ;;
cs ) options="$options/fcs " ;;
ct ) options="$options/fct " ;;
k* ) options="$options/fk " ;;
a* ) options="$options/fa " ;;
esac
;;
[cgj] ) options="$options/$opt$OPTARG " ;;
x )
if [ $execmacro -eq 0 ]; then
if [ "${OPTARG#*/}" != "$OPTARG" ]; then
options="$options/$opt${OPTARG//\//\\} "
else
options="$options/$opt$OPTARG "
fi
execmacro=2
wait_for=1
fi
;;
e )
if [ $execmacro -eq 0 ]; then
: > "$hm_macrodir/$hm_macro"
execmacro=1
wait_for=1
fi
echo "$OPTARG;" >> "$hm_macrodir/$hm_macro"
;;
h ) hm_showwindow='/h ' ;;
w ) hm_showwindow='' ;;
P ) options="$options/p${OPTARG%.hpt} "
wait_for=1
;;
p ) options="$options/$opt "
wait_for=1
;;
b|r)
options="$options/$opt " ;;
s)
options="$options/s$OPTARG " ;;
* )
if [ "$opt" == ":" ]; then
echo "option requires an argument -- $OPTARG"
else
echo "illegal option -- $OPTARG"
fi
exit 128
;;
esac
done
if [ $OPTIND -gt 1 ]; then
shift $(( OPTIND - 1 ))
fi
if [ $wait_for -eq 1 ]; then
options="$options$hm_showwindow "
fi
if [ $execmacro -eq 1 ]; then
# echo 'saveexitall;' >> $hm_macrodir/$hm_macro
# echo 'if(updated) save; exit;' >> $hm_macrodir/$hm_macro
echo 'if(updated==1 && basename!="") save; quit;' >> "$hm_macrodir/$hm_macro"
options="/x $hm_macro $options"
fi
if [ $# -gt 0 ]; then
# Quoting $(pwd) allows for possible spaces.
dir=$(cygpath -w "$(pwd)")
for f in "$@"; do
if [ -f "$f" ]; then
if [ "${f#*/}" != "$f" ]; then
f=$(cygpath -w "$f")
else
f="$dir\\$f"
fi
echo "'"$hm_hidemarudir/hidemaru.exe"'" $options $f
if [ $wait_for -eq 1 ]; then
"$hm_hidemarudir/hidemaru.exe" $options "$f"
else
exec "$hm_hidemarudir/hidemaru.exe" $options "$f" &
fi
fi
done
else
echo "'"$hm_hidemarudir/hidemaru.exe"'" $options $f
if [ $wait_for -eq 1 ]; then
"$hm_hidemarudir/hidemaru.exe" $options
else
exec "$hm_hidemarudir/hidemaru.exe" $options &
fi
fi
exit 0
|
|