Mudlet 4.4.0がクラッシュする代わりに、コピー/貼り付けが機能しない場合があります
これは信じられないほどイライラします。
Windows 10でこの問題が発生しています。散発的に動作を停止し、数分後に動作を開始します。 一貫して再現する方法は不明ですが、大きな迷惑となるほど頻繁に発生します。
4.5.1-deでもこの問題が発生しています。
これは信じられないほどイライラします。
私はこれにこれ以上同意することはできません。
この問題がOSXの4.6.2でも引き続き発生することを確認しました。 それはプロファイル固有でもあるので、それは奇妙です。 1つのプロファイルはコピーして貼り付けることができますが、同時に開いている別のプロファイルはコピーして貼り付けることができません。
マドレットを開くことができ、正常に動作しているため、これを修正するのは難しいので、問題を見つけるにはどうすればよいですか? 問題を再現する方法は、これをヒープによって進めるでしょう
fwiw、htmlがまだ機能しているので、コピーが壊れている場合。 多分それは問題がどこにあるかを絞り込むのに役立つかもしれません。
また、このPRがマージされた頃に始まったと思います: https :
うーん、その理論をテストできます。https://github.com/Mudlet/Mudlet/pull/3688でテストビルドを試して
数日前にWin10で同様の欠陥に気づきました。
テストビルドを試して、 mudlet.exe
を実行し、問題が再発したときにターミナルに何かが飛び出すかどうかを確認します。
さて、現在私はすでに次のバージョンのリリース候補を実行して試しているので、後でこれを行います。 とにかく、それは以前に一度だけ起こりました(私が気づいたように)、そして私はその時点でかなり長い間Mudletを実行していました。 複製する方法がわからない。
@ njs50 @Ranfir私はあなたのプロフィールを再起動することなく、この問題を解決する方法を発見しました。 これでエイリアスを作成します。
echo("\nJust fill up the line with random gibberish!")
echo("\nJust fill up the line with random gibberish!")
echo("\nJust fill up the line with random gibberish!")
---etc, up to 1000 lines of the above echo
次に、エイリアスをヒットして、1000行のスパムをプロファイルに送信します。 1回ヒットすると、もう一度コピーして貼り付けることができるはずです。 100行のエイリアスで試してみましたが、それだけでは不十分でしたが、1000行でうまくいきました。
私にとって、このバグはここ数週間はもう発生していませんが、Discordに同じような報告をするプレイヤーがたまにいました。 上記の回避策に満足しているように見えたので、これはバグの三角測量に役立つ可能性があります。
いずれにせよ、誰もがエイリアスに1000行のスパムを入れる代わりに、luaループを使用でき
local repetitions = 1000
local i = 1
repeat
echo("\nJust fill up the line with random gibberish!")
i = i + 1
until i > repetitions
繰り返しの数を試すこともできますが、それはさらに役立つでしょうか? 現在、100は少ないようですが、1000で十分なようです。 正確に変わる理由と場所はわかりません。
:電球:あの、IIRC現在の選択の詳細は二つに格納されているQPoint
S TConsole::P_begin
& P_end
-しかし(void) TBuffer::shrinkBuffer()
キックトリムにTBuffer
の(std::deque<std::deque<TChar>>) buffer
と(QStringList) lineBuffer
の先頭から最も古い(最小の行番号)および1つまたは2つの他の1行あたり1要素のコンテナー:実行される手順P_begin
とP_end
のy
値を調整するには:question:
バッファが縮小するのに十分な長さになった後にのみ発生することに気づきました。 さらに、それが起こっているとき、それは(コンソールで上にスクロールしたときの)上部と下部のバッファのハイライトが互いに同期しなくなっているように見えます。 上部と下部を選択すると、コピー機能が再び機能するようになりますが、確実にテストするのに十分な頻度で行われないため、完全に一貫しているとは言えません。
通常のコピーが機能しなくなっても、「htmlとしてコピー」が機能し続けるのは本当に奇妙に思えます。 それはおそらく選択が問題ではなく、選択にある何かを示しているようですか?
それらの2つは私が思うに異なるアルゴリズムを使用しています。 これは、単にコピーするだけで、コピーからhtmlへのトリックを1つか2つ学ぶことができることを示しています。
画像としてコピーしても、選択範囲も適切にコピーされますiirc
バッファを1000行のガベージでいっぱいにせずにエコートリックを実行する方法はありますか? 私もログに記録する完全に良いゲームセッションをゴミ箱に捨てることを含まない回避策を取得しようと思います。
clearWindowは機能しますか?
それはちょうど私のために働いたように見えます。 それが偶然だったかどうかはわかりません。 スクロールバックの最後から削除され始めるまで、コピー/貼り付けが機能し続けるように思われます
私はそれをもう一度繰り返しました。 clearWindow()を実行した後、バッファがいっぱいになるまで、コピー/貼り付けは良好に見えました。 飛んでいたテキストをコピーすると、いっぱいになるとすぐに失敗し、機能しなくなりました。 clearWindowはそれを再び修正しました。
上部の行が消え始めるまで、私もゲームバッファをいっぱいにしました。
その時点では、コピー/貼り付けは期待どおりに正常に機能していました。
どのようにしてバッファを正確に埋めますか?
コンソールバッファサイズのバッチ削除数を10に減らしてみましたが、バッチ削除が発生すると奇妙なテキスト表示の副作用が発生しますが、コピーの問題を修正するプロセスが早まるようです。
上部の行が消え始めるまで、私もゲームバッファをいっぱいにしました。
その時点では、コピー/貼り付けは期待どおりに正常に機能していました。
どのようにしてバッファを正確に埋めますか?
当時、ゲームを実行してテストしていました。 私はノートボード上のたくさんのメモを調べてそのほとんどを埋めました、そして私が再びバッファの一番上からテキストが削除されていることに気づいたとき、私は新しい選択をしました。
私がコピーすることを選択している間ずっと、間違いなくテキストが来ていました。
コピーしていたときも、間違いなくスクロールバックに夢中になりました。 つまり、テキストの現在のページから離れるのに十分な距離まで選択範囲をドラッグしました。
コンテキストメニューからCtrl-C(コピー)を使用する:
(void) TTextEdit::slot_copySelectionToClipboard()
(QString) TTextEdit::getSelectedText(char newlineChar)
- (QPoint) TTextEdit::mPA
とmpB
の現在の値を使用し、テキストをQApplication::clipboard()
コンテキストメニューからHTMLとしてコピーを使用する:
(void) TTextEdit::slot_copySelectionToClipboardHTML()
- (QPoint) TTextEdit::mDragStart
とmDragSelectionEnd
を使用してTTextEdit::mPA
とmpB
を適切に設定し、すぐに後者を使用して生成されたHTMLにTBuffer
。選択プロセスを後者から前者にコピーしてみる価値があるかもしれません。
最も参考になるコメント
@ njs50 @Ranfir私はあなたのプロフィールを再起動することなく、この問題を解決する方法を発見しました。 これでエイリアスを作成します。
次に、エイリアスをヒットして、1000行のスパムをプロファイルに送信します。 1回ヒットすると、もう一度コピーして貼り付けることができるはずです。 100行のエイリアスで試してみましたが、それだけでは不十分でしたが、1000行でうまくいきました。