OSDN Git Service

initial commit master
authortaketori <dm1@x10d.jp>
Fri, 23 Jan 2009 10:46:35 +0000 (19:46 +0900)
committertaketori <dm1@x10d.jp>
Fri, 23 Jan 2009 10:46:35 +0000 (19:46 +0900)
shellmode.mac [new file with mode: 0644]
shellmode.mac.ini [new file with mode: 0644]
shellmode.mac.txt [new file with mode: 0644]

diff --git a/shellmode.mac b/shellmode.mac
new file mode 100644 (file)
index 0000000..cd49cc6
--- /dev/null
@@ -0,0 +1,422 @@
+// shellmode.mac\r
+//!hm1: t4; foldall; run "git.exe commit %f";: // \82±\82Ì\8ds\82Ì\81u\83^\83u\82Ì\95\8e\9a\90\94\81v\82Í\94½\89f\82³\82ê\82È\82¢\81B\81æ\81«\82Å\8fd\95¡\82µ\82Ä\90Ý\92è\81B\r
+//!hm1: t2:    // \82±\82Ì\8ds\82Ì\93à\97e(=\83^\83u\82Ì\95\8e\9a\90\94\82ª2)\82à\94½\89f\82³\82ê\82é\81B\r
+ //!hm31: t8:  // \82±\82Ì\8ds\82Ì\93à\97e\82Í\94½\89f\82³\82ê\82È\82¢\81B\81æ\90æ\93ª\82Ì1\95\8e\9a\96Ú\82©\82ç\83R\83\81\83\93\83g\88µ\82¢\82³\82ê\82Ä\82¢\82È\82¢\81B\r
+//!hm31: t4:   // \82±\82Ì\8ds\82Ì\93à\97e\82Í\94½\89f\82³\82ê\82È\82¢\81B\81æ\83R\83\81\83\93\83g\8ds\82ª\90æ\93ª\82©\82ç4\8ds\96Ú\82Å\92f\90â\82µ\82Ä\82¢\82é\81B\r
+//\r
+//\83}\83N\83\8d\82Ì\90à\96¾\81\8fÚ\8d×\82Í\81A\93¯\8d«\82Ì\90à\96¾\8f\91\83t\83@\83C\83\8b\82ð\8eQ\8fÆ\81B\r
+//* \8c»\8dÝ\95Ò\8fW\92\86\82Ì\83t\83@\83C\83\8b\82ð\8eÀ\8ds\82·\82é\81B\r
+//* shebang\8ds\82Ì\93à\97e\82ð\93Ç\82Ý\81A\8eÀ\8ds\82·\82é\81B\r
+//* shebang\8e\9f\91æ\82Å\81A\94Í\88Í\91I\91ð\95\94\95ª\82ð\8eÀ\8ds\82·\82é\82Æ\82©\81A\94Í\88Í\91I\91ð\95\94\95ª\82ð\91Î\8fÛ\82É\8eÀ\8ds\82·\82é\82Æ\82©\82Å\82«\82é\81B\r
+//* \8eÀ\8ds\8c\8b\89Ê\82ð\92\80\8e\9f\95\\8e¦\82·\82é\81B\r
+//* \81u\83}\83W\83b\83N\83R\83\81\83\93\83g\81v\81Bshebang\88È\8aO\82Ì\81A\83t\83@\83C\83\8b\90æ\93ªor\96\96\94ö\82©\82ç\98A\91±\82µ\82½n\81i\83f\83t\83H\83\8b\83g\82Í5\81j\8ds\88È\93à\82Ì\83R\83\81\83\93\83g\8ds\93à\82É\8f\8a\92è\82Ì\8c`\8e®\82Å\8bL\8dÚ\82³\82ê\82½\93à\97e\82ð\8eÀ\8ds\82·\82é\81B\r
+//* \82Ù\82©\82Ì\83G\83f\83B\83b\83^\82Å\8eg\82í\82ê\82Ä\82¢\82é\83}\83W\83b\83N\83R\83\81\83\93\83g\81A\83}\83W\83b\83N\83R\83\81\83\93\83g\82à\82È\82é\82×\82­\89ð\8eß\82·\82é\81B\r
+\r
+$about = currentmacrobasename + " : shebang\82â\83}\83W\83b\83N\83R\83\81\83\93\83g\82Ì\93à\97e\82ð\8eÀ\8ds\82·\82é\83}\83N\83\8d";\r
+$author = "\82½\82¯\82Æ\82è <taketori @ x10d.jp> ";\r
+\r
+// \8eÀ\8ds\82Å\82«\82È\82¢\8fð\8c\8f\82Ì\8e\9e\82Í\81A\82³\82Á\82³\82Æ\8fI\97¹\82·\82é\81B\r
+if( version < 700 ){\r
+       message "\8fG\8aÛ\82Ì\83o\81[\83W\83\87\83\93\82ª\8cÃ\82¢\82Å\82·\81B" + currentmacrobasename + "\82ð\8fI\97¹\82µ\82Ü\82·\81B";\r
+       endmacro;\r
+}\r
+if(getconfig("xColorComment") == 27){\r
+       message "\81u\95¡\90\94\8ds\83R\83\81\83\93\83g\81v\82ª\"\82È\82µ\"\82È\82Ì\82Å\8eÀ\8ds\82Å\82«\82Ü\82¹\82ñ\81B" + currentmacrobasename + "\82ð\8fI\97¹\82µ\82Ü\82·\81B";\r
+       endmacro;\r
+}\r
+$ini = currentmacrofilename + ".ini";\r
+if(existfile($ini) == 0 || existfile($ini, 0x01) == 0){                // existfile(\81`, 0x01) \93Ç\82Ý\8eæ\82è\90ê\97p\81B\r
+       message "\90Ý\92è\83t\83@\83C\83\8b\81u"+ currentmacrobasename + ".ini\81v\82ª\82 \82è\82Ü\82¹\82ñ\81B\n\"" + currentmacrodirectory + "\\\" \83t\83H\83\8b\83_\82É\95Û\91\82µ\82Ä\82­\82¾\82³\82¢\81B";\r
+       endmacro;\r
+}\r
+\r
+call load_macrodll $ini, hidemarudir + "\\hmjre.dll";          // \91æ2\88ø\90\94\82Í\81Ahmjre.dll\82ª\91\8dÝ\82·\82é\83t\83H\83\8b\83_\81B\r
+\r
+// \8f\89\8aú\90Ý\92è\r
+#_[0] = x;     #_[1] = y;\r
+$_[0] = searchbuffer;  #_[2] = searchoption;   $_[1] = getsearchhist(0);\r
+#_[3] = foundhilighting;       $_[2] = foundbuffer;    #_[4] = foundoption;\r
+#_[5] = overwrite;     #_[6] = browsemode;     #_[7] = imestate;\r
+if( #_[5] )    overwriteswitch;\r
+if( #_[6] )    browsemodeswitch;\r
+if( #_[7] )    imeswitch;\r
+setcompatiblemode 0x0002 | 0x0008 | 0x0200;            // 0x002=\90Ü\82è\82½\82½\82Ý\82ð\96³\8e\8b\82µ\82µ\82Ä\82È\82é\82×\82­\88Û\8e\9d, 0x0008=\95\94\95ª\95Ò\8fW\82ð\96³\8e\8b\82µ\82Ä\82È\82é\82×\82­\88Û\8e\9d, 0x0200=\8c\9f\8dõ\82Å\82Ì\95\\8e¦\82ð\81u\94Í\88Í\91I\91ð\81v\81B\r
+begingroupundo;\r
+#_[8] = seltopcolumn;  #_[9] = seltoplineno; #_[10] = selendcolumn; #_[11] = selendlineno;\r
+escape;                // \94Í\88Í\91I\91ð\82ð\89ð\8f\9c\82·\82é\82ª\81A\83}\83N\83\8d\8fI\97¹\8e\9e\82É\96ß\82³\82È\82¢\8bÉ\88«\8ed\97l\81B\r
+forceinselect 1;\r
+\r
+\r
+main:\r
+\r
+       // replay\82Ì\8fê\8d\87(\98A\91±\82µ\82Ä\8eÀ\8ds&\83R\83}\83\93\83h\83\89\83C\83\93\82Å\8ew\92è)\81B\89½\82à\82¹\82¸\82É\8fI\97¹\82·\82é\81B\r
+       if(replay)\r
+               call end_macro "\82±\82Ì\83}\83N\83\8d\82Í\81A\98A\91±\82µ\82Ä\8eÀ\8ds\82â\83R\83}\83\93\83h\83\89\83C\83\93\82©\82ç\82Ì\8eÀ\8ds\82É\82Í\91Î\89\9e\82µ\82Ä\82¢\82È\82¢\81B";\r
+\r
+       // \8eè\93®\82Å\8bN\93®\82³\82ê\82½\8fê\8d\87\81B\r
+       if(event == 0){\r
+               ##cond = getininum($ini, "event0", "run_shebang");\r
+               if(##cond & 1 == 0\r
+               || (##cond & 2\r
+                       && (iskeydown(val(getinistr($ini, "event0", "on_pressed"))) == 0)))\r
+                       call end_macro "\90Ý\92è\83t\83@\83C\83\8b\81u"+ currentmacrobasename + ".ini\81v\82Ì\90Ý\92è\82É\82æ\82è\81A\83}\83N\83\8d\82ª\8eÀ\8ds\82Å\82«\82Ü\82¹\82ñ\81B";\r
+               call run_shebang $ini;\r
+       }\r
+\r
+       // \8e©\93®\8bN\93®\83}\83N\83\8d\82Æ\82µ\82Ä\8eÀ\8ds\82³\82ê\82½\8fê\8d\87\81B\r
+       else{\r
+               if(strstr(" " + getinistr($ini, "event", "type") + " ", " " + str(event) + " ") != -1)\r
+                       call run_mcomment $ini, str(event);\r
+               else if(strstr(" " + getinistr($ini, "event", "type") + " ",\r
+                                                       " " + str(event) + str(geteventparam(0)) + " ") != -1)\r
+                       call run_mcomment $ini, str(event) + str(geteventparam(0));\r
+               else\r
+                       call end_macro "\90Ý\92è\83t\83@\83C\83\8b\81u"+ currentmacrobasename + ".ini\81v\82É\82±\82Ì\8eí\97Þ\82ª\93o\98^\82³\82ê\82Ä\82¢\82Ü\82¹\82ñ\81B\n[event]\83Z\83N\83V\83\87\83\93\82Ì'type'\83L\81[\82É " + str(event) + " \82ð\92Ç\89Á\82µ\82Ä\82­\82¾\82³\82¢\81B";\r
+       }\r
+\r
+       call end_macro;\r
+\r
+endmacro;\r
+\r
+load_macrodll:\r
+//arg: $\90Ý\92è\83t\83@\83C\83\8b\81B\r
+\r
+       $$dll = getinistr($$1, "macrodll", "dir");\r
+       while(!existfile($$dll + "\\macrodll.dll")){\r
+               $$dll = input("macrodll.dll\82ª\91\8dÝ\82·\82é\83t\83H\83\8b\83_\82ð\8ew\92è\82µ\82Ä\82­\82¾\82³\82¢\81B\n\"\"\82Å\8fI\97¹\82µ\82Ü\82·\81B", hidemarudir);\r
+               if($$dll == "")\r
+                       endmacro;\r
+               else\r
+                       writeinistr $$1, "macrodll", "dir", $$dll;\r
+       }\r
+\r
+       loaddll $$dll + "\\macrodll.dll";\r
+       if( !result ){\r
+               message "macrodll.dll\82ª\83\8d\81[\83h\82Å\82«\82Ü\82¹\82ñ\82Å\82µ\82½\81B\83}\83N\83\8d\82ð\8fI\97¹\82µ\82Ü\82·\81B";\r
+               endmacro;\r
+       }\r
+       if( dllfunc("GETVERSIONINT") < 0.82 ){\r
+               message "macrodll.dll\82ª\8cÃ\82¢\82Å\82·\81B\83}\83N\83\8d\82ð\8fI\97¹\82µ\82Ü\82·\81B";\r
+               endmacro;\r
+       }\r
+       if( !dllfunc("SETHMJREDLL", $$2) ){\r
+               message $$2 + "\82Éhmjre.dll\82ª\91\8dÝ\82µ\82Ü\82¹\82ñ\81B\83}\83N\83\8d\82ð\8fI\97¹\82µ\82Ü\82·\81B\n"+ currentmacrofilename +"\93à\82Å\81ucall load_macrodll\81v\82ð\8c\9f\8dõ\82µ\81A\8aY\93\96\8ds\82Ìhidemarudir\95\94\95ª\82ð\82æ\82µ\82È\82É\95Ò\8fW\82µ\82Ä\82­\82¾\82³\82¢\81B";\r
+               endmacro;\r
+       }\r
+\r
+return;\r
+\r
+run_shebang:\r
+//arg: 1$\90Ý\92è\83t\83@\83C\83\8b\r
+\r
+       gofiletop;\r
+       call get_cmark $$1, true;\r
+       searchdown2 "(?\\2)^" + $$return + "! ?(.+)(" + $$return + ".+)?$", regular, maskonly, maskcomment;\r
+       if(result == 0 || 0 < foundtopy)\r
+               call end_macro "\95Ò\8fW\92\86\82Ì\82±\82Ì\83t\83@\83C\83\8b\82É\82Í\81Ashebang\82ç\82µ\82«\82à\82Ì\82ª\8c©\82Â\82©\82è\82Ü\82¹\82ñ\81B";\r
+\r
+       if(getininum($$1, "general", "verbose")){\r
+               question "shebang(1\8ds\96Ú)\82Ì\93à\97e\82ð\8eÀ\8ds\82µ\82Ü\82·\82©\81B";\r
+               if(!result)\r
+                       call end_macro;\r
+       }\r
+\r
+       call compile $$1, gettext(foundtopx, foundtopy, foundendx, foundendy), "shebang(1\8ds\96Ú)\82Ì\93à\97e\82ð\8eÀ\8ds\82µ\82Ä\82¢\82Ü\82·\81B", "shebang(1\8ds\96Ú)\82Ì\93à\97e\82ð\8eÀ\8ds\82Å\82«\82Ü\82¹\82ñ\81B";\r
+\r
+return ##return;\r
+\r
+run_mcomment:\r
+// \83}\83W\83b\83N\83R\83\81\83\93\83g\82Ì\93à\97e\82ð\8eÀ\8ds\82·\82é\81B\r
+//arg: 1$\90Ý\92è\83t\83@\83C\83\8b, 2$\8bN\93®\82·\82é\83C\83x\83\93\83g\94Ô\8d\86\r
+//ret:\r
+//\92\8d\88Ó:\95¡\90\94\8eí\97Þand/or\95¡\90\94\8ds\82Ì\83}\83W\83b\83N\83R\83\81\83\93\83g\82ð\8c©\82Â\82¯\82½\8fê\8d\87\81A\83t\83@\83C\83\8b\90æ\93ª\91¤\82Ì1\8ds\82Ì\82Ý\8eÀ\8ds\82³\82ê\82é\81B\r
+//\92\8d\88Ó:\83R\83\81\83\93\83g\8ew\92è\95\8e\9a\82Ì\90\84\92è\95û\96@\82ª\81u\83}\83W\83b\83N\83R\83\81\83\93\83g\82©\82ç\81v\82Ì\8fê\8d\87\81A\8c»\8dÝ\82Ì\83o\81[\83W\83\87\83\93\82Å\82Í\81A\90\84\92è\82¹\82¸\82É\82¢\82«\82È\82è\83}\83W\83b\83N\83R\83\81\83\93\83g\82ð\92T\82·\81B\81æ1)\83R\83\81\83\93\83g\8ds\82Ì\82¤\82¿\83}\83W\83b\83N\83R\83\81\83\93\83g\82Ì\8c`\8e®\82É\82È\82Á\82Ä\82¢\82é\82Æ\82±\82ë\82Í\82Ù\82Ú\8aÔ\88á\82¢\82È\82­\83}\83W\83b\83N\83R\83\81\83\93\83g\82Å\82 \82ë\82¤\82©\82ç\81B2)"\94C\88Ó\82Ì\95\8e\9a+\83}\83W\83b\83N\83R\83\81\83\93\83g\82Ì\8c`\8e®"\82ð\92T\82µ\81A\92¼\8cã\82É"\82»\82Ì\81u\94C\88Ó\82Ì\95\8e\9a\81v+\83}\83W\83b\83N\83R\83\81\83\93\83g\82Ì\8c`\8e®"\82Å\8dÄ\8c\9f\8dõ\82·\82é...\82Á\82Ä\82È\82ñ\82©\95Ï\82¾\82©\82ç\81B\r
+//TODO:\95¡\90\94\8eí\97Þand/or\95¡\90\94\8ds\82Ì\83}\83W\83b\83N\83R\83\81\83\93\83g\82ð\8c©\82Â\82¯\82½\8fê\8d\87\82Å\82à\81A\82»\82ê\82ç\82·\82×\82Ä\82ð\94½\89f\82·\82é\81B\r
+\r
+       // \83R\83\81\83\93\83g\8ew\92è\95\8e\9a\82ð\90Ý\92è\82·\82é\81B\r
+       gofiletop;\r
+       call get_cmark $$1, false;\r
+       if($$return == " ")\r
+               return;\r
+\r
+       // \83}\83W\83b\83N\83R\83\81\83\93\83g\82ð\92T\82µ\81A\82»\82Ì\93à\97e\82Å\8eÀ\8ds\82·\82é\81B\r
+       call find_mcomment $$1, $$return, $$2;\r
+       $$submac_dir = dllfunstr("FILE_TRANSREGULARPATH", currentmacrodirectory + getinistr($$1,        "general", "submac_dir") + "\\");               // \95â\8f\95\83}\83N\83\8d\82Ì\95Û\91\83t\83H\83\8b\83_\81B\r
+       if($$return != ""\r
+       && $$submac_dir != "\\"\r
+       && existfile($$submac_dir, 0x10)                // existfile(\81`, 0x10) \83t\83H\83\8b\83_\82Ì\97L\96³\81B\r
+       && existfile($$submac_dir + "submac.ini")\r
+       && existfile($$submac_dir + "submac.ini", 0x01) != 0)           // existfile(\81`, 0x01) \93Ç\82Ý\8eæ\82è\90ê\97p\81B\r
+       {               // submac.ini\82ª\91\8dÝ\82·\82é\8fê\8d\87\81B\r
+               // \95K\97v\82ª\82 \82ê\82Î\95â\8f\95\83}\83N\83\8d\82ð\8eÀ\8ds\8cã\81Aconfig\95\81A; \88È\8d~\82Ì\8eÀ\8ds\82ð\8ds\82¤\81B\r
+               $$submac = getinistr($$1, "magiccomment", "type") + ".mac";             // \97\98\97p\82·\82é\95â\8f\95\83}\83N\83\8d\82Ì\96¼\91O\81B\r
+               if($$submac != ".mac" && existfile($$submac)){          // \95â\8f\95\83}\83N\83\8d\82ª\91\8dÝ\82·\82é\8fê\8d\87\81B\r
+                       writeinistr $$submac_dir + "submac.ini", "_", "arg", $$return;\r
+                       writeinistr $$submac_dir + "submac.ini", "_", "ret", $$return;          // $$submac=".mac"\82Å\82Í\95â\8f\95\83}\83N\83\8d\82ð\97\98\97p\82µ\82È\82¢\82Ì\82Å\81A\82»\82Ì\8fê\8d\87\82Ì\82½\82ß\82É\95Ô\92l\82à\90Ý\92è\82·\82é\81B\r
+                       // \95â\8f\95\83}\83N\83\8d\8eÀ\8ds\82·\82é\81B\r
+                       execmacro $$submac;\r
+               }else{          // \95â\8f\95\83}\83N\83\8d\82ª\91\8dÝ\82µ\82È\82¢\8fê\8d\87\81B\r
+                       call end_macro "\95â\8f\95\83}\83N\83\8d" + $$submac + "\82ª\8c©\82Â\82©\82è\82Ü\82¹\82ñ\81B";\r
+               }\r
+               // \83}\83W\83b\83N\83R\83\81\83\93\83g\82ð\82æ\82µ\82È\82É\8f\91\82«\8a·\82¦\82½\93à\97eor\96{\83}\83N\83\8d\93Æ\8e©\8c`\8e®\82Ì\8e\9e\82Í\82»\82Ì\82Ü\82Ü\82Ì\93à\97e\82Å\81Aconfig\95\82ð\8eÀ\8ds\82·\82é\81B\r
+               config getinistr($$submac_dir + "submac.ini", "_", "ret");\r
+       }else           // submac.ini\82ª\91\8dÝ\82µ\82È\82¢\8fê\8d\87\81B\r
+               call end_macro "\83}\83W\83b\83N\83R\83\81\83\93\83g\82Ì\93à\97e\82ª\82È\82¢\82©\81A\95â\8f\95\83}\83N\83\8d\90Ý\92è\83t\83@\83C\83\8bsubmac.ini\82ª" + $$submac_dir + "\82É\8c©\82Â\82©\82è\82Ü\82¹\82ñ\81B";\r
+\r
+return;\r
+\r
+get_cmark:\r
+// \8aî\96{\93I\82É\82Í\81A\83R\83\81\83\93\83g\8ew\92è\95\8e\9a\82Ì\90\84\92è\81¨\83}\83W\83b\83N\83R\83\81\83\93\83g\8c\9f\8dõ\r
+// \82½\82¾\82µ\81A\83}\83W\83b\83N\83R\83\81\83\93\83g\82©\82ç\83R\83\81\83\93\83g\8ew\92è\95\8e\9a\82ð\90\84\92è\82·\82é\90Ý\92è\82Ì\8fê\8d\87\82Í\81A\90\84\92è\82¹\82¸\82É\82¢\82«\82È\82è\83}\83W\83b\83N\83R\83\81\83\93\83g\82Ì\93à\97e\82Å\8eÀ\8ds\82·\82é\81B\95Ô\92l\82Í" "\81B\r
+//arg: 1$\90Ý\92è\83t\83@\83C\83\8b, 2#shebang\8ds\82Ì\8c\9f\8dõ\82©\r
+//ret: $\83R\83\81\83\93\83g\8ew\92è\95\8e\9a(""=\8c©\82Â\82©\82ç\82È\82¢\8fê\8d\87\81A" "=\83}\83W\83b\83N\83R\83\81\83\93\83g\82ð\8eÀ\8ds\82µ\82½)\r
+//\92\8d\88Ó:\83}\83N\83\8d\95Ò\8fW\8e\9e\8c»\8dÝ\81Aconfigstate\82Í0x01\82µ\82©\82Æ\82ç\82È\82¢\81B\r
+\r
+//     if(currentconfigset == ""               // \83t\83@\83C\83\8b\83^\83C\83v\95Ê\90Ý\92è\82ª\81u\8b¤\92Ê\81v\81B\r
+//     && getininum($$1, "general", "find_cmark_in_common_type") & 1 == 0)\r
+//             call end_macro;\r
+\r
+       // \83R\83\81\83\93\83g\8ew\92è\95\8e\9a\82Ì\90\84\92è\95û\96@\82ð\8eæ\93¾\81B\r
+       if(currentconfigset == "")              // \83t\83@\83C\83\8b\83^\83C\83v\82ª\81u\8b¤\92Ê\81v\82Ì\8fê\8d\87\81B\r
+               ##find_cm = getininum($$1, "general", "find_cmark_in_common_type");\r
+       else{\r
+               ##find_cm = getininum($$1, "general", "find_cmark");\r
+               // \90Ý\92è\83t\83@\83C\83\8b\92\86\82Ì[comment]\82©\82ç\81A\8c»\8dÝ\82Ì\83t\83@\83C\83\8b\83^\83C\83v\82É\91Î\89\9e\82·\82é\82à\82Ì\82ð\8eæ\93¾\81B\r
+               $$cmark = getinistr($$1, "comment", currentconfigset);\r
+               if($$cmark != "")\r
+                       return $$cmark;\r
+       }\r
+\r
+       // \90\84\92è\95û\96@\82É 1 \82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\8fê\8d\87\81Bshebang\82Ì ! \91O\82Ì\95\8e\9a\82ð\83R\83\81\83\93\83g\8ew\92è\95\8e\9a\82Æ\82µ\82Ä\97\98\97p\82·\82é\81B\r
+       if(##find_cm & 1){\r
+               setsearch "^([\"-/:-@\\[-`{-~]+)!(?\\1)", (0x0010 | 0x0800 | 0x00020000 | 0x00400000 | 0x00800000); // \90³\8bK\95\\8c», \8c\9f\8dõ\95\8e\9a\97ñ\82Ì\8b­\92², \83R\83\81\83\93\83g, \82Ì\82Ý, \92Ç\89Á\82Ì\8fð\8c\8f\82ª\97L\8cø\81B\r
+               finddown2;\r
+               if(foundtopy == 0)\r
+                       $$cmark = gettext(foundtopx, foundtopy, foundendx, foundendy);\r
+               gosearchstarted;\r
+       }\r
+\r
+       // \90\84\92è\95û\96@\82É 2 \82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\8fê\8d\87\81B\81u\83}\83W\83b\83N\83R\83\81\83\93\83g\82Ì\91Î\8fÛ\81v\8ds\82Ì\90æ\93ª\82ð\97\98\97p\82·\82é\81B\r
+       if(##find_cm & 2 && $$cmark == "" && ##2 == 0){\r
+               call find_cm_at_mcomment $$1;\r
+               $$cmark = $$return;\r
+       }\r
+\r
+       // \90\84\92è\95û\96@\82É 4 \82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\8fê\8d\87\81B[magiccomment]'common_cmark'\82ð\97\98\97p\82·\82é\81B\r
+       if(##find_cm & 4 && $$cmark == "")\r
+               $$cmark = getinistr($$1, "general", "common_cmark");\r
+\r
+return $$cmark;\r
+\r
+find_cm_at_mcomment:\r
+//arg: 1$\90Ý\92è\83t\83@\83C\83\8b\r
+//ret: $\83}\83W\83b\83N\83R\83\81\83\93\83g\92\86\82Ì\8f\8a\92è\82Ì\8c`\8e®\82Ì\91O\82É\8bL\8dÚ\82µ\82Ä\82 \82Á\82½\81A\83R\83\81\83\93\83g\8ew\92è\95\8e\9a\82Æ\8ev\82í\82µ\82«\95\8e\9a\97ñ\81B\r
+\r
+       ##place = getininum($$1, "magiccomment", "place");\r
+       ##lines = getininum($$1, "magiccomment", "lines");\r
+       ##other_ml = getininum($$1, "magiccomment", "other");\r
+\r
+       // \8c\9f\8dõ\82·\82×\82«\83}\83W\83b\83N\83R\83\81\83\93\83g\82Ì\8c`\8e®\82ð\8eæ\93¾\82·\82é\81B\r
+       //TODO: event\94Ô\8d\86\82ð\94½\89f\82³\82¹\82é\81B\r
+       $$regex[0] = "!hm[0-9]{0,2}: ?(.+) ?:(?\\2)";\r
+       ##i = 0;\r
+       if(##other_ml & 1){\r
+               ##i = ##i + 1;\r
+               $$regex[##i] = getinistr($$1, "magiccomment", "regex1");\r
+       }\r
+       if(##other_ml & 2){\r
+               ##i = ##i + 1;\r
+               $$regex[##i] = getinistr($$1, "magiccomment", "regex2");\r
+       }\r
+       if(##other_ml & 4){\r
+               ##i = ##i + 1;\r
+               $$regex[##i] = getinistr($$1, "magiccomment", "regex4");\r
+       }\r
+\r
+       setsearch "^.{0,400}$", (0x0010 | 0x0800 | 0x00020000 | 0x00400000 | 0x00800000); // \90³\8bK\95\\8c», \8c\9f\8dõ\95\8e\9a\97ñ\82Ì\8b­\92², \83R\83\81\83\93\83g, \82Ì\82Ý, \92Ç\89Á\82Ì\8fð\8c\8f\82ª\97L\8cø\81B\r
+\r
+       // \83t\83@\83C\83\8b\90æ\93ª\95t\8bß\82Ì\83}\83W\83b\83N\83R\83\81\83\93\83g\82©\82ç\83R\83\81\83\93\83g\8ew\92è\95\8e\9a\82ð\90\84\92è\82·\82é\81B\r
+       if(##place & 1){\r
+               gofiletop;\r
+               while(result && lineno <= ##place && $$cmark == ""){\r
+                       ##linenum = y;\r
+                       finddown2;\r
+                       if(!result || ##linenum < foundtopy)\r
+                               break;\r
+\r
+                       ##j = 0;\r
+                       while(##j <= ##i && $$cmark == ""){\r
+                               $$cmark = dllfuncstr("MATCHSTR",\r
+                                                                                                                       gettext(foundtopx, foundtopy, foundendx, foundendy),\r
+                                                                                                                       "^([!-/:-@\\[-`{-~]+) ?" + $$regex[##j],\r
+                                                                                                                       "\\1", 0, 0);\r
+                               ##j = ##j + 1;\r
+                       }\r
+                       movetolineno 1, lineno + 1;\r
+               }\r
+       }\r
+\r
+       // \83t\83@\83C\83\8b\96\96\94ö\95t\8bß\82Ì\83}\83W\83b\83N\83R\83\81\83\93\83g\82©\82ç\83R\83\81\83\93\83g\8ew\92è\95\8e\9a\82ð\90\84\92è\82·\82é\81B\r
+       if(##place & 2 && $$cmark == ""){\r
+               movetolineno 1, linecount2 - ##lines + 1;\r
+               while(result && $$cmark == ""){\r
+                       ##linenum = y;\r
+                       finddown2;\r
+                       if(!result){\r
+                               $$cmark = "";\r
+                               break;\r
+                       }else if(##linenum < foundtopy){\r
+                               $$cmark = "":\r
+                       }\r
+\r
+                       ##j = 0;\r
+                       while(##j <= ##i && $$cmark == ""){\r
+                               $$cmark = dllfuncstr("MATCHSTR",\r
+                                                                                                                       gettext(foundtopx, foundtopy, foundendx, foundendy),\r
+                                                                                                                       "^([!-/:-@\\[-`{-~]+) ?" + $$regex[##j],\r
+                                                                                                                       "\\1", 0, 0);\r
+                               ##j = ##j + 1;\r
+                       }\r
+                       movetolineno 1, lineno + 1;\r
+               }\r
+       }\r
+\r
+return $$cmark;\r
+\r
+find_mcomment:\r
+//arg: 1$\90Ý\92è\83t\83@\83C\83\8b, 2$\83R\83\81\83\93\83g\8ew\92è\95\8e\9a, 3$\8bN\93®\82·\82é\83C\83x\83\93\83g\94Ô\8d\86\r
+//ret: $\83}\83W\83b\83N\83R\83\81\83\93\83g\82Ì\93à\97e\81B\r
+\r
+       //\8c\9f\8dõ\82·\82×\82«\83}\83W\83b\83N\83R\83\81\83\93\83g\82Ì\8c`\8e®\82ð\8eæ\93¾\82·\82é\81B\r
+       //TODO: default_event\82Æ\93¯\82\83C\83x\83\93\83g\94Ô\8d\86\82Ì\8e\9e\82É\81A\8cx\8d\90\82·\82é\81B\r
+       $$other_ml = getinistr($$1, "magiccomment", "other") + " ";             // \8c\9f\8dõ\82·\82é\81u\82Ù\82©\82Ì\8c`\8e®\81v\82Ì\83\8a\83X\83g\81B\r
+\r
+       // \94z\97ñ0\82É\96{\83}\83N\83\8d\93Æ\8e©\8c`\8e®\82Ì\8fÚ\8d×\82ð\90Ý\92è\82·\82é\81B\r
+       $$regex[0] = "!hm(" + $$3 + ")" + leftstr("?", ($$3 == getinistr($$1, "magiccomment", "default_event"))) + ": ?(.+) ?:";                // leftstr("?", \81`)\82Ì\88Ó\96¡:default_event\82Æ\93¯\88ê\82Ì\83C\83x\83\93\83g\94Ô\8d\86\82Ì\8fê\8d\87\81Ahm\82Ì\90\94\8e\9a\82ð\8fÈ\97ª\82·\82é\81B\r
+       $$tagnum[0] = "2";\r
+       $$type[0] = "";         // \96{\83}\83N\83\8d\93Æ\8e©\8c`\8e®\82Å\82Í\95â\8f\95\83}\83N\83\8d\82ð\8eÀ\8ds\82µ\82È\82¢\82Ì\82Å\81A""\81B\r
+\r
+       // \90Ý\92è\83t\83@\83C\83\8b\82©\82ç\93Ç\82Ý\8eæ\82è\81A\8ae\94z\97ñ\82É\82»\82ê\82¼\82ê\82Ì\8c`\8e®\82Ì\8fÚ\8d×\82ð\90Ý\92è\82·\82é\81B\r
+       ##i = 1;\r
+       while($$other_ml != " "){\r
+               // \83}\83W\83b\83N\83R\83\81\83\93\83g\82Ì\83^\83C\83v\96¼=\95â\8f\95\83}\83N\83\8d\96¼(\83A\83\8b\83t\83@\83x\83b\83g1\95\8e\9a)\82ð\90Ý\92è\82·\82é\81B\r
+               $$type[##i] = leftstr($$other_ml, strstr($$other_ml, " "));\r
+               // \83}\83W\83b\83N\83R\83\81\83\93\83g\82Ì\90³\8bK\95\\8c»\82ð\8eæ\93¾\82·\82é\81B\r
+               $$regex[##i] = getinistr($$1, "magiccomment", "regex_" + $$type[##i]);\r
+               if($$regex[##i] == "")\r
+                       call end_macro "\90Ý\92è\83t\83@\83C\83\8b\92\86\82Ì[magiccomment]\82 \82½\82è(\82½\82Ô\82ñ'regex_" + $$type[##i] + "')\82Ì\90Ý\92è\82ª\82¨\82©\82µ\82¢\82Å\82·\81B";\r
+               // \83}\83W\83b\83N\83R\83\81\83\93\83g\82Ì\83q\83b\83g\82µ\82½\88µ\82¢\82É\82·\82é\89Ó\8f\8a(\94Ô\8d\86)\82ð\8eæ\93¾\82·\82é\81B\r
+               $$tagnum[##i] = getinistr($$1, "magiccomment", "tagnum_" + $$type[##i]);\r
+               if($$tagnum[##i] == "" || val($$tagnum[##i]) == 0)\r
+                       call end_macro "\90Ý\92è\83t\83@\83C\83\8b\92\86\82Ì[magiccomment]\82 \82½\82è(\82½\82Ô\82ñ'tagnum_" + $$type[##i] + "')\82Ì\90Ý\92è\82ª\82¨\82©\82µ\82¢\82Å\82·\81B";\r
+               $$other_ml = midstr($$other_ml, 2, strlen($$other_ml));\r
+               ##i = ##i + 1;          //\92\8d\88Ó: \82±\82Ì\83\8b\81[\83v\8fI\97¹\8e\9e\81A##i\82Í\94z\97ñ\82Ì\8d\80\96Ú\90\94\82æ\82è1\82Â\91½\82­\82È\82Á\82Ä\82¢\82é\81B\r
+       }\r
+       ##i = ##i - 1;          // \94z\97ñ\82Ì\8d\80\96Ú\90\94\82É\88ê\92v\82³\82¹\82é\81B\r
+\r
+       // \83}\83W\83b\83N\83R\83\81\83\93\83g\82ð\92T\82·\8fê\8f\8a\82ð\8eæ\93¾\82·\82é\81B\r
+       ##place = getininum($$1, "magiccomment", "place");              // \83}\83W\83b\83N\83R\83\81\83\93\83g\82ð\92T\82·\8fê\8f\8a(\83t\83@\83C\83\8b\90æ\93ª\82Æ\82©\96\96\94ö\82Æ\82©)\81B\r
+       ##lines = getininum($$1, "magiccomment", "lines");              // \92T\82·\8ds\90\94\81B\r
+       if(##place == 0 || ##lines == 0)\r
+               call end_macro "\83}\83W\83b\83N\83R\83\81\83\93\83g\82ð\92T\82·\90Ý\92è\82ª\95s\90³\82Å\82·\81B\n"+ $$1 +"\82Ì[magiccomment]'place'\81A'lines'\82 \82½\82è\82ð\8am\94F\82µ\82Ä\82­\82¾\82³\82¢\81B";\r
+\r
+       // \83t\83@\83C\83\8b\90æ\93ª\95t\8bß\82Ì\83}\83W\83b\83N\83R\83\81\83\93\83g\82©\82ç\83R\83\81\83\93\83g\8ew\92è\95\8e\9a\82ð\90\84\92è\82·\82é\81B\r
+       // \83R\83\81\83\93\83g\8ew\92è\95\8e\9a\82ð\90Ý\92è\82·\82é\81B\r
+       if($$2 == "")\r
+               $$cmark = "([!-/:-@\\[-`{-~]+)?";\r
+       else\r
+               $$cmark = $$2;\r
+       // \83}\83W\83b\83N\83R\83\81\83\93\83g\82Ì\8c`\8e®\82²\82Æ\82É\83}\83W\83b\83N\83R\83\81\83\93\83g\82ð\92T\82·\81B\83q\83b\83g\82µ\82½\82ç\82·\82®\82É\83T\83u\83\8b\81[\83`\83\93\82ð\94²\82¯\82é\81B\r
+       ##j = 0;\r
+       while(##j <= ##i){\r
+               gofiletop;\r
+               searchdown2 "^" + $$cmark + " ?" + $$regex[##j] + "(?\\" + str(val($$tagnum[##j]) + 1) + ")", regular, maskonly, maskcomment;\r
+               if(result\r
+               &&   (##place & 1 && ytolineno(foundtopx, foundtopy) <= ##lines)\r
+                       || (##place & 2 && linecount2 - ytolineno(foundtopx, foundtopy) <= ##lines)){\r
+                       writeinistr $$1, "magiccomment", "type", $$type[##j];\r
+                       return gettext2(foundtopx, foundtopy, foundendx, foundendy);\r
+               }\r
+               ##j = ##j + 1;\r
+       }\r
+\r
+       // \8f\88\97\9d\82ª\82±\82±\82É\97\88\82é\82Æ\82¢\82¤\82±\82Æ\82Í\81A\83}\83W\83b\83N\83R\83\81\83\93\83g\82ð\8c©\82Â\82¯\82ç\82ê\82È\82©\82Á\82½\81B\r
+       call end_macro "\83}\83W\83b\83N\83R\83\81\83\93\83g\82ð\92T\82¹\82Ü\82¹\82ñ\82Å\82µ\82½\81B";\r
+\r
+return;                // \88Ó\96¡\82ª\82È\82¢\82¯\82Ç\81A\88ê\89\9e\81B\r
+\r
+config:\r
+\r
+\r
+\r
+return;\r
+\r
+compile:\r
+// macrodll.dll\82ÌCOMPILE_START\82ð\8eÀ\8ds\82·\82é\81B\r
+//arg: $\90Ý\92è\83t\83@\83C\83\8b, $\83R\83}\83\93\83h, $\83_\83C\83A\83\8d\83O\82Ì\83^\83C\83g\83\8b, $\83G\83\89\81[\83\81\83b\83Z\81[\83W\r
+//ret: #COMPILE_GETEXITCODE\r
+\r
+       // compile\83E\83B\83\93\83h\83E\82Ì\8f\80\94õ\81B\r
+       //if(dllfunc("COMPILE_SET", "title", currentmacrobasename + " - " + $$3) == 0\r
+       if(dllfunc("COMPILE_SET", "title", $about + " - " + $$3) == 0\r
+       || dllfunc("COMPILE_SET", "log", getinistr($$1, "macrodll", "set_log")) == 0\r
+       || dllfunc("COMPILE_SET", "pos", getinistr($$1, "macrodll", "set_pos")) == 0\r
+       || dllfunc("COMPILE_SETFONT",\r
+                                                       getinistr($$1, "macrodll", "setfont_name"),\r
+                                                       getininum($$1, "macrodll", "setfont_size")\r
+                                                       + (getininum($$1, "macrodll", "setfont_size") == 0) * fontsize) == 0\r
+       || dllfunc("COMPILE_SETSIZE",\r
+                                                       getininum($$1, "macrodll", "setsize_width")\r
+                                                       + (getininum($$1, "macrodll", "setsize_width") == 0) * windowcx,\r
+                                                       getininum($$1, "macrodll", "setsize_height")\r
+                                                       + (getininum($$1, "macrodll", "setsize_height") == 0) * windowcy / 2) == 0\r
+       || dllfunc("COMPILE_SETCOLOR",\r
+                                                       val(getinistr($$1, "macrodll", "setcolor_font"))\r
+                                                       + (getinistr($$1, "macrodll", "setcolor_font") == "") * 0xFFFFFF,\r
+                                                       val(getinistr($$1, "macrodll", "setcolor_back"))) == 0\r
+       || dllfunc("COMPILE_SETCODE",\r
+                                                       getininum($$1, "macrodll", "setcode_code")\r
+                                                       + (getininum($$1, "macrodll", "setcode_code") == 0) * charset) == 0\r
+       ){\r
+               call end_macro "macrodll.dll\82ÌCOMPILE_SET\8cn\82Ì\83R\83}\83\93\83h\82ª\8eÀ\8ds\82Å\82«\82Ü\82¹\82ñ\81B\n\90Ý\92è\83t\83@\83C\83\8b\81u"+ $$1 + "\81v\82ð\8c©\92¼\82µ\82Ä\82­\82¾\82³\82¢\81B";\r
+       }\r
+\r
+       // \8fG\8aÛ\82Ì\83E\83B\83\93\83h\83Eor\83^\83u\83n\83\93\83h\83\8b\82Ì\8eæ\93¾\82·\82é\81B\r
+       if( tabmode )\r
+               ##hwnd = gettabhandle(0, tabgroup, taborder);\r
+       else\r
+               ##hwnd = hidemaruhandle(0);\r
+\r
+       // \8eÀ\8dÛ\82É\83R\83\93\83p\83C\83\8b\8aJ\8en\81B\r
+       if( !dllfunc("COMPILE_START",\r
+                                                        ##hwnd,\r
+                                                        getininum($$1, "macrodll", "start_x"),\r
+                                                        getininum($$1, "macrodll", "start_y"),\r
+                                                        dllfuncstr("TRANSLIKESPRINTF", getinistr($$1, "general", "shell"), 's', $$2, 0),\r
+                                                        directory2) )\r
+               call end_macro $$4;\r
+\r
+return dllfunc("COMPILE_GETEXITCODE");\r
+\r
+end_macro:\r
+//arg: $\83G\83\89\81[\83\81\83b\83Z\81[\83W\r
+\r
+       moveto #_[0], #_[1];\r
+       setsearch $_[0], #_[2];\r
+       setsearchhist 0, $_[1];\r
+\r
+       if( #_[5] )\r
+               overwriteswitch;\r
+       if( #_[6] )\r
+               browsemodeswitch;\r
+       if( #_[7] )\r
+               imeswitch;\r
+\r
+       endgroupundo;\r
+       //git: \95Ï\90\94\96¼\82Ì\83^\83C\83v\83~\83X\82ð\8fC\90³\81B\r
+       if( $$1 != "" ){\r
+               title "\81¡\81¡ \8eÀ\8ds\92\86\82Ì" + $about + " \82æ\82è\82¨\92m\82ç\82¹ \81¡\81¡", 0;\r
+               message $$1 + "\n" + dllfuncstr("GETLASTERROR");\r
+       }\r
+\r
+endmacro;\r
diff --git a/shellmode.mac.ini b/shellmode.mac.ini
new file mode 100644 (file)
index 0000000..5fc6865
--- /dev/null
@@ -0,0 +1,97 @@
+; shellmode.mac.ini\r
+; shellmode.mac\82Ì\90Ý\92è\83t\83@\83C\83\8b\81B\r
+;\r
+; \90Ý\92è\83t\83@\83C\83\8b\82Í\81Ashellmode.mac.ini\82Æ\82¢\82¤\83t\83@\83C\83\8b\96¼\82Å\81A\83}\83N\83\8d\83t\83@\83C\83\8b\82Æ\93¯\82\83t\83H\83\8b\83_\82É\95Û\91\82µ\82Ä\82­\82¾\82³\82¢\81B\r
+; \82È\82¨\81A\83}\83N\83\8d\83t\83@\83C\83\8b\96¼\82ðshellmode.mac\88È\8aO\82É\89ü\96¼\82µ\82½\82Æ\82«\82Í\81A\90Ý\92è\83t\83@\83C\83\8b\82Ì\83t\83@\83C\83\8b\96¼\82à\81A\89ü\96¼\8cã\82Ì\83}\83N\83\8d\83t\83@\83C\83\8b\96¼.ini \82Æ\82¢\82¤\96¼\91O\82É\95Ï\8dX\82µ\82Ä\82­\82¾\82³\82¢\81B\r
+\r
+[general]\r
+\r
+;* shenbang\8ds\82É\8bL\8dÚ\82Ì\93à\97e\82ð\8eÀ\8ds\82·\82é\83V\83F\83\8b\81B\r
+; \81@%s\82ðshebang\82Ì\93à\97e\82É\92u\8a·\82µ\82Ü\82·\81B\r
+;shell = cmd.exe /K "%s"\r
+shell = cmd.exe /K f:\cygwin\bin\bash.exe --login -c "%s"\r
+\r
+;* \83R\83\81\83\93\83g\8ew\92è\95\8e\9a\82ð\90\84\92è\82·\82é\95û\96@\81B(\98_\97\9d\98a\82Å\90Ý\92è\89Â\94\)\r
+find_cmark = 5\r
+common_cmark = (#)?\r
+\r
+;* \83t\83@\83C\83\8b\83^\83C\83v\82ª\81u\8b¤\92Ê\81v\82Ì\8e\9e\81A\83R\83\81\83\93\83g\8ew\92è\95\8e\9a\82ð\90\84\92è\82·\82é\95û\96@\81B\r
+find_cmark_in_common_type = 5\r
+\r
+;* \95â\8f\95\83}\83N\83\8d\82Ì\8ai\94[\8fê\8f\8a\81B\r
+submac_dir = .\shellmode_sub\\r
+\r
+;* \8fç\90ã\83\82\81[\83h\81B\r
+verbose = 1\r
+\r
+[macrodll]\r
+\r
+;* macrodll.dll\82ª\91\8dÝ\82·\82é\83f\83B\83\8c\83N\83g\83\8a\81B\r
+dir =f:\hm\r
+\r
+;* \83R\83\93\83p\83C\83\8b\89æ\96Ê\82Ì\90Ý\92è\81B\r
+set_log =\r
+set_pos =\r
+setfont_name =\r
+setfont_size =\r
+setsize_width =\r
+setsize_height =\r
+setcolor_font =\r
+setcolor_back =\r
+setcode_code =\r
+start_x =\r
+start_y =\r
+\r
+\r
+[event0]\r
+\r
+;* shebang\8ds\82ð\8eÀ\8ds\82·\82é\82©\81B(\98_\97\9d\98a\82Å\90Ý\92è\89Â\94\)\r
+run_shebang = 5\r
+\r
+;* run_shebang\82É2\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\8fê\8d\87\81A\81u\93Á\92è\82Ì\83L\81[\81v\81B\r
+on_pressed = 0x11\r
+\r
+\r
+[event]\r
+\r
+;* \8bN\93®\82·\82é\8eí\97Þ\81B\r
+type = 1 2 3 4 7\r
+\r
+;* \83}\83W\83b\83N\83R\83\81\83\93\83g\82Ì\83}\83N\83\8d\95\94\95ª\82ð\8eÀ\8ds\82·\82é\82©\81B(\98_\97\9d\98a\82Å\90Ý\92è\89Â\94\)\r
+run_macro = 3\r
+\r
+\r
+[magiccomment]\r
+\r
+;* \83}\83W\83b\83N\83R\83\81\83\93\83g\82Ì\91Î\8fÛ\82Æ\82È\82é\8fê\8f\8a\81B(\98_\97\9d\98a\82Å\90Ý\92è\89Â\94\)\r
+place = 3\r
+\r
+;* \83}\83W\83b\83N\83R\83\81\83\93\83g\82Ì\91Î\8fÛ\82Æ\82È\82é\8ds\90\94\81B\r
+lines = 5\r
+\r
+;* \83}\83W\83b\83N\83R\83\81\83\93\83g\92\86\82Ì\81u\8e©\93®\8bN\93®\82Ì\91Î\8fÛ\82Æ\82È\82é\90\94\8e\9a\81v\82ª\8fÈ\97ª\82³\82ê\82½\82Æ\82«\82Ì\83f\83t\83H\83\8b\83g\92l\81B\r
+default_event = 1\r
+\r
+;* \8c\9f\8dõ\82·\82é\91¼\82Ì\83}\83W\83b\83N\83R\83\81\83\93\83g\8c`\8e®\81B(\98_\97\9d\98a\82Å\90Ý\92è\89Â\94\)\r
+other = e v r\r
+\r
+;* \81u\91¼\82Ì\83}\83W\83b\83N\83R\83\81\83\93\83g\8c`\8e®\81v\82Ì\8fÚ\8d×(\90³\8bK\95\\8c»)\81B\r
+regex_e = -*- ?(.+) ?-*-\r
+regex_v = (vim?|ex): ?(set?)? ?([^:]+):?\r
+regex_r = (en)?coding: (.+)$\r
+\r
+;* \81u\91¼\82Ì\83}\83W\83b\83N\83R\83\81\83\93\83g\8c`\8e®\81v\82Ì\8fÚ\8d×\82Å\83q\83b\83g\82µ\82½\88µ\82¢\82É\82·\82é\8fê\8f\8a\81B\r
+tagnum_e = 1\r
+tagnum_v = 3\r
+tagnum_r = 2\r
+\r
+;* shebang\8ds\82Ì\83}\83W\83b\83N\83R\83\81\83\93\83g\82à\91Î\8fÛ\82Æ\82·\82é\82©\81B\r
+after_shebang = 1\r
+\r
+\r
+[comment]\r
+;* \8ae\83t\83@\83C\83\8b\83^\83C\83v\82Ì\83R\83\81\83\93\83g\8ew\92è\95\8e\9a\81B(\88È\8d~\82ª\83R\83\81\83\93\83g\82É\82È\82é\95\8e\9a\97ñ)\r
+; \81u\83t\83@\83C\83\8b\83^\83C\83v\95Ê\90Ý\92è\81v\82Ì\90Ý\92è\96¼ = \83R\83\81\83\93\83g\8ew\92è\95\8e\9a(\90³\8bK\95\\8c»)\r
+\8fG\8aÛ\83}\83N\83\8d = (//)?\r
+C\8c¾\8cê¿°½Ì§²Ù = (/[/*])?\r
+Ruby = (#)?\r
diff --git a/shellmode.mac.txt b/shellmode.mac.txt
new file mode 100644 (file)
index 0000000..5f304a1
--- /dev/null
@@ -0,0 +1,330 @@
+shellmode.mac.txt\r
+\r
+\81¡\92\8d\88Ó\81F\r
+\r
+\81@\82±\82Ì\83}\83N\83\8d\82ð\83C\83\93\83X\83g\81[\83\8b\82µ\82½\8fê\8d\87\81A\82»\82Ì\90«\8e¿\8fã\81A\88«\88Ó\82ð\8e\9d\82Á\82Ä\8dì\90¬\82³\82ê\82½\83t\83@\83C\83\8b\82ð\8aJ\82­\82¾\82¯\82Å\81A\83\86\81[\83U\82Ì\88Ó\90}\82µ\82È\82¢\93®\8dì\82ð\82·\82é\82±\82Æ\82ª\82 \82è\82Ü\82·\81B\r
+\81@\8aî\96{\93I\82É\82Í\81A\83R\83}\83\93\83h\83\89\83C\83\93\82©\82ç\8aJ\82¢\82½\82Æ\82«\82Í\82È\82é\82×\82­\82»\82¤\82¢\82¤\82±\82Æ\82ª\82È\82¢\82æ\82¤\82É\92\8d\88Ó\82µ\82Ä\8dì\82Á\82Ä\82¢\82é\82Â\82à\82è\82Å\82·\82ª\81A\8a®\91S\82Å\82È\82¢\82©\82à\82µ\82ê\82Ü\82¹\82ñ\81B\r
+\81@\82Ü\82½\81A\8e©\93®\8bN\93®\83}\83N\83\8d\82ð\90Ý\92è\82µ\82Ä\82¢\82é\8fó\91Ô\82Å\82Í\81A\8c©\8aµ\82ê\82È\82¢\83t\83@\83C\83\8b\82ð\8aJ\82­\82Æ\82«\82Í\8f\\95ª\82É\8bC\82ð\82Â\82¯\82Ä\82­\82¾\82³\82¢\81B\r
+\r
+\81@\93¯\8d«\82Ì shellmode.mac.ini.sample \82Í\81Ashellmode.mac.ini\82É\89ü\96¼(\82µ\82Ä\8f\8a\92è\82Ì\83t\83H\83\8b\83_\82É\95Û\91¶)\82·\82ê\82Î\81A\96{\83}\83N\83\8d\82Ì\90Ý\92è\83t\83@\83C\83\8b\82Æ\82µ\82Ä\82¨\8eg\82¢\82¢\82½\82¾\82¯\82Ü\82·\81B\r
+\81@\82½\82¾\82µ\82±\82Ì\8fê\8d\87\81A\8dì\8eÒ\90\84\8f§\92l\82ª\90Ý\92è\82³\82ê\82é\82½\82ß\81A\88Ó\90}\82µ\82È\82¢\93®\8dì\82ð\82·\82é\82±\82Æ\82ª\82 \82è\82Ü\82·\81B\r
+\r
+\r
+\81¡\83}\83N\83\8d\82Ì\90à\96¾\81F\r
+\r
+\96{\83}\83N\83\8d\82É\82Í\88È\89º\82Ì\82æ\82¤\82È\8b@\94\\82ª\82 \82è\82Ü\82·\81B\r
+\r
+* \8c»\8dÝ\95Ò\8fW\92\86\82Ì\83t\83@\83C\83\8b\82ð\8eÀ\8ds\82·\82é\81B\r
+* shebang\8ds\82Ì\93à\97e\82ð\93Ç\82Ý\81A\8eÀ\8ds\82·\82é\81B\r
+* shebang\8e\9f\91æ\82Å\81A\94Í\88Í\91I\91ð\95\94\95ª\82ð\8eÀ\8ds\82·\82é\82Æ\82©\81A\94Í\88Í\91I\91ð\95\94\95ª\82ð\91Î\8fÛ\82É\8eÀ\8ds\82·\82é\82Æ\82©\82Å\82«\82é\81B\r
+* \8fã\8bL\82Ì\8eÀ\8ds\8c\8b\89Ê\82ð\92\80\8e\9f\95\\8e¦\82·\82é\81B\r
+\r
+...\82ª\8f\89\8aú\82Ì\96Ú\93I\82Å\82µ\82½\82ª\81A\81u\8eÀ\8ds\81v\82Â\82È\82ª\82è\82Å\88È\89º\82Ì\82æ\82¤\82È\8b@\94\\82à\82 \82è\82Ü\82·\81B\r
+\r
+* \81u\83}\83W\83b\83N\83R\83\81\83\93\83g\81v\81B\8e©\93®\8bN\93®\83}\83N\83\8d\82Ì\8e\9e\81A\83R\83\81\83\93\83g\8ds\93à\82É\8f\8a\92è\82Ì\8c`\8e®\82Å\8bL\8dÚ\82³\82ê\82½\93à\97e\82ð\8eÀ\8ds\82·\82é\81B\r
+* \82Ù\82©\82Ì\83G\83f\83B\83b\83^\82Å\8eg\82í\82ê\82Ä\82¢\82é\83}\83W\83b\83N\83R\83\81\83\93\83g\81A\83\82\81[\83h\83\89\83C\83\93\82à\82È\82é\82×\82­\89ð\8eß\82·\82é\81B\r
+(\8fd\95¡\82·\82é\93à\97e\82Í\83t\83@\83C\83\8b\96\96\94ö\82É\8bß\82¢\82à\82Ì\82ð\97D\90æ\81B)\r
+(\82Æ\8ev\82Á\82½\82¯\82Ç\81A\96Ê\93|\82­\82³\82¢\82Ì\82Å\81A\82à\82Á\82Æ\82à\8ds\93ª\82É\8bß\82¢\82à\82Ì\82¾\82¯\82ð\8dÌ\97p\82·\82é\81B\8fã\82Ì1\8ds\82Í\8d¡\8cã\82ÌTODO\81B)\r
+\r
+\r
+\81¡\97p\8cê\82Ì\90à\96¾\81F\r
+\r
+* \83R\83\81\83\93\83g\8ds\r
+\r
+       \81@\82»\82Ì\8ds\82Ì1\95\8e\9a\96Ú\82©\82ç\81A\8fG\8aÛ\8fã\82Å\83R\83\81\83\93\83g\82Æ\82µ\82Ä\88µ\82í\82ê\82Ä\82¢\82é\8ds\81B\r
+       \81@\83f\83t\83H\83\8b\83g\82Å\82Í\81Ashebang\88È\8aO\82Ì\81A\83t\83@\83C\83\8b\90æ\93ª\96\96\94ö\82©\82ç\98A\91±\82µ\82½n\81i\83f\83t\83H\83\8b\83g\82Í5\81j\8ds\88È\93à\82É\8bL\8dÚ\82³\82ê\82Ä\82¢\82é\82à\82Ì\82ª\91Î\8fÛ\82Å\82·\81B\r
+\r
+       \81@\82½\82Æ\82¦\82Î\81A\83}\83N\83\8d\83t\83@\83C\83\8b\82Å\82Í\81A4\8ds\96Ú\88È\8aO\82Ì1\81`13\8ds\96Ú\82Ü\82Å\82ª\81u\83R\83\81\83\93\83g\8ds\81v\82¾\82ª\81A\91Î\8fÛ\82Í\81u\8f\8a\92è\82Ì\8c`\8e®\81v\82Å\8bL\8dÚ\82³\82ê\82Ä\82¢\82é2\81E3\8ds\82Å\82 \82è\81A\8fd\95¡\82µ\82Ä\82¢\82é"\83^\83u\82Ì\95\8e\9a\90\94"\82É\82Â\82¢\82Ä\82Í3\8ds\96Ú\82Ì\93à\97e\82Å\90Ý\92è\82³\82ê\82é\81B4\8ds\96Ú\88È\8d~\82Í\81u\98A\91±\82µ\82½\83R\83\81\83\93\83g\8ds\81v\82Å\82È\82¢\82Ì\82Å\91Î\8fÛ\8aO\81B\r
+\r
+* \8f\8a\92è\82Ì\8c`\8e®\r
+\r
+       \81@\83R\83\81\83\93\83g\8ds\82Ì\82¤\82¿\81A\83R\83\81\83\93\83g\8ew\92è\95\8e\9a\88È\8aO\82Ì\8dÅ\8f\89\82Ì\95\8e\9a\82ª\81I\82Å\81A\92¼\8cã\82É hm \82Æ\90\94\8e\9a\82Æ : \82ª\82 \82è\81A\82»\82±\82©\82ç : \82Ü\82Å\82Ì\95\94\95ª\81B\r
+       \81@: \8aÔ\82Ì\95\8e\9a\97ñ\82ªconfig\95\82Ì\88ø\90\94\82É\82È\82é\81B\82»\82Ì\82¤\82¿\81A\8dÅ\8f\89\82Ì ; \82æ\82è\96\96\94ö\91¤\82É\82 \82é\95\8e\9a\97ñ\82ð\8fG\8aÛ\83}\83N\83\8d\82Æ\8c©\82È\82µ\82Ä\8eÀ\8ds\82·\82é\81B\r
+       \81@\8f¬\93ï\82µ\82­\8f\91\82­\82Æ\81A\88È\89º\82Ì\82æ\82¤\82È\8a´\82\81B\r
+\r
+^[CMT]!hm[NUM[NUM]]: OPT[ ; MACRO] : [TEXT]$\r
+\r
+  \8bó\94\92  \83^\83u\82©\94¼\8ap\8bó\94\92\81B\8fÈ\97ª\89Â\94\\81B\r
+  []    \8a\87\8cÊ\93à\82ª(\8fð\8c\8f\8e\9f\91æ\82Å)\8fÈ\97ª\89Â\94\\82Å\82 \82é\82±\82Æ\82ð\8e¦\82·\81B\r
+  ^     \8ds\93ª\82Å\82 \82é\82±\82Æ\82ð\8e¦\82·\81B\90³\8bK\95\\8c»\82Ì ^ \82Æ\93¯\8b`\81B\r
+  $     \8ds\96\96\82Å\82 \82é\82±\82Æ\82ð\8e¦\82·\81B\90³\8bK\95\\8c»\82Ì $ \82Æ\93¯\8b`\81B\r
+  CMT   \83R\83\81\83\93\83g\8bL\8d\86\81B\8fÈ\97ª\82µ\82Ä\82à\83R\83\81\83\93\83g\82Æ\8c©\82È\82³\82ê\82é\82Ì\82È\82ç\8fÈ\97ª\89Â\94\\81B\r
+  NUM   \81u\8e©\93®\8bN\93®\82Ì\91Î\8fÛ\82Æ\82È\82é\90\94\8e\9a\81v\81B\r
+          2\8c\85\82Ì\8fê\8d\87\82Í\81A2\8c\85\96Ú\82ªevent\82Ì\92l\81A1\8c\85\96Ú\82ªgeteventparam\82Ì\88ø\90\94\82Æ\93¯\8b`\81B\r
+          1\8c\85\82Ì\8fê\8d\87\82Í\81Aevent\82Ì\92l\82Æ\93¯\8b`\81B\r
+          \8fÈ\97ª\82³\82ê\82½\8fê\8d\87\82â\97L\88Ó\82Å\82È\82¢\90\94\8e\9a\82Ì\8fê\8d\87\81A\82»\82Ì\8ds\82Í(\83f\83t\83H\83\8b\83g\82Å\82Í)\96³\8e\8b\82³\82ê\82é\81B\r
+  OPT   config\95\82Ì\88ø\90\94\82É\82È\82é\95\8e\9a\97ñ\81B\r
+  MACRO \81u\83}\83W\83b\83N\83R\83\81\83\93\83g\82Ì\83}\83N\83\8d\95\94\95ª\81v\81B\8fÈ\97ª\89Â\94\\81B\r
+        \8bL\8dÚ\82·\82é\82È\82ç\81A\8fG\8aÛ\83}\83N\83\8d\82Æ\82µ\82Ä\89ð\8eß\82Å\82«\81A\82©\82ÂOPT\82Æ\82Ì\8aÔ\82Ì ; \82ª\95K\90{\81B\r
+  TEXT  \94C\88Ó\82Ì\83e\83L\83X\83g\81B\8fÈ\97ª\89Â\94\\81B\r
+\r
+\r
+\81¡\8bL\8dÚ\97á\81F\r
+\r
+\81@\8e©\93®\8bN\93®\83}\83N\83\8d\82É\96{\83}\83N\83\8d\82ð\8ew\92è\82µ\81A\88È\89º\82Ì\82æ\82¤\82È\93à\97e\82ª\90æ\93ª5\8ds\88È\93à\81i\82Ü\82½\82Í\90Ý\92è\82É\82æ\82è\96\96\94ö5\8ds\88È\93à\81j\82É\8bL\8dÚ\82³\82ê\82Ä\82¢\82é\8fG\8aÛ\83}\83N\83\8d\83t\83@\83C\83\8b\82ð\91\80\8dì\82·\82é\82Æ\81A\81u\8aJ\82¢\82½\92¼\8cã\82É"\82·\82×\82Ä\90Ü\82è\82½\82½\82Ý"\81v\82É\82È\82Á\82Ä\82¢\82½\82è\81u\82±\82Ì\83t\83@\83C\83\8b\82¾\82¯"\83^\83u\82Ì\95\8e\9a\90\94"\82ª2\81v\82É\82È\82Á\82Ä\82¢\82½\82è\81A\81u\8fI\97¹\8e\9e\82É\82±\82Ì\83t\83@\83C\83\8b\82¾\82¯git\82É\83R\83~\83b\83g\82·\82é\81v...\82Æ\82©\82Å\82«\82é\81B\r
+\r
+//!hm1: t4; foldall; run "git.exe commit %f";:         \81© \82±\82Ì\8ds\82Ì\81u\83^\83u\82Ì\95\8e\9a\90\94\81v\82Í\94½\89f\82³\82ê\82È\82¢\81B\81æ\81«\82Å\8fd\95¡\82µ\82Ä\90Ý\92è\81B\r
+//!hm1: t2:            \81© \82±\82Ì\8ds\82Ì\93à\97e(=\83^\83u\82Ì\95\8e\9a\90\94\82ª2)\82à\94½\89f\82³\82ê\82é\81B\r
+ //!hm31: t8:          \81© \82±\82Ì\8ds\82Ì\93à\97e\82Í\94½\89f\82³\82ê\82È\82¢\81B\81æ\90æ\93ª\82Ì1\95\8e\9a\96Ú\82©\82ç\83R\83\81\83\93\83g\88µ\82¢\82³\82ê\82Ä\82¢\82È\82¢\81B\r
+//!hm31: t4:           \81© \82±\82Ì\8ds\82Ì\93à\97e\82Í\94½\89f\82³\82ê\82È\82¢\81B\81æ\83R\83\81\83\93\83g\8ds\82ª\90æ\93ª\82©\82ç4\8ds\96Ú\82Å\92f\90â\82µ\82Ä\82¢\82é\81B\r
+//\r
+\r
+\r
+\81¡\90Ý\92è\83t\83@\83C\83\8b\82Ì\90à\96¾\81F\r
+\r
+\81@\8ae\90à\96¾\95\92\86\82Ì[]\82Å\88Í\82Ü\82ê\82½\92P\8cê\82Í\81A\90Ý\92è\83t\83@\83C\83\8b\82É\82¨\82¯\82é\83Z\83N\83V\83\87\83\93\96¼\82Å\82·\81B\r
+\81@\8ae\90à\96¾\95\92\86\82Ì''\82Å\88Í\82Ü\82ê\82½\92P\8cê\82Í\81A\90Ý\92è\83t\83@\83C\83\8b\82É\82¨\82¯\82é\83L\81[\96¼(or\82»\82Ì\90Ý\92è\92l)\82Å\82·\81B\r
+\81@\8ae\90à\96¾\95\92\86\82Ì{}\82Å\88Í\82Ü\82ê\82½\92l\82Í\81A\82»\82Ì\8d\80\96Ú(\83L\81[)\82Å\82Ì\83f\83t\83H\83\8b\83g\92l(\90Ý\92è\83t\83@\83C\83\8b\82Å\90Ý\92è\82µ\82Ä\82¢\82È\82¢\82Æ\82«\82É\83}\83N\83\8d\82Å\8e©\93®\93I\82É\8c\88\82ß\82é\92l)\82Å\82·\81B\r
+\81@\83f\83t\83H\83\8b\83g\92l\82ª\96¾\8bL\82³\82ê\82Ä\82¢\82È\82¢\8d\80\96Ú\82Í\81A""\82©0\82ª\83f\83t\83H\83\8b\83g\92l\82Å\82·\81B\r
+\r
+[general]\r
+\r
+shell:\r
+       shenbang\8ds\82É\8bL\8dÚ\82Ì\93à\97e\82ð\8eÀ\8ds\82·\82é\83V\83F\83\8b\81B\r
+       \81@%s\82ðshebang\82Ì\93à\97e\82É\92u\8a·\82µ\82Ü\82·\81B\r
+\r
+find_cmark:\r
+       (\8cã\8fq\82·\82é[comment]\82É\82Ä)\83R\83\81\83\93\83g\8ew\92è\95\8e\9a\82ª\90Ý\92è\82³\82ê\82Ä\82¢\82È\82¢\8fê\8d\87\81Ashebang\82â\83}\83W\83b\83N\83R\83\81\83\93\83g\82ç\82µ\82«\8ds\82Ì\8ds\93ª\82É\82 \82é\95\8e\9a\97ñ\82ð\83R\83\81\83\93\83g\8ew\92è\95\8e\9a\82Æ\90\84\92è\82·\82é\82©\81B(\98_\97\9d\98a\82Å\90Ý\92è\89Â\94\)\r
+\r
+       \81@\8fG\8aÛ\82Å\81u\95¡\90\94\8ds\83R\83\81\83\93\83g\81v\82ð\81u\82È\82µ\81v\82Æ\90Ý\92è\82µ\82Ä\82¢\82é\8e\9e\82Í\81A\8eÀ\8ds\82³\82ê\82Ü\82¹\82ñ\81B\r
+       \81@\90\84\92è\82É\8e¸\94s\82·\82é\82Æ\81A\83}\83W\83b\83N\83R\83\81\83\93\83g\82ð\92T\82·\82Æ\82«\82É\89e\8b¿\82ª\8fo\82é(\92T\82µ\82«\82ê\82È\82¢)\8b°\82ê\82ª\82 \82è\82Ü\82·\81B\r
+       \81@shebang\8c\9f\8dõ\8e\9e\82É\82Í\81A"2"\82Í\96³\8e\8b\82³\82ê\82Ü\82·\81B\r
+       \81@\90\94\8e\9a\82Ì\8eá\82¢\8f\87\82Å\90\84\92è\82µ\82Ü\82·\81B\89E\95Ó\92l\82ª 7 \82È\82ç\81A1\8ds\96Ú\82ð\92T\82µ\81A\81u\83}\83W\83b\83N\83R\83\81\83\93\83g\82Ì\91Î\8fÛ\81v\8ds\92\86\82©\82ç\92T\82µ\81A\82È\82¯\82ê\82Î'common_cmark'\82ð\97\98\97p\82·\82é...\82Æ\82¢\82Á\82½\82æ\82¤\82É\81B\r
+\r
+       {0}     \90\84\92è\82µ\82È\82¢\81B\r
+       1               shebang\82Ì ! \91O\82Ì\95\8e\9a\82ð\83R\83\81\83\93\83g\8ew\92è\95\8e\9a\82Æ\82µ\82Ä\97\98\97p\82·\82é\81B\r
+                       1\8ds\96Ú\82ª\83R\83\81\83\93\83g\8ds\82Å\82 \82é\82Æ\82«\81A1\95\8e\9a\96Ú\82©\82ç!\82Ü\82Å\82É\8bL\8d\86\82ª1\95\8e\9a\88È\8fã\98A\91±\82µ\82Ä\82¢\82é(\8bó\94\92\81E\83^\83u\82ð\8aÜ\82Ü\82È\82¢)\8fê\8d\87\82É\81A\82»\82Ì\98A\91±\82µ\82½\8bL\8d\86\82ð\91Î\8fÛ\82Æ\82µ\82Ü\82·\81B\r
+       2               \81u\83}\83W\83b\83N\83R\83\81\83\93\83g\82Ì\91Î\8fÛ\81v\8ds\82Ì\90æ\93ª\82ð\97\98\97p\82·\82é\81B\r
+                       \81u\83}\83W\83b\83N\83R\83\81\83\93\83g\82Ì\91Î\8fÛ\81v\95\94\95ª\82©\82ç\81A\81u\83}\83W\83b\83N\83R\83\81\83\93\83g\82Ì\8c`\8e®\81v\82É\88ê\92v\82·\82é\95\94\95ª\82ð\8c\9f\8dõ\82µ\81A\82»\82Ì\8ds\82Ì\8ds\93ª\82©\82ç\98A\91±\82·\82é\8bL\8d\86\82ð\91Î\8fÛ\82Æ\82µ\81A\83t\83@\83C\83\8b\90æ\93ª\82É\8dÅ\82à\8bß\82¢\91¤\82Ì\82ð\97\98\97p\82µ\82Ü\82·\81B\r
+       4               'common_cmark'\82ð\97\98\97p\82·\82é\81B\r
+\r
+find_cmark_in_common_type:\r
+       \83t\83@\83C\83\8b\83^\83C\83v\82ª\81u\8b¤\92Ê\81v\82Ì\8e\9e\81A\83R\83\81\83\93\83g\8ew\92è\95\8e\9a\82ð\90\84\92è\82·\82é\95û\96@\81B(\98_\97\9d\98a\82Å\90Ý\92è\89Â\94\)\r
+\r
+       \81@\8c\9f\8dõ\82·\82é\82Æ\82«\82Í\81A\8fG\8aÛ\83}\83N\83\8d\82Å\83R\83\81\83\93\83g\82Æ\8c©\82È\82³\82ê\82é\95\94\95ª\82ð\91Î\8fÛ\82É\82µ\82Ü\82·\82Ì\82Å\81A\83t\83@\83C\83\8b\83^\83C\83v\82ª\81u\8b¤\92Ê\81v\82Ì\8e\9e\82Í\88Ó\90}\82µ\82È\82¢\95\94\95ª\82ª\92\8a\8fo\82³\82ê\82é\8b°\82ê\82ª\82 \82è\82Ü\82·\81B\r
+       \81@\82»\82ê\88È\8aO\82Í\81Afind_cmark\82Æ\93¯\97l\82Å\82·\81B\r
+\r
+       {0}     \89½\82à\82µ\82È\82¢\81B\r
+       1\81`     'find_cmark'\82Æ\93¯\97l\81B\r
+\r
+common_cmark:\r
+       find_cmark\81Afind_cmark_in_common_type\82Å\81A\89E\95Ó\92l\82É 4 \82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82Æ\82«\82É\8eg\82¤\95\8e\9a\97ñ\81B\r
+\r
+submac_dir:\r
+       \95â\8f\95\83}\83N\83\8d\82Ì\8ai\94[\8fê\8f\8a\81B\r
+\r
+       \81@\83\81\83C\83\93(\83f\83t\83H\83\8b\83g\82Ì\83t\83@\83C\83\8b\96¼\82Íshellmode.mac)\83}\83N\83\8d\82©\82ç\82Ì\91\8a\91Î\88Ê\92u\82Å\8ew\92è\82·\82é\81B\r
+       \81@\8cã\8fq\82·\82é[magiccomment]'other'\82Ì\8ae\95\8e\9a\82Æ\93¯\88ê\82Ì\83t\83@\83C\83\8b\96¼\82ð\8e\9d\82Á\82½\83}\83N\83\8d\82ð\95Û\91\82·\82é\8fê\8f\8a\81B\8fÚ\8d×\82Í\8cã\8fq\82·\82é\81u\81¡\95â\8f\95\83}\83N\83\8d\82É\82Â\82¢\82Ä\81v\82ð\8eQ\8fÆ\81B\r
+\r
+verbose:\r
+       \8fç\90ã\83\82\81[\83h\82É\82·\82é\82©\81B\r
+\r
+       {0}     \90Ã\8eâ\83\82\81[\83h\81B\82È\82é\82×\82­\96â\82¢\8d\87\82í\82¹\82µ\82È\82¢\81B\r
+       1               \8fç\90ã\83\82\81[\83h\81B\89½\82©\82ð\8eÀ\8ds\82·\82é\91O\82É\96â\82¢\8d\87\82í\82¹\82ð\82·\82é\81B\8bï\91Ì\93I\82É\82Í\82»\82ê\82¼\82ê\82Ì\90Ý\92è\92l\82ð\8eQ\8fÆ\81B\r
+\r
+\r
+[macrodll]\r
+       macrodll.dll\82É\8aÖ\82·\82é\90Ý\92è\82ð\8ds\82¢\82Ü\82·\81B\r
+\r
+dir:\r
+       macrodll.dll\82ª\91\8dÝ\82·\82é\83f\83B\83\8c\83N\83g\83\8a\81B\r
+       \81@\90Ý\92è\82µ\82Ä\82¢\82È\82¢\8fê\8d\87\81A\83}\83N\83\8d\8bN\93®\8cã\82É\90Ý\92è\82Å\82«\82Ü\82·\81B\r
+\r
+set_log:\r
+set_pos:\r
+setfont_name:\r
+setfont_size:\r
+setsize_width:\r
+setsize_height:\r
+setcolor_font:\r
+setcolor_back:\r
+setcode_code:\r
+start_x:\r
+start_y:\r
+       \8eÀ\8ds\8e\9e\82Ì\83_\83C\83A\83\8d\83O\82É\8aÖ\82·\82é\90Ý\92è\81B\r
+\r
+       \81@\82½\82Æ\82¦\82Î\81A'set_log'\82Í dllfunc("COMPILE_SET", "log", \81`)\82Æ\90Ý\92è\82³\82ê\82Ü\82·\81B\r
+       \81@\83R\83\93\83p\83C\83\8b\89æ\96Ê\82É\95\\8e¦\82·\82é\83^\83C\83g\83\8b\81A\8eÀ\8ds\82·\82é\8dÛ\82Ì\83J\83\8c\83\93\83g\83f\83B\83\8c\83N\83g\83\8a(\88È\8fã\82Í\83}\83N\83\8d\92\86\82Å\90Ý\92è\82µ\82Ü\82·\81B)\81A\83R\83\93\83p\83C\83\8b\89æ\96Ê\82Ì\8b­\92²\95\\8e¦\81A\8aÂ\8b«\95Ï\90\94\82Ì\8ew\92è\82Í(\96{\83}\83N\83\8d\82Ì\8ed\97l\82Æ\82µ\82Ä)\90Ý\92è\82Å\82«\82Ü\82¹\82ñ\81B\r
+\r
+       \83f\83t\83H\83\8b\83g\92l)\r
+       setfont_size = {fontsize}\r
+       setsize_width = {windowcx]\r
+       setsize_height = {windowcy / 2}\r
+       setcolor_font = {0xFFFFFF}\r
+       setcode_code = {charset}\r
+\r
+\r
+[event0]\r
+       \8e©\93®\8bN\93®\83}\83N\83\8d\82Æ\82µ\82Ä\8eÀ\8ds\82³\82ê\82Ä\82¢\82È\82¢\82Æ\82«\82Ì\93®\8dì\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+\r
+run_shebang:\r
+       shebang\8ds\82ð\8eÀ\8ds\82·\82é\82©(\98_\97\9d\98a\82Å\90Ý\92è\89Â\94\)\81B\r
+       \81@\8fç\90ã\83\82\81[\83h\82Ì\8e\9e\82Í\81A\8eÀ\8ds\82·\82é\91O\82É\8cx\8d\90\82µ\82Ü\82·\81B\r
+\r
+       {0}     \8eÀ\8ds\82µ\82È\82¢\81B\r
+       1               \8eÀ\8ds\82·\82é\81B\r
+       2               \93Á\92è\82Ì\83L\81[\82ª\89\9f\89º\82³\82ê\82Ä\82¢\82é\8fê\8d\87\82Ì\82Ý\81B\r
+\r
+on_pressed:\r
+       run_shebang\82É2\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\8fê\8d\87\81A\81u\93Á\92è\82Ì\83L\81[\81v\81B\r
+\r
+       \81@\89E\95Ó\92l\82Í\81Aiskeydown\8aÖ\90\94\82Ì\88ø\90\94\82ð\8ew\92è\82µ\82Ä\82­\82¾\82³\82¢\81B\r
+\r
+\r
+[event]\r
+       \8e©\93®\8bN\93®\83}\83N\83\8d\82Æ\82µ\82Ä\8eÀ\8ds\82·\82é\82Æ\82«\82Ì\93®\8dì\8fð\8c\8f\82ð\8ew\92è\82µ\82Ü\82·\81B\r
+\r
+type:\r
+       \8bN\93®\82·\82é\8eí\97Þ\81B\r
+\r
+       \81@\8eí\97Þ\82²\82Æ\82É\81A\94¼\8ap\83X\83y\81[\83X\82Å\8bæ\90Ø\82Á\82Ä\82­\82¾\82³\82¢\81B\r
+       \81@2\8c\85\82Ì\8fê\8d\87\81A10\88Ê\82ªevent\81A1\88Ê\82ªgeteventparam\82Å\82·\81B(\83}\83N\83\8d\83w\83\8b\83v\92\86\82Ì\8ae\8d\80\96Ú\82ð\8eQ\8fÆ\81B)\r
+\r
+       \81@\82½\82Æ\82¦\82Î"1 21 23"\82Æ\90Ý\92è\82µ\82½\8fê\8d\87\81A\81u\83t\83@\83C\83\8b\82ð\8aJ\82¢\82½\92¼\8cã\81v\82Å\82Í\82¢\82¸\82ê\82Ì\8fð\8c\8f\82Å\82à\8bN\93®\82³\82ê\82Ü\82·\82ª\81A\81u\90V\8bK\8dì\90¬\92¼\8cã\81v\82Å\82Í\81u\8aO\95\94\82©\82ç\8aJ\82¢\82½\81vor\81u\8fí\92\93\8fG\8aÛ\83G\83f\83B\83b\83^\82©\82ç\8aJ\82¢\82½\81v\8fê\8d\87\82µ\82©\8bN\93®\82µ\82Ü\82¹\82ñ\81B\r
+       \81@\82Ü\82½\81A\96{\83}\83N\83\8d\82ð\8e©\93®\8bN\93®\83}\83N\83\8d\82É\93o\98^\82µ\82Ä\82¢\82Ä\82à\81A\82»\82ê\82É\91Î\89\9e\82µ\82½\90\94\8e\9a\82ð\82±\82Ì\8d\80\96Ú\82Å\90Ý\92è\82µ\82Ä\82¢\82È\82¢\82Æ\81A\8eÀ\8ds\82µ\82Ü\82¹\82ñ\81B\r
+\r
+run_macro:\r
+       \81u\83}\83W\83b\83N\83R\83\81\83\93\83g\82Ì\83}\83N\83\8d\95\94\95ª\81v\82ð\8eÀ\8ds\82·\82é\82©\81B(\98_\97\9d\98a\82Å\90Ý\92è\89Â\94\)\r
+\r
+       {0}     \82µ\82È\82¢\81B\r
+       1               \82·\82é\81B\8fç\90ã\83\82\81[\83h\82Ì\8e\9e\82Í\81A\8eÀ\8ds\82·\82é\91O\82É\8cx\8d\90\82µ\82Ü\82·\81B\r
+\r
+\r
+[magiccomment]\r
+       \83}\83W\83b\83N\83R\83\81\83\93\83g\82Ì\91Î\8fÛ\82ð\8ew\92è\82·\82é\81B\8eÀ\8dÛ\82É\8eÀ\8ds\82·\82é\8fð\8c\8f\82Í[event]\82Å\8ew\92è\82·\82é\81B\r
+       \92\8d\88Ó:\8fG\8aÛ\82Å\81u\95¡\90\94\8ds\83R\83\81\83\93\83g\81v\82ð\81u\82È\82µ\81v\82Æ\90Ý\92è\82µ\82Ä\82¢\82é\8e\9e\82Í\81A\8c\9f\8dõ\82³\82ê\82Ü\82¹\82ñ\81B\r
+\r
+place:\r
+       \83}\83W\83b\83N\83R\83\81\83\93\83g\82Ì\91Î\8fÛ\82Æ\82È\82é\8fê\8f\8a\81B(\98_\97\9d\98a\82Å\90Ý\92è\89Â\94\)\r
+\r
+       {0}     \91Î\8fÛ\82È\82µ\81B\83}\83N\83\8d\8fI\97¹\81B\r
+       1               \83t\83@\83C\83\8b\90æ\93ª\81B\r
+       2               \83t\83@\83C\83\8b\96\96\94ö\81B\8fç\90ã\83\82\81[\83h\82Ì\8e\9e\82Í\81A\8eÀ\8ds\82·\82é\91O\82É\8cx\8d\90\82µ\82Ü\82·\81B\r
+\r
+lines:\r
+       \83}\83W\83b\83N\83R\83\81\83\93\83g\82Ì\91Î\8fÛ\82Æ\82È\82é\8ds\90\94\81B\r
+\r
+ {0}   \91Î\8fÛ\82È\82µ\81B\83}\83N\83\8d\8fI\97¹\81B\r
+ 1\81`   \83t\83@\83C\83\8b\90æ\93ª(and/or\96\96\94ö)\82©\82ç\90Ý\92è\8ds\88È\93à\82Ì\95\94\95ª\82ð\8c\9f\8dõ\82·\82é\81B\r
+\r
+default_event:\r
+       \83}\83W\83b\83N\83R\83\81\83\93\83g\92\86\82Ì\81u\8e©\93®\8bN\93®\82Ì\91Î\8fÛ\82Æ\82È\82é\90\94\8e\9a\81v\82ª\8fÈ\97ª\82³\82ê\82½\82Æ\82«\82Ì\83f\83t\83H\83\8b\83g\92l\81B\r
+\r
+       \81@\81u\8e©\93®\8bN\93®\82Ì\91Î\8fÛ\82Æ\82È\82é\90\94\8e\9a\81v\82ª\8fÈ\97ª\82³\82ê\82½\8fê\8d\87\82»\82Ì\8ds\82ð\96³\8e\8b\82µ\82Ü\82·\82ª\81A1\88È\8fã\82É\90Ý\92è\82·\82é\82Æ\81A\96³\8e\8b\82¹\82¸\82É\82»\82Ì\90Ý\92è\92l\82ª\8fÈ\97ª\82³\82ê\82Ä\82¢\82é\82Æ\8c©\82È\82µ\82Ä\93®\8dì\82µ\82Ü\82·\81B\r
+       \81@\81u\8e©\93®\8bN\93®\82Ì\91Î\8fÛ\82Æ\82È\82é\90\94\8e\9a\81v\82Ì\88Ó\96¡\82Í\81A\93¯\8d«\82Ì\90à\96¾\83t\83@\83C\83\8b\82ð\8c\9f\8dõ\82µ\82Ä\82­\82¾\82³\82¢\81B\r
+\r
+       \81@\82½\82Æ\82¦\82Î\89E\95Ó\92l\82ð 1 \82Æ\90Ý\92è\82µ\82½\8fê\8d\87\81A\81u!hm:\81v\82Í\81u!hm1:\81v\82Æ\93\99\89¿\82Å\82·\81B\r
+\r
+       {0}     \81u\8e©\93®\8bN\93®\82Ì\91Î\8fÛ\82Æ\82È\82é\90\94\8e\9a\81v\82ª\82È\82¢\8fê\8d\87\81A\8aY\93\96\95\94\95ª\82ð\96³\8e\8b\82·\82é\81B\r
+       1\81`     \90\94\8e\9a\82ª\82È\82¢\8fê\8d\87\82Å\82à\96³\8e\8b\82¹\82¸\82É\81A\89E\95Ó\92l\82ª\8fÈ\97ª\82³\82ê\82Ä\82¢\82é\82Æ\8c©\82È\82µ\82Ä\93®\8dì\82·\82é\81B\r
+                       \8fç\90ã\83\82\81[\83h\82Ì\8e\9e\82Í\81A\8eÀ\8ds\82·\82é\91O\82É\8cx\8d\90\82µ\82Ü\82·\81B\r
+                       \88Ó\96¡\82ð\82È\82³\82È\82¢\90\94\8e\9a(8\82â34\82È\82Ç)\82ð\90Ý\92è\82µ\82½\8fê\8d\87\81A0 \82Æ\93¯\8b`\81B\r
+\r
+other:\r
+       \96{\83}\83N\83\8d\93Æ\8e©\8c`\8e®\88È\8aO\82É\8c\9f\8dõ\82·\82é\81A\91¼\82Ì\83}\83W\83b\83N\83R\83\81\83\93\83g\8c`\8e®\81B\r
+\r
+       \81@\8c`\8e®\82²\82Æ\82É\81A\94¼\8ap\83X\83y\81[\83X\82Å\8bæ\90Ø\82Á\82Ä\82­\82¾\82³\82¢\81B"e v r"\82Ý\82½\82¢\82É\81B\r
+       \81@\90Ý\92è\82µ\82½\8f\87\82Å\8c\9f\8dõ\82µ\82Ü\82·\81B"e v r"\82Æ\90Ý\92è\82µ\82½\82ç\81A"-*- \81` -*-"\8c`\8e®\82ð\8c\9f\8dõ\82µ\82Ä\81A"vim: \81` :"\82È\82Ç\82Ì\8c`\8e®\82ð\8c\9f\8dõ\82µ\82Ä...\82Æ\82¢\82¤\8a´\82\82Å\82·\81B\r
+       \81@\8ae\8c`\8e®\82Ì\8fÚ\8d×(\90³\8bK\95\\8c»)\82Í\81A\8cã\8fq\82·\82é'regex_\81`'\82â'tagnum_\81`'\82Å\90Ý\92è\82Å\82«\82Ü\82·\81B\82Æ\82¢\82¤\82©\81A\95K\82¸\90Ý\92è\82µ\82Ä\82­\82¾\82³\82¢\81B\r
+       \81@\83\86\81[\83U\82ª\94C\88Ó\82Ì\8c`\8e®\82ð\92Ç\89Á\82Å\82«\82Ü\82·\81B\95K\82¸\88ê\88Ó\82Ì(\82Ù\82©\82Æ\8fd\95¡\82µ\82È\82¢)\95\8e\9a\82ð\90Ý\92è\82µ\82Ä\82­\82¾\82³\82¢\81B\82Ü\82½\81A\82»\82Ì\95\8e\9a\82É\91Î\82·\82é\90³\8bK\95\\8c»\82à\81A'regex_\81`'\82â'tagnum_\81`'\82Ì\89E\95Ó\82É\82Ä\90Ý\92è\82µ\82Ä\82­\82¾\82³\82¢\81B\r
+       \81@\82³\82ç\82É\81A[general]'submac_dir'\82Å\8ew\92è\82µ\82Ä\83t\83H\83\8b\83_\82É\81A\82±\82±\82Å\90Ý\92è\82µ\82½\95\8e\9a\82Æ\93¯\82\83t\83@\83C\83\8b\96¼\82ð\8e\9d\82Á\82½\83}\83N\83\8d("e v r"\82Æ\90Ý\92è\82µ\82½\82ç\81Ae.mac\82âv.mac\82È\82Ç)\82ð\95Û\91\82µ\82Ä\82­\82¾\82³\82¢\81B\83}\83N\83\8d\82Ì\8fÚ\8d×\82Í\81A\8cã\8fq\82·\82é\81u\81¡\95â\8f\95\83}\83N\83\8d\82É\82Â\82¢\82Ä\81v\82ð\8eQ\8fÆ\81B\r
+\r
+       \93¯\8d«\82Ì\90Ý\92è\83t\83@\83C\83\8b\83T\83\93\83v\83\8b\82Å\82Í\88È\89º\82Ì\8c`\8e®\82ð\90Ý\92è\82µ\82Ä\82¢\82Ü\82·\81B\r
+       e               "-*- \81` -*-"\8c`\8e®\81B\r
+       v               vi(m)\82Ì"vim: \81` :"\82È\82Ç\82Ì\8c`\8e®\81B\83\82\81[\83h\83\89\83C\83\93\82Á\82Ä\8cÄ\82Ô\82Ì\82©\82È\81H\r
+       r               Ruby\82È\82Ç\82Å\8eg\82í\82ê\82é\8c`\8e®\81B\r
+\r
+regex_\81`:\r
+       \81u\91¼\82Ì\83}\83W\83b\83N\83R\83\81\83\93\83g\8c`\8e®\81v\82Ì\8fÚ\8d×(\90³\8bK\95\\8c»)\81B\r
+\r
+       config\95\82Ì\88ø\90\94\82É\82È\82é\95\94\95ª\82ð () \82Å\88Í\82Á\82Ä\82­\82¾\82³\82¢\81B\r
+       \81@\83}\83N\83\8d\93à\82Å\8ae\89E\95Ó\92l\82Ì\91O\82É (\83R\83\81\83\93\83g\8bL\8d\86)? ? \82ª\95t\89Á\82³\82ê\82Ü\82·\81B\8f]\82Á\82Ä\81A\91O\95û\88ê\92v\81E\91O\95û\95s\88ê\92v\82Í\8eg\82¦\82Ü\82¹\82ñ\81B\r
+\r
+       \90Ý\92è\97á)\r
+       regex_e = -*- ?(.+) ?-*-\r
+       regex_v = (vim?|ex): ?(set?)? ?([^:]+):?\r
+\r
+tagnum_\81`:\r
+       \81u\91¼\82Ì\83}\83W\83b\83N\83R\83\81\83\93\83g\8c`\8e®\81v\82Ì\8fÚ\8d×\82Å\83q\83b\83g\82µ\82½\88µ\82¢\82É\82·\82é\8fê\8f\8a\81B\r
+       'regex_\81`'\82Åconfig\95\82Ì\88ø\90\94\82É\82È\82é\95\94\95ª\82ð\88Í\82Á\82½ () \82ª\81A\89½\94Ô\96Ú\82Ì () \82©\81B\r
+\r
+       \8fÚ\8d×\82Í\81A\8fG\8aÛ\83}\83N\83\8d\82Ì\81u\96Ú\8e\9f\81\8c\9f\8dõ\8cn\83R\83}\83\93\83h\81\90³\8bK\95\\8c»\81|\83q\83b\83g\82µ\82½\88µ\82¢\82É\82·\82é\83^\83O\8ew\92è\81v\82ð\8eQ\8fÆ\82µ\82Ä\82­\82¾\82³\82¢\81B\r
+\r
+       \90Ý\92è\97á)\r
+       tagnum_e = 1\r
+       tagnum_v = 3\r
+\r
+       \95â\91«:\82½\82Æ\82¦\82Î\81A\r
+               regex_v = (vim?|ex): ?(set?)? ?([^:]+):?\r
+               tagnum_v = 3\r
+       \82Æ\90Ý\92è\82µ\82½\8fê\8d\87\81A\83}\83N\83\8d\82ª\8c\9f\8dõ\82·\82é\95\8e\9a\97ñ\82Í\8e\9f\8ds\82Ì\82æ\82¤\82É\82È\82è\82Ü\82·\81B(MARK\82ð\83R\83\81\83\93\83g\8ew\92è\95\8e\9a\82Æ\82·\82é\81B)\r
+               (MARK)? ?(vim?|ex): ?(set?)? ?([^:]+):?(?\4)\r
+       \82±\82Ì\82Æ\82«\81A([^:]+) \82É\8aY\93\96\82·\82é\95\94\95ª\82ª\81u\83q\83b\83g\82µ\82½\88µ\82¢\81v\82É\82È\82è\81A\82±\82Ì\95\94\95ª\82ð\97\98\97p\82µ\82Ä\88È\8d~\82Ì\8f\88\97\9d\82ð\8cp\91±(\95â\8f\95\83}\83N\83\8d\82ð\97\98\97p\82µ\82Ä\8aY\93\96\95\94\95ª\82ðconfig\95\82ª\89ð\8eß\82µ\82¤\82é\82æ\82¤\82É\95Ï\8a·)\82µ\82Ü\82·\81B\r
+\r
+after_shebang:\r
+       shebang\8ds\82Ì\83}\83W\83b\83N\83R\83\81\83\93\83g\82à\91Î\8fÛ\82Æ\82·\82é\82©\81B\r
+       \81@\82½\82¾\82µ\81A\82¢\82©\82È\82é\90Ý\92è\82Å\82à\83R\83\81\83\93\83g\8bL\8d\86\82Ì\90\84\92è\8e\9e\82É\82Í\91Î\8fÛ\8aO\82Æ\82È\82è\82Ü\82·\81B\r
+\r
+       {0}     \82µ\82È\82¢\81B\r
+       1               shebang\8ds\82Ì(\83R\83\81\83\93\83g\8bL\8d\86\82Ì)\8cã\82ë\82à\91Î\8fÛ\82É\82·\82é\81B\r
+\r
+type:\r
+       \95â\8f\95\83}\83N\83\8d\82Ì\8c`\8e®\81B\r
+       \81@\83}\83N\83\8d\92\86\82Å\8f\91\82«\8a·\82¦\82Ü\82·\82Ì\82Å\81A\8eè\93ü\97Í\82Å\90Ý\92è\82µ\82Ä\82à\88Ó\96¡\82ª\82 \82è\82Ü\82¹\82ñ\81B\r
+\r
+\r
+[comment]\r
+       \8ae\81u\83t\83@\83C\83\8b\83^\83C\83v\95Ê\82Ì\90Ý\92è\81v\82²\82Æ\82É\81A\83R\83\81\83\93\83g\8ew\92è\95\8e\9a\82ð\90Ý\92è\82·\82é\81B\r
+       \81@\83t\83@\83C\83\8b\83^\83C\83v\82ª\81u\8b¤\92Ê\81v\82Ü\82½\82Í\89E\95Ó\92l\82ª""\82Ì\8fê\8d\87\82Í\81A[general]\82É\82Ä\90Ý\92è\82·\82é\81B\r
+\r
+\81u\83t\83@\83C\83\8b\83^\83C\83v\95Ê\82Ì\90Ý\92è\81v\82Ì\90Ý\92è\96¼:\r
+       \81u\83t\83@\83C\83\8b\83^\83C\83v\95Ê\82Ì\90Ý\92è\81v\82É\91Î\82·\82é\83R\83\81\83\93\83g\8ew\92è\95\8e\9a\81B\r
+\r
+       \89E\95Ó\92l\82Í\81A\82»\82Ì\83^\83C\83v\82Å\82Ì\83R\83\81\83\93\83g\8ew\92è\95\8e\9a\81B(\82»\82Ì\95\8e\9a\88È\8d~\82ª\83R\83\81\83\93\83g\82É\82È\82é\95\8e\9a\97ñ)\81B\r
+       \89E\95Ó\92l\82Í\95K\82¸ () \82Å\82­\82­\82é\81B\r
+\r
+       \90Ý\92è\97á)\r
+       \8fG\8aÛ\83}\83N\83\8d = (//)?\r
+       C\8c¾\8cê¿°½Ì§²Ù = (/[/*])?\r
+       Ruby = (#)?\r
+       Bash = (#)?\r
+       HTML = (<--!)?\r
+\r
+\r
+\81¡\95â\8f\95\83}\83N\83\8d\82É\82Â\82¢\82Ä\r
+(\8f\91\82«\82©\82¯\82Ì\8d\80\96Ú)\r
+\r
+\81E\95â\8f\95\83}\83N\83\8d\82Æ\82Í\r
+       * \83\81\83C\83\93\83}\83N\83\8d(\83f\83t\83H\83\8b\83g\82Å\82Íshellmode.mac\82Æ\82¢\82¤\83t\83@\83C\83\8b\96¼\82Ì\83}\83N\83\8d)\82ª\8eæ\93¾\82µ\82½\83}\83W\83b\83N\83R\83\81\83\93\83g\82Ì\93à\97e\82ð\81A\8fG\8aÛ\83}\83N\83\8d\82Ìconfig\95\82ª\89ð\8eß\82µ\82¤\82é\8c`\8e®\82É\95Ï\8a·\82·\82é\83}\83N\83\8d(\8cQ)\81B\r
+\r
+\81E\95â\8f\95\83}\83N\83\8d\95Û\91\83t\83H\83\8b\83_\r
+       * \83\81\83C\83\93\83}\83N\83\8d\82ð\8aî\8f\80\82Æ\82µ\82½\81A\90Ý\92è\83t\83@\83C\83\8b\93à\82Ì[general]'submac_dir'\82Å\91\8a\91Î\93I\82É\90Ý\92è\82³\82ê\82Ä\82¢\82é\83t\83H\83\8b\83_\81B\r
+\r
+\81E\95â\8f\95\83}\83N\83\8d\82Ì\83t\83@\83C\83\8b\96¼\r
+       * <\90Ý\92è\83t\83@\83C\83\8b\93à\82Ì[magiccomment]'other'\82Å\90Ý\92è\82·\82é\8ae\95\8e\9a>.mac\r
+       \81@\82½\82Æ\82¦\82Î\81A"e v r"\82Æ\90Ý\92è\82·\82é\8fê\8d\87\82Í\81Ae.mac\81Av.mac\81Ar.mac\82ª\82»\82ê\82¼\82ê\95K\97v\81B\r
+\r
+\81E\90§\8cÀ\r
+       * \95â\8f\95\83}\83N\83\8d\97p\90Ý\92è\83t\83@\83C\83\8b\82Í\81A\95â\8f\95\83}\83N\83\8d\95Û\91\83t\83H\83\8b\83_\93à\82Ì\81usubmac.ini\81v\82Å\82 \82é\81B\r
+       * \95â\8f\95\83}\83N\83\8d\82ð\8bN\93®\82·\82é\91O\82É\81Amacrodll.dll\82ª\93Ç\82Ý\8d\9e\82Ü\82ê\82Ä\82¢\82é\81B\r
+       * \95â\8f\95\83}\83N\83\8d\82ð\8bN\93®\82·\82é\91O\82É\81Asubmac.ini\92\86\82Ì[_]'arg'\82ª\81A\83}\83W\83b\83N\83R\83\81\83\93\83g\82Ì\93à\97e\82Æ\82µ\82Ä\90Ý\92è\82³\82ê\82Ä\82¢\82é\81B\r
+       * \95â\8f\95\83}\83N\83\8d\82ð\8fI\97¹\82·\82é\91O\82É\81A\8fG\8aÛ\83}\83N\83\8d\82Ìconfig\95\82ª\89ð\8eß\82Å\82«\82é\82æ\82¤\82È\8c`\8e®\82Å\81Asubmac.ini\92\86\82Ì[_]'ret'\82ð\90Ý\92è\82·\82é\81B\r
+       * \8fã\8bL\82Ì\90Ý\92è\92l\82É\82Â\82¢\82Ä\82Í\81A\83\81\83C\83\93\83}\83N\83\8d\82Å\82Í\83G\83\89\81[\83`\83F\83b\83N\82³\82ê\82È\82¢\81B\r
+       * \97á\8aO\93I\82É\81A\90Ý\92è\92l\82ª""\82Ì\8e\9e\82¾\82¯\83`\83F\83b\83N\82³\82ê\82é\81B\82±\82Ì\8fê\8d\87\81A\83\81\83C\83\93\83}\83N\83\8d\82ð\8fI\97¹\82·\82é\81B\r
+       * \95â\8f\95\83}\83N\83\8d\82Íendmacro\82Å\8fI\97¹\82·\82é\81Bendmacroall\82Å\8fI\97¹\82µ\82È\82¢\81B\r
+\r
+\r
+\81¡\8ed\97l\r
+\r
+* \8e©\93®\8bN\93®\83}\83N\83\8d\82Ì\8e\9e\82Í\81Ashebang\82Ì\93à\97e\82ð\8eÀ\8ds\82µ\82È\82¢\81B\r
+* \83R\83}\83\93\83h\83\89\83C\83\93\83I\83v\83V\83\87\83\93/x\82Å\8ew\92è\82³\82ê\82½\82Æ\82«\82Í\81A\89½\82à\82µ\82È\82¢\81B\82Æ\82¢\82¤\82æ\82è\82Í\81A\8fG\8aÛ\82Ì\8ed\97l\82Æ\82µ\82Ä\81A\r
\81@\83I\83v\83V\83\87\83\93\82ª\8ew\92è\82³\82ê\82Ä\82¢\82é\82Æ\82«\81Areplay\82É\82È\82é\81B\r
\81@\8ew\92è\82³\82ê\82Ä\82¢\82é\82Æ\82«\81A\8e©\93®\8bN\93®\83}\83N\83\8d\81i\82Ì\81u\8aJ\82¢\82½\92¼\8cã\81v\81j\82Í\8bN\93®\82µ\82È\82¢\81B\r
\81@\8ew\92è\82³\82ê\82Ä\82¢\82é\82Æ\82«\81A\93¯\82\83}\83N\83\8d\82ð\8eè\93®\82Å\8eÀ\8ds\82µ\82Ä\82àreplay\82É\82È\82ç\82È\82¢\81B\r
\81@\83R\83}\83\93\83h\83\89\83C\83\93\82©\82ç\83t\83@\83C\83\8b\82ð\8aJ\82¢\82½\82Æ\82«\82Í\81A\8e©\93®\8bN\93®\83}\83N\83\8d\82Å\82 \82Á\82Ä\82àreplay\82É\82È\82é\81B\r
+* \83t\83@\83C\83\8b\83^\83C\83v\95Ê\90Ý\92è\82ª\81u\88ê\8e\9e\93I\82È\90Ý\92è\81v\82Å\82Í\93Á\82É\82·\82é\82±\82Æ\82Í\82È\82¢\81B\82Æ\82¢\82¤\82©\81A\96{\83}\83N\83\8d\8e©\90g\82ª\83}\83W\83b\83N\83R\83\81\83\93\83g\82Ì\93à\97e\82Å\8f\91\82«\8a·\82¦(=\88ê\8e\9e\93I\82È\90Ý\92è\82É\82·)\82é\82±\82Æ\82ª\82 \82é\82Ì\82Å\81A\8dl\97\82µ\82È\82¢\81B\r
\81@\82¿\82È\82Ý\82É\81A\81u\88ê\8e\9e\93I\82È\90Ý\92è\81v\82Å\82 \82Á\82Ä\82àcurrentconfigset\82Í\93K\90Ø\82È\92l\82ð\8eæ\93¾\82Å\82«\82é\81B\r
+* \90Ý\92è\83t\83@\83C\83\8b\82Å\82Í\81A\83R\83\93\83p\83C\83\8b\89æ\96Ê\82É\95\\8e¦\82·\82é\83^\83C\83g\83\8b\81A\8eÀ\8ds\82·\82é\8dÛ\82Ì\83J\83\8c\83\93\83g\83f\83B\83\8c\83N\83g\83\8a\81i\88È\8fã\82Í\83}\83N\83\8d\92\86\82Å\90Ý\92è\82µ\82Ü\82·\81B\81j\81A\83R\83\93\83p\83C\83\8b\89æ\96Ê\82Ì\8b­\92²\95\\8e¦\81A\8aÂ\8b«\95Ï\90\94\82Ì\8ew\92è\82Í\81i\96{\83}\83N\83\8d\82Ì\8ed\97l\82Æ\82µ\82Ä\81j\90Ý\92è\82Å\82«\82È\82¢\81B\r
+* \8e©\93®\8bN\93®\83}\83N\83\8d\82É\93o\98^\82µ\82Ä\82¢\82Ä\82à\81A\90Ý\92è\83t\83@\83C\83\8b\82Å\82»\82Ì\8eí\97Þ\82ð\90Ý\92è\82µ\82Ä\82¢\82È\82¢\8fê\8d\87\82à\82µ\82­\82Í0\82â\88Ó\96¡\82ð\82È\82³\82È\82¢\92l\82Ì\82Ý\82ð\90Ý\92è\82µ\82Ä\82 \82é\8fê\8d\87\81A\8bN\93®\82µ\82È\82¢\81B\r
+* shebang\8ds\82Ì\94»\92è\83A\83\8b\83S\83\8a\83Y\83\80\82Í\81u1\8ds\96Ú\82ª\81A#!\82Å\8en\82Ü\82éor\81i\83t\83@\83C\83\8b\83^\83C\83v\95Ê\90Ý\92u\82ª\81u\8b¤\92Ê\81v\82Å\82È\82¢\82Æ\82«\82Í\81j\8ds\93ª\82©\82ç\83R\83\81\83\93\83g\8ds\82Å\8bL\8d\86\82Ì\8cã\82ë\82É!\82Å\8en\82Ü\82éor\81i\81u\8b¤\92Ê\81v\82Ì\8e\9e\82Í\81j\8bL\8d\86\81iascii\83R\81[\83h\82Ì0x22\81`0x7E\82Ì\82¤\82¿\90\94\8e\9a\82Æ\83A\83\8b\83t\83@\83x\83b\83g\88È\8aO\81j1\95\8e\9a\88È\8fã\82Æ(\82»\82Ì\8cã\82ë\82É\81j!\82Å\8en\82Ü\82é\81v\81B\r
+\r