一括表示

− 野ざらし言 −

[5384] OMAKE.def(EXMENU 付属)のバグ報告

めざら 2023/08/26(Sat) 11:35
http://mezala.la.coocan.jp/
EXMENU.DEF(見米氏原作・榊原氏開発継承)を愛用している方は既に20年以上前に自身で修正されていることかとは存じますので,「形式的」報告です.

EXMENU.DEF 付属の小品集である OMAKE.DEF に含まれるタイムスタンプ(先頭メニューの「I*行入力」→「日付」で実行される)が2000年以降問題により不正な年を出力するというバグがあります.修正方法は以下の通りです.

&?("%02d/%02d/%02d",cx-1900,dx>>8,dx&$FF)
         ↓~~~~~~~
&?("%4d/%02d/%02d",cx,dx>>8,dx&$FF) ; 4桁
  または,
&?("%02d/%02d/%02d",cx%100,dx>>8,dx&$FF) ; 2桁

大手のベンダーが作成したシステムでも同様のバグはあったわけですが……

EXMENU.DEF ベクターでの公開ページは以下のURIです.
https://www.vector.co.jp/soft/dos/writing/se010424.html

[5385] Re: OMAKE.def(EXMENU 付属)のバグ報告

konno 2023/08/27(Sun) 01:01
[5384]へのコメント
> EXMENU.DEF(見米氏原作・榊原氏開発継承)を愛用している方は既に20年以上前に
> 自身で修正されていることかとは存じますので,「形式的」報告です.

私の DEF は修正されている・・・と思ったらされていませんでした。(>_<)

> EXMENU.DEF 付属の小品集である OMAKE.DEF に含まれるタイムスタンプ(先頭メニューの
> 「I*行入力」→「日付」で実行される)が2000年以降問題により不正な年を出力するという
> バグがあります.修正方法は以下の通りです.

ありがとうございます。修正しました。m(__)m
これ全然使っていないなぁ、と思ったら、タイトルだけでは機能がわからないからかも。
3	"【入力窓】",28,6
	"T 日付  	OMAKE 11"

これを
	"T 日付出力	OMAKE 11"
