//***************************************************************************** // 罫線を簡単に入力するマクロ //***************************************************************************** $RCSID = "$Id: ds_keisen.mac 1.1 2003/04/27 07:05:19 delmonta Exp $"; //------------------------- 太字にする・しないの変換表 ------------------------ // 上 $Embold_before[0] = "│└┘├┴┼┤┃┗┛┣┻╋┫┠┸╂┨┝┷┿┥"; $Embold_after [0] = "┃┗┛┠┸╂┨│└┘┝┷┿┥├┴┼┤┣┻╋┫"; // 下 $Embold_before[1] = "│┌┐├┬┼┤┃┏┓┣┳╋┫┠┰╂┨┝┯┿┥"; $Embold_after [1] = "┃┏┓┠┰╂┨│┌┐┝┯┿┥├┬┼┤┣┳╋┫"; // 左 $Embold_before[2] = "─┐┘┴┼┬┤━┓┛┻╋┳┫┷┿┯┥┸╂┰┨"; $Embold_after [2] = "━┓┛┷┿┯┥─┐┘┸╂┰┨┴┼┬┤┻╋┳┫"; // 右 $Embold_before[3] = "─┌└├┬┴┼━┏┗┣┳┻╋┠┸┰╂┝┷┯┿"; $Embold_after [3] = "━┏┗┝┯┷┿─┌└┠┰┸╂┣┻┳╋├┴┬┼"; //------------------------------- メインルーチン ------------------------------ main: #c = inputchar("罫線入力マクロ "+$RCSID); if (#c==ascii("O")-64) {#c=inputchar(""); endmacro;} else if (#c==0x1B) escape; else if (#c==0x1C || #c==ascii("S")-64) left; else if (#c==0x1D || #c==ascii("E")-64) up; else if (#c==0x1E || #c==ascii("D")-64) right; else if (#c==0x1F || #c==ascii("X")-64) down; else if (#c==ascii("F")-64) golineend; else if (#c==ascii("A")-64) golinetop; else if (#c==ascii("C")-64) nextpage; else if (#c==ascii("R")-64) prevpage; else if (#c==ascii("H")-64) backspace; else if (#c==ascii(" ") ) insert " "; else if (#c==ascii("I")-64) insert "\t"; else if (#c==ascii("M")-64) insert "\n"; else if (#c==0x7f) delete; else if (#c==ascii("U")-64) undo; //┌┬┐789 //├┼┤456 //└┴┘123 //│0 ─:− else if (#c==ascii("1")) insert "└"; else if (#c==ascii("2")) insert "┴"; else if (#c==ascii("3")) insert "┘"; else if (#c==ascii("4")) insert "├"; else if (#c==ascii("5")) insert "┼"; else if (#c==ascii("6")) insert "┤"; else if (#c==ascii("7")) insert "┌"; else if (#c==ascii("8")) insert "┬"; else if (#c==ascii("9")) insert "┐"; else if (#c==ascii("0")) insert "│"; else if (#c==ascii("|")) insert "│"; else if (#c==ascii("-")) insert "─"; else if (#c==ascii("+")) insert "┼"; else if (#c==ascii("e")) call embold 0; else if (#c==ascii("x")) call embold 1; else if (#c==ascii("s")) call embold 2; else if (#c==ascii("d")) call embold 3; else message "Key=" + str(#c); goto main; //----------------------------------------------------------------------------- embold: $$c = gettext(x,y,x+2,y); ##pos = strstr($Embold_before[##1],$$c); if (##pos >= 0) { delete; insert midstr($Embold_after[##1],##pos,2); left; if (##1==0) up; else if (##1==1) down; else if (##1==2) left; else if (##1==3) right; } return;