2019-01-01から1年間の記事一覧
補完の際、Windowsでは空白を打ち消す文字の定番が決まってないのでパス全体を引用符で囲む。すると ~\Program Filesは "~\Program Files" みたいになるが、~ が先頭でなくなってしまうので、 ~ を%USERPROFILE% に変換できなくなってしまう。 かといって、~…
とあるアプリのアドオンを VC++ で書いていたんだけれども、自作のダイアログを出そうとしてもなぜか DoModal が素通りしてしまう。 しかも、Visual Studio 自体もなぜか不安定で、クラスウィザードのクラッシュも多発して、原因の切り分けができない!!! …
4.4.2_0(報告記事リンク)を出して間もないのですが、看過できない不具合がありましたので、修正版を公開しました。 Release 4.4.2_1 · zetamatta/nyagos(ダウンロードページ) 修正点は以下の2点 diskfree: 行末の空白を削除 これは大した問題ではなく、…
Release 4.4.2_0 · zetamatta/nyagos まだまだ修正する気満々だったのですが、リリースバイナリに未反映の修正がたまりすぎると不具合が発生した時、マスターと開発版をまた別管理しなくちゃいけなくなったります。それは避けたいので、4月になったし、いい…
Ctrl-C kills nyagos.exe itself when more runs without redirect · Issue #342 · zetamatta/nyagos more が Ctrl-C で nyagos ごと死んでしまうという不具合です。これは常に発生しているわけではなくて、nyagos の中から nyagos を呼んで、その中の more …
前回 → Windows でジャンクション作れない - 標準愚痴出力 完成品→ https://github.com/nyaosorg/go-windows-junction 「DeviceIoControl用の構造体」を作るのに、Microsoft ご本家の Go 言語パッケージ Microsoft/go-winio: Win32 IO-related utilities for…
【次回】 | 【完成品】 junction_go.run: package main import ( "os" "unsafe" "errors" "golang.org/x/sys/windows" "golang.org/x/xerrors" ) const ( _MAXIMUM_REPARSE_DATA_BUFFER_SIZE = 16384 _FSCTL_SET_REPARSE_POINT = 589988 _INVALID_HANDLE_VAL…
もうパッケージの多くが、Go 1.12 名指しになってるのに! go.mod を騙し騙しで調整し、Go 1.12 で追加された関数の使用を我慢しつづけてきたが、さすがにもう待てん! というわけで、Go 1.12 をビルド時にダウンロードさせるようにした(→ appveyer.yml: do…
自分のプロダクトが依存しているパッケージ T についてプルリクエストが来ているようですが、まだマージされていません。 その修正の影響がどの程度こちらに影響にあるかあらかじめ検証したいと思いますが、go.mod にその修正をどう書くのが正解か、よくわか…
setlocal call :"%1" endlocal exit /b :"install" powershell "start-process -FilePath 'cmd.exe' -ArgumentList ('/s /c '+[char]34+((get-wmiobject win32_networkconnection | %%{ 'net use '+$_.LocalName+' '+[char]34+$_.RemoteName+[char]34 }) -jo…
(2019.03.20 追記:Windows7 の Chrome では Unicode の合字が表示されないので、合字を画像に変えました) という文字を nyagos に貼り付けると、文字化けするだけでなく、カーソル位置もおかしくなるという問題 Zero width char deletion problem? · Issu…
文字の幅については nyagos において頭が痛い問題です。 mattn/go-runewidth でカーソルを戻す時に発行するバックスペースの個数を算出しています。ですが、Windows のコンソールでの実際の文字幅は Unicode の規格のものと微妙に違うので、文字によってはカ…
~\Share\Program Files というパスを補完する場合を考えよう。 bash だと ~/Share/Program\ Files と補完する。 UNIX だとワード単位で独立した引数としてコマンドに引き渡されるので「/home/USERNAME/Share/Program Files」をそのまま引き渡すことができる…
nyagos は lua53.dll → GopherLua への切り替えの際、組み込み言語のインターフェイスをある分離して、切り替えられるようにしたのですが、それを利用して、mattn 先生が開発された、Go製スクリプト言語 anko を組み込んだ anko-nyagos を試験的に作成してみ…
ビルドバッチ(make.cmd)でかすぎ。簡略化する ソース、どこから読んだらいいか分からん。整理する 残イシュー多すぎ。はよ片付けろ CMD.EXE依存エイリアス撲滅(mklinkやren) セマンティックバージョニング対応は 4.5 以降から。具体的には 4.5.x_y を v5.x.y…
一般ユーザでは C:\Program Files 以下へファイルをコピーすることはできないので、管理者権限で自分自身を起動しなおすようにする。 make.cmd setlocal set "EXE=%~dp0\bin\Release\HogeHoge.exe" call :"%1" endlocal exit /b :"install" powershell Start…
あまりにソースのサブフォルダーが多くて、改造しようという人が迷いそうなので、ちょっとだけ整理した(でも、まだ多い) Cmd/ … ビルド結果置き場 Doc/ … ドキュメント Etc/ … ビルド時に参照する設定ファイル置き場など(旧Misc/) alias/ … エイリアス機…
Go 1.12 で、実行したプロセスの ERRORLEVEL を得るためのメソッド:"os".ProcessState.ExitCode() が追加されたので、対応の準備をすすめていて気づいたのだけれども… 昔の Go言語だと、0 以外の ERRORLEVEL を受け取ると、"os/exec".Cmd.Run() で fmt.Erro…
nyagos では、ヒストリなどを Windows では %APPDATA%\nyaos_org Linux では $HOME/.nyaos_org に保存している。このパスは環境変数を元に生成しているのだが、ここのところで OS ごとに処理を分けるのは可読性を下げるので、できれば標準ライブラリが吸収し…
現在のコードページの文字形式ではなくて、本当に ShiftJIS 固定となるので、日本語特化のアプリとなるが package main import ( "fmt" "os" "path/filepath" "golang.org/x/text/encoding/japanese" ) const fname = "search.lst" func main1() error { fd,…
HogeHoge.exe の中のクラス Config の shared メソッド Load を呼んでみる。 test.ps1: [reflection.assembly]::LoadFrom("bin\Release\HogeHoge.exe") $data = [HogeHoge.Config]::Load("hogehoge.xml") Write-Host("---") Write-Host($data.ToString()) Wr…
日本では馴染みがないのだが、ヨーロッパのキーボードには AltGR というキーがあるようだ。用途としては、英語圏にない文字等を入力する時にシフト的に用いるようだ。 それが入力できなくなったという issue を起案いただいた。 [regression] AltGR issue ・…
Go で Cygterm っぽいことをやりたいので、ソケットサーバーを書いている(勉強中) - 標準愚痴出力 アドバイスをいただきました(ありがとうございます) enter しないと文字が送られないのは、たぶん tera term のオプションで local echo を off にすると…
a = a[:0] は領域のサイズをリセットするが、a = make([]T,0,cap(a)) と違って、使っていたメモリブロックを再利用するため、allocation 回数を削減できる。 だが、旧a の領域が他で使われていないかを気にせず、無頓着に使うと append でおかしいことになる…
(続きの記事 あり) serv.go : package main import ( "fmt" "net" "os" "strings" ) func handler(conn net.Conn) { defer conn.Close() var buffer [255]byte for { n, err := conn.Read(buffer[:]) if err != nil { fmt.Fprintln(os.Stderr, err) return …
go mod -m github.com/<USER>/<REPOSITORY>@<COMMIT-HASH> でいいようです。</commit-hash></repository></user>
違い ("bufio".Reader) ReadString('\n') 改行をカットしない ("bufio".Scanner) Scan() 改行をカットする 改行コードのない最終行の扱い 最後の行が abcd(EOF) というテキストの場合 ("bufio".Reader) ReadString('\n') "abcd",io.EOF という戻り値となる (…
nyagos の依存パッケージである zetamatta/go-texts/mbcs に不具合があったので、それをちゃんと import するよう、go modules を設定してみた。 そのメモ。間違っている箇所があればご指摘歓迎 go-texts 側 go modules を使用するモードに切り替える set GO…
現在の補完APIは Lua 側の負担が重いので、bash と同じくらいにお手軽な新補完APIを試作中してます。以下は git のサブコマンドを補完する例: nyagos.complete_for["git"] = function(args) if #args == 2 then local base = args[#args] local len = strin…
我々Gopher人類は「Genericsは不要」と強調しすぎたのかもしれないな。「GenericsないからGoはダメ」に対する反論だけど、実際は「7~8割のケースではGenericsは要らないけど、2~3割やはりGenerics欲しい」というところだ。そこをつかれて「おまいら矛盾し…