こうしました。(^^;
私は入力窓で使うことがあまりないので、編集モードで使うことにします。
EXMENU.DEFは結構弄っているのでまた見直してみますね。

# こういうきっかけがないと何もしないやつ (゜゜)☆\(--#)バキッ

[5386] Re^2: OMAKE.def(EXMENU 付属)のバグ報告

めざら 2023/08/27(Sun) 13:20
[5385]へのコメント http://mezala.la.coocan.jp/
タイムスタンプ系は自前のを色々作成していますので一度も使ったことはなかったのですが,偶然編集モード以外のコマンドラインで日付を入れたいと思ったときに,偶然 EXMENU を起動してみたら「おお,あるじゃない」と思ったのが「日付」で,出力したら123年になっちゃったというわけでして。

EXMENU は,特定のマクロを呼び出す用途にしか使ってこなかったのですが,CTRLキーがひとつしかなくて ^Q の 2ストロークキーが押しにくかったり,[NFER] 代わりの [無変換] がなかったりする microPC で,もっと活用することを考えてみてもいいのかなと思いましたね。

[5387] Re^3: OMAKE.def(EXMENU 付属)のバグ2

konno 2023/08/29(Tue) 00:47
[5386]へのコメント
そういえば、EXMENU.DEF は引用符とコメントの追加の動作がおかしいんですよね。

======== OMAKE.def ========

* M マクロ
9	"引用"
	p'》',>>

10	"行頭記号付加"		;直接起動不可
;<---
;p=引用記号
	?.
	(wb.5)?{#W #k #W #i mb+,}	;参照テキストからコピー
	(mb)??{#x #B}			;1行だけ
	#56 "\x ^" #m &o(p) #m "Y"
	mb-,

EXMENU.DEF は
2	"【ブロック】",20,5
	"S ソート	TOOL 82"
	"Q 引用		[p'》']OMAKE 10"
	"; コメントアウト	[p';']OMAKE 10"

こうなっていて、メニュー中の [p'》] をマクロで読むのでしょうが
実際には p が設定されなくて誤動作します。
9番のマクロを呼び出せば正常に動作すると思われるので、バグなんでしょうか?

VZのバグやらなんやらですっかり忘れていましたが、私なりに修正していました。

======== OMAKE.def ========

* M マクロ

8	"コメントアウト挿入"		; ##k 追加
	p';',>10		;

9	"引用符挿入"
;	p'》',>>		;
	p'> ',>>		; 掲示板用

EXMENU.DEF は

;	"Q 引用		[p'》']OMAKE 10"	; バグ?
	"Q 引用符挿入	[p'> ']OMAKE 9"		; ##k
;	"; コメントアウト	[p';']OMAKE 10"		; バグ?
	"K コメントアウト挿入	[p';']OMAKE 8"		; ##k

このように変更しています。

# 実はメニューの表示は今回修正しました。(^^;;

[5388] Re^4: OMAKE.def(EXMENU 付属)のバグ2

めざら 2023/08/30(Wed) 07:25
[5387]へのコメント http://mezala.la.coocan.jp/
> そういえば、EXMENU.DEF は引用符とコメントの追加の動作がおかしいんですよね。

そうなのですか? それは単純な正規表現置換なので,動作がおかしいとしたら
VWX の設定とかの問題の方を疑いますね。konno さんの手元での他の修正部分が
どういうコードかわかりませんから何とも言えませんが。トレースしてみた?

ただ,わたしの手元ではマクロは特にいじってはいないものの,メニューの設定
の方を少しいじっていますね。なぜそうしたのかは全く記憶がないので,単純に
自己満足(「オレはこうしてるゼ」的な(笑))だとは思いますけど。

こんな感じ。単に渡し方のバリエーションですね。
	"Q 引用 		[p$3E20]OMAKE 10"
	"; コメントアウト	[p$3B]OMAKE 10"

よく見たら,EXMENU の版は 5.01(ベクターは5.03)ですけど……。
比較してみましたが,ローダーへの渡し方くらいしか変わってないような。

この件とは関係がないですけれど,
	ps["\x ^\* P", #c 		;「* P」検索 ★v5.01
	ps["\x ^\* *P", #c 		;「* P」検索 ★v5.03
このくらいしか違いはないですねぇ。(スペースの有無に対応)

[5389] Re^5: OMAKE.def(EXMENU 付属)のバグ2

konno 2023/08/30(Wed) 19:01
[5388]へのコメント
> そうなのですか? それは単純な正規表現置換なので,動作がおかしいとしたら
> VWX の設定とかの問題の方を疑いますね。konno さんの手元での他の修正部分が
> どういうコードかわかりませんから何とも言えませんが。トレースしてみた?

オリジナルの EXMENU.DEF V5.4 で試しても不具合が出ます。
実行後はVZの動作にも悪影響があります。
VZのバージョンは関係ないと思います。恐らくプラットフォームも。

引用符の代わりに追加される文字列は

ァE5^@\x ^
(A7E500h)

検索窓には、引用符が入るはずですが、
ァE5
\x ^
この二つの文字列が入っています。
オプションの違いかなぁ?

一度オリジナルで試してみてもらえませんか。m(__)m


> こんな感じ。単に渡し方のバリエーションですね。
> 	"Q 引用 		[p$3E20]OMAKE 10"
> 	"; コメントアウト	[p$3B]OMAKE 10"

これで試したら正常に動作しました。
何が悪いんでしょう。

[5390] Re^6: OMAKE.def(EXMENU 付属)のバグ2

めざら 2023/08/31(Thu) 08:35
[5389]へのコメント http://mezala.la.coocan.jp/
出力文字の設定自体は問題がないようですが,出力の制限のように見えます。

オリジナルだと「》」(69B9h)が変数pに代入されています。
これ,文字として扱うと半角のケ(B9h)とi(69h)です。
&o()で文字として出力されて,まるで化けたようになりますね。

もしかすると,FGALDC にバグ報告が上げられて,その対処方法として,わたしの手元のような設定方法が示されたのかもしれませんね。

ただ,設定されている文字「》」は本来 8174h なので,なぜこのように変換されてしまうのかを追及する必要があるでしょう。

なお,わたしの設定だと $3E20 は '>' と ' ' なので,そこを色々変更して試してみてください。

投げられたボールを投げ返す(笑)

[5391] Re^7: OMAKE.def(EXMENU 付属)のバグ2

konno 2023/08/31(Thu) 14:48
[5390]へのコメント
> 出力文字の設定自体は問題がないようですが,出力の制限のように見えます。
> オリジナルだと「》」(69B9h)が変数pに代入されています。
> これ,文字として扱うと半角のケ(B9h)とi(69h)です。
> &o()で文字として出力されて,まるで化けたようになりますね。

&o() を使うとそういうことがあるのですか。これが原因かな。

> もしかすると,FGALDC にバグ報告が上げられて,その対処方法として,わたしの手元のような設定方法が示されたのかもしれませんね。

検索したらバグ報告がありました。(^^;

> 01373/01383 xxxxxxxx  O太郎           EXMENU.DEF 引用符が変なのです。
> (14)   97/02/25 18:09
> 
> VZ V.1.6 にEXMENU.DEF V.5.03 を組み込みました。
> その中の「W転送」の「Q引用」を実行してみたところ、行頭が、
>  
> ゥロなるほど、これで好きなようにカスタマイズできるのですね。(^_^)
> ゥロどうもありがとうございました。m(_ _)m
>  
> というように、ゥロ からはじまります。(?_?)


これに対して対処法が挙げられていましたが、あえて全文引用します。(^^;

> 01391/01404 xxxxxxxx  耳而夢斎         RE:EXMENU.DEF 引用符が変なのです。
> (14)   97/02/26 20:23  01373へのコメント  コメント数:1
> 
>   ■ O太郎 さん、 こんにちは。(^_^)
> 
>    以下の修正を加えてください。
> 
>    1 omake.def の9番の(と言っても最初の)設定引用符を書き換えます。
> 
>         9       "引用"
>                 p'》',>>
>                   ↑これを >> に(半角2文字まで ' '、3文字以上は " ")
>                 p'>>',>>                               ↑「p" >> ",>>」
> 
>    2 exmenu.def の4番のメニューの 「Q 引用」のアイテムで指定する呼び
>       出しマクロ番号を 10 から 9 に書き換えます。
> 
>         4       "【転送】",20,3
>                 :
>                 "Q 引用         [p'》']OMAKE 10"
>                                              ↑これを 9 に 「OMAKE 9」
>                 "Q 引用         [p'》']OMAKE 9"
> 
>    どうして「ゥロ」などという文字列が出力されたかというと、 exmenu.def が
>   p という変数をポインタとして使うために pu という配列領域に確保した作業
>   バッファの中の'》'の位置のアドレス(A9DBh) がキャラクタとして書き込ま
>   れてしまったためです。O太郎さんの pu は A9D8h という訳ですね。(^_^)
> 
>    榊原さんはいずこの裏窓の…(゜-゜)トホイメ
>    はて、原作者の y.mikomeさんが今、目の前を横切ったような… (。。 )( ゜゜)
> 
> // じじむさい //


いやあ、先人の知恵は流石ですね、私の修正もこれを参考にしたのかもしれません。(^^;

> ただ,設定されている文字「》」は本来 8174h なので,なぜこのように変換されてしまうのかを追及する必要があるでしょう。

これは実験してみないとわかりませんが、p'> ' というような書き方は不味いということでしょうね。
 ' ' で括ると2バイト文字として引っ繰り返して扱われてしまうのかも。

> 投げられたボールを投げ返す(笑)

# 投げ返されたボールを思い切り打ち返したような気がするのは何故でしょう(笑)

[5392] Re^8: OMAKE.def(EXMENU 付属)のバグ2

めざら 2023/08/31(Thu) 18:12
[5391]へのコメント http://mezala.la.coocan.jp/
ああ,やはりバグ報告がありましたね。

対応策を示したのが耳而夢斎か……無知を誤魔化すためにローテク委員会とか言っちゃってた,イケ好かない奴でしたよね。(・へ・)

だいたい,ローテクらしい泥縄じゃありませんか。

> # 投げ返されたボールを思い切り打ち返したような気がするのは何故でしょう(笑)

まぁ,気のせいと言うか,なきにしもあらずですかね……ははは (´▽`)ノ

[5393] Re^9: OMAKE.def(EXMENU 付属)のバグ2

konno 2023/08/31(Thu) 23:27
[5392]へのコメント
> 対応策を示したのが耳而夢斎か……無知を誤魔化すためにローテク委員会とか言っちゃってた,イケ好かない奴でしたよね。(・へ・)

とんでもないです。ローテク委員会には大変お世話になりました。m(__)m
97年ごろかぁ、当時は会議室の盛り上げ役でも活躍されてましたね。
ROMってた私はログ読みが全く追いつきませんでした。(^^;

> だいたい,ローテクらしい泥縄じゃありませんか。

ローテク委員会には最上の誉め言葉ですね。(^_^)

[5394] Re^8: OMAKE.def(EXMENU 付属)のバグ2

konno 2023/09/02(Sat) 23:57
[5391]へのコメント
> これは実験してみないとわかりませんが、p'> ' というような書き方は不味いということでしょうね。
>  ' ' で括ると2バイト文字として引っ繰り返して扱われてしまうのかも。

これは違うようです。

	"; コメントアウト	[p';']OMAKE 10"

この1バイト文字の追加でも、p のアドレスにある変な内容が追加されてしまいます。
今はこれ以上追及する気力が無いので、修正版で使うことにします。(^^;

[5395] Re^9: OMAKE.def(EXMENU 付属)のバグ2

めざら 2023/09/03(Sun) 12:27
[5394]へのコメント http://mezala.la.coocan.jp/
> 今はこれ以上追及する気力が無いので、修正版で使うことにします。(^^;

えー? 修正版て,耳而夢斎の泥縄ですか?!
なんかカッコ悪いから &o じゃなくて &? にすれば〜〜?

OMAKE.DEF の 10番
;	#56 "\x ^" #m &o(p) #m "Y"
;           ↓
;	#56 "\x ^" #m &?(p) #m "Y"	;テキトー
	#56 "\x ^" #m &?("%s",p) #m "Y"	;安全策

なんか問題が出たら設定の方に手を入れればいいんじゃない?

[5396] Re^10: OMAKE.def(EXMENU 付属)のバグ2

konno 2023/09/04(Mon) 00:40
[5395]へのコメント
> OMAKE.DEF の 10番
> ;	#56 "\x ^" #m &o(p) #m "Y"
> ;           ↓
> ;	#56 "\x ^" #m &?(p) #m "Y"	;テキトー
> 	#56 "\x ^" #m &?("%s",p) #m "Y"	;安全策

こっちだったですか、確かに EXMENU.DEF には &o() は無いですね。(^^;
やっぱり &o() が問題だったのですね。
DUMP で p のアドレスを確認してみました。

A7E1: 00 5B 70 22 81 74 00 00-4F 4D 41 4B 45 00 31 30  ・[p"》・・OMAKE・10	; p'》'
A7E1: 00 5B 70 22 3E 20 00 00-4F 4D 41 4B 45 00 31 30  ・[p"> ・・OMAKE・10	; p'> '

こうなっているんですね。
ここは問題なさそうですね。

> えー? 修正版て,耳而夢斎の泥縄ですか?!
> なんかカッコ悪いから &o じゃなくて &? にすれば〜〜?

いかにもローテク委員会的解決で良いですね。(^_^)

↑ このページの先頭