Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Log_Manager::check_write: skip heading continuous newlines for early-check #1221

Merged
merged 1 commit into from Aug 12, 2023

Conversation

mtasaka
Copy link
Collaborator

@mtasaka mtasaka commented Aug 12, 2023

先頭に空白行が連続する書き込みをすると、5chの仕様ではそれらを
削除したものが帰ってくるので、Log_Manager::check_write で
簡易チェックをするとき、先頭の連続する改行は読み飛ばす

不具合報告:
https://next2ch.net/test/read.cgi/linux/1654053581/112-113

Closes #1220

@ma8ma
Copy link
Collaborator

ma8ma commented Aug 12, 2023

パッチありがとうございます。
書き込んでテストしたところnext2ch.netへの書き込みでリグレッションを見つけました。

  • ✔️ … 書き込みマークが付く
  • ❌ … 書き込みマークが付かない

master [バージョン] JDim 0.10.1-20230806(git:a6bb171816)

テストケース 説明 5ch.net next2ch.net
あい 先頭に空行なし ✔️ ✔️
\nかき 先頭に空行 ✔️
\nさし 先頭に半角空白の行 ✔️
\n たち 先頭に半角空白の行、二行目の頭に半角空白 ✔️
\n \nなに 先頭と二行目に半角空白の行 ✔️
\u3000\nまみ 先頭に全角空白(\u3000)の行 ✔️ ✔️
\u3000 \nはひ 先頭に半角空白、全角空白、半角空白を並べた行 ✔️ ✔️

#1221 [バージョン] JDim 0.10.1-20230812(git:2f761b0833)

テストケース 説明 5ch.net next2ch.net
あい 先頭に空行なし ✔️ ✔️
\nかき 先頭に空行 ✔️ ✔️
\nさし 先頭に半角空白の行 ✔️ ✔️
\n たち 先頭に半角空白の行、二行目の頭に半角空白 ✔️
\n \nなに 先頭と二行目に半角空白の行 ✔️
\u3000\nまみ 先頭に全角空白の行 ✔️ ✔️
\u3000 \nはひ 先頭に半角空白、全角空白、半角空白を並べた行 ✔️ ✔️

next2ch.netの一致しなかったケースのDATデータ

  • たち
    名無しさん@Next2ch<>sage<>2023/08/12(土) 99:99:99.99 ID:???<><br> たち<>
    
  • なに
    名無しさん@Next2ch<>sage<>2023/08/12(土) 99:99:99.99 ID:???<><br> <br>なに<>
    

next2ch.netのDATデータは行頭の半角空白だけ取り除かれるようです。

@ma8ma
Copy link
Collaborator

ma8ma commented Aug 12, 2023

うーん、書き込みとレスを比較するコードを抜き出して試すと行ごとに比較する全文チェックの処理はクリアしてるっぽいです。
LogItemクラスの簡易チェック用バッファへコピーところで事前に半角空白と改行をトリミングする方法ならいけるかもしれないと考えています。

#1220 (comment)

@ma8ma ma8ma added the bug バグの追跡 label Aug 12, 2023
… for early-check

先頭に空白行が連続する書き込みをすると、5chの仕様ではそれらを
削除したものが帰ってくるので、Log_Manager::check_write で
簡易チェックをするとき、先頭の連続する改行と空白は読み飛ばす

不具合報告:
https://next2ch.net/test/read.cgi/linux/1654053581/112-113
@mtasaka
Copy link
Collaborator Author

mtasaka commented Aug 12, 2023

簡易チェックをする時は、「先頭の」半角空白と改行をすべて削除してから比較する、にすればいいんですかね。
こんな感じでしょうか。

@ma8ma
Copy link
Collaborator

ma8ma commented Aug 12, 2023

更新ありがとうございます、書き込み試してみます。
テストで自動化できるといいのですがソースやクラスが分かれていて設定とか通信に繋がっている部分は難しい… 😫

Copy link
Collaborator

@ma8ma ma8ma left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

書き込みマークが付きました!修正ありがとうございます 👍

@ma8ma ma8ma merged commit 362a2da into JDimproved:master Aug 12, 2023
20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug バグの追跡
Projects
No open projects
Development

Successfully merging this pull request may close these issues.

先頭に空行があるレスを5chのスレに書き込んだときは書き込みマークが付かない
2 participants