forked from Public-Mirror/Textractor
remove unused code from textthread
This commit is contained in:
parent
2cf987bef5
commit
bb0133bc58
@ -220,162 +220,6 @@ void TextThread::RemoveSingleRepeatAuto(const BYTE *con, int &len)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void TextThread::RemoveSingleRepeatForce(BYTE *con,int &len)
|
|
||||||
{
|
|
||||||
// jichi 9/1/2013: manual repetition count removed
|
|
||||||
WORD *text = (WORD *)con;
|
|
||||||
//if (repeat_single_count<setman->GetValue(SETTING_REPEAT_COUNT)&&last==*text) {
|
|
||||||
// len=0;
|
|
||||||
// repeat_single_count++;
|
|
||||||
//}
|
|
||||||
//else
|
|
||||||
{
|
|
||||||
last = *text;
|
|
||||||
repeat_single_count=0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
void TextThread::RemoveCyclicRepeat(BYTE* &con, int &len)
|
|
||||||
{
|
|
||||||
DWORD current_time = GetTickCount();
|
|
||||||
if (status & REPEAT_SUPPRESS) {
|
|
||||||
if (current_time - last_time < (unsigned)settings->splittingInterval &&
|
|
||||||
::memcmp(storage + last_sentence + repeat_index, con, len) == 0) {
|
|
||||||
repeat_index += len;
|
|
||||||
if (repeat_index>=sentence_length)
|
|
||||||
repeat_index -= sentence_length;
|
|
||||||
len = 0;
|
|
||||||
} else {
|
|
||||||
repeat_index = 0;
|
|
||||||
status &= ~REPEAT_SUPPRESS;
|
|
||||||
}
|
|
||||||
} else if (status & REPEAT_DETECT) {
|
|
||||||
if (::memcmp(storage + last_sentence + repeat_index, con, len) == 0) {
|
|
||||||
int half_length=repeat_index+len;
|
|
||||||
if (::memcmp(storage + last_sentence, storage + last_sentence + half_length, repeat_index) == 0) {
|
|
||||||
len=0;
|
|
||||||
sentence_length=half_length;
|
|
||||||
status&=~REPEAT_DETECT;
|
|
||||||
status|=REPEAT_SUPPRESS;
|
|
||||||
|
|
||||||
// jichi 10/27/2013: Not used
|
|
||||||
//if (status&CURRENT_SELECT)
|
|
||||||
// ReplaceSentence(storage+last_sentence+half_length,repeat_index);
|
|
||||||
ClearMemory(last_sentence+half_length,repeat_index);
|
|
||||||
used-=repeat_index;
|
|
||||||
repeat_index=0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
repeat_index += len;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
repeat_index=0;
|
|
||||||
status &= ~REPEAT_DETECT;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (sentence_length == 0)
|
|
||||||
return;
|
|
||||||
else if (len <= (int)sentence_length) {
|
|
||||||
if (memcmp(storage + last_sentence, con, len) == 0) {
|
|
||||||
status |= REPEAT_DETECT;
|
|
||||||
repeat_index = len;
|
|
||||||
if (repeat_index == sentence_length) {
|
|
||||||
repeat_index = 0;
|
|
||||||
len = 0;
|
|
||||||
}
|
|
||||||
} else if (sentence_length > repeat_detect_limit) {
|
|
||||||
if (len > 2) {
|
|
||||||
DWORD u = used;
|
|
||||||
while (memcmp(storage + u - len, con, len) == 0)
|
|
||||||
u -= len;
|
|
||||||
ClearMemory(u, used - u);
|
|
||||||
used = u;
|
|
||||||
repeat_index = 0;
|
|
||||||
// jichi 10/27/2013: Not used
|
|
||||||
//if (status & CURRENT_SELECT)
|
|
||||||
// ReplaceSentence(storage + last_sentence, used - u);
|
|
||||||
status |= REPEAT_SUPPRESS;
|
|
||||||
len = 0;
|
|
||||||
} else if (len <= 2)
|
|
||||||
{
|
|
||||||
WORD tmp = *(WORD *)(storage + last_sentence);
|
|
||||||
DWORD index, last_index, tmp_len;
|
|
||||||
index = used-len;
|
|
||||||
if (index < last_sentence)
|
|
||||||
index = last_sentence;
|
|
||||||
//Locate position of current input.
|
|
||||||
_again:
|
|
||||||
*(WORD *)(storage+last_sentence) = *(WORD *)con;
|
|
||||||
while (*(WORD *)(storage + index) != *(WORD *)con)
|
|
||||||
index--;
|
|
||||||
*(WORD *)(storage + last_sentence) = tmp;
|
|
||||||
if (index > last_sentence) {
|
|
||||||
tmp_len = used - index;
|
|
||||||
if (tmp_len <= 2) {
|
|
||||||
repeat_detect_limit += 0x40;
|
|
||||||
last_time = current_time;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (index - last_sentence >= tmp_len &&
|
|
||||||
memcmp(storage + index - tmp_len, storage + index, tmp_len) == 0) {
|
|
||||||
repeat_detect_limit = 0x80;
|
|
||||||
sentence_length =tmp_len;
|
|
||||||
index -= tmp_len;
|
|
||||||
while (memcmp(storage + index - sentence_length, storage + index, sentence_length) == 0)
|
|
||||||
index -= sentence_length;
|
|
||||||
repeat_index = 2;
|
|
||||||
len = 0;
|
|
||||||
last_index = index;
|
|
||||||
if (status&USING_UNICODE) {
|
|
||||||
while (storage[index] == storage[index + sentence_length])
|
|
||||||
index -= 2;
|
|
||||||
index += 2;
|
|
||||||
while (true) {
|
|
||||||
tmp = *(WORD *)(storage + index);
|
|
||||||
if (tmp >= 0x3000 && tmp < 0x3020)
|
|
||||||
index += 2;
|
|
||||||
else
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
DWORD last_char_len;
|
|
||||||
while (storage[index] == storage[index + sentence_length]) {
|
|
||||||
last_char_len = LeadByteTable[storage[index]];
|
|
||||||
index -= last_char_len;
|
|
||||||
}
|
|
||||||
index += last_char_len;
|
|
||||||
while (storage[index] == 0x81) {
|
|
||||||
if ((storage[index+1]>>4) == 4)
|
|
||||||
index += 2;
|
|
||||||
else
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
repeat_index += last_index - index;
|
|
||||||
status |= REPEAT_SUPPRESS;
|
|
||||||
last_sentence = index;
|
|
||||||
|
|
||||||
index += sentence_length;
|
|
||||||
// jichi 10/27/2013: Not used
|
|
||||||
//if (status&CURRENT_SELECT)
|
|
||||||
// ReplaceSentence(storage + index, used - index);
|
|
||||||
|
|
||||||
ClearMemory(index, used - index);
|
|
||||||
//memset(storage + index, 0, used - index);
|
|
||||||
used = index;
|
|
||||||
} else {
|
|
||||||
index--;
|
|
||||||
goto _again;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
repeat_detect_limit += 0x40;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
last_time = current_time;
|
|
||||||
}
|
|
||||||
|
|
||||||
void TextThread::ResetRepeatStatus()
|
void TextThread::ResetRepeatStatus()
|
||||||
{
|
{
|
||||||
last=0;
|
last=0;
|
||||||
@ -485,20 +329,6 @@ void TextThread::AddText(const BYTE *con, int len, bool new_line, bool space)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void TextThread::AddTextDirect(const BYTE* con, int len, bool space) // Add to store directly, penetrating repetition filters.
|
|
||||||
{
|
|
||||||
// jichi 10/27/2013: Accordig to the logic, both len and con must be > 0
|
|
||||||
if (status & BUFF_NEWLINE)
|
|
||||||
AddLineBreak();
|
|
||||||
//SetNewLineTimer();
|
|
||||||
sentence_length += len;
|
|
||||||
|
|
||||||
BYTE *data = const_cast<BYTE *>(con); // jichi 10/27/2013: TODO: Figure out where con is modified
|
|
||||||
if (output)
|
|
||||||
len = output(this, data, len, false, app_data, space);
|
|
||||||
AddToStore(data, len);
|
|
||||||
}
|
|
||||||
|
|
||||||
DWORD TextThread::GetEntryString(LPSTR str, DWORD max)
|
DWORD TextThread::GetEntryString(LPSTR str, DWORD max)
|
||||||
{
|
{
|
||||||
DWORD len = 0;
|
DWORD len = 0;
|
||||||
@ -686,32 +516,4 @@ void TextThread::SetNewLineTimer()
|
|||||||
timer = SetTimer(dummyWindow, (UINT_PTR)this, settings->splittingInterval, NewLineBuff);
|
timer = SetTimer(dummyWindow, (UINT_PTR)this, settings->splittingInterval, NewLineBuff);
|
||||||
}
|
}
|
||||||
|
|
||||||
DWORD TextThread::GetThreadString(LPSTR str, DWORD max)
|
|
||||||
{
|
|
||||||
DWORD len = 0;
|
|
||||||
if (max) {
|
|
||||||
char buffer[0x200];
|
|
||||||
char c;
|
|
||||||
if (thread_string == nullptr)
|
|
||||||
GetEntryString(buffer, 0x200); //This will allocate thread_string.
|
|
||||||
LPSTR end = thread_string;
|
|
||||||
for (; *end; end++);
|
|
||||||
c = thread_string[0];
|
|
||||||
thread_string[0] = ':';
|
|
||||||
LPSTR p1 = end;
|
|
||||||
for (; *p1 != ':'; p1--);
|
|
||||||
thread_string[0] = c;
|
|
||||||
if (p1 == thread_string)
|
|
||||||
return 0;
|
|
||||||
p1++;
|
|
||||||
len = end - p1;
|
|
||||||
if (len >= max)
|
|
||||||
len = max - 1;
|
|
||||||
::memcpy(str, p1, len);
|
|
||||||
str[len] = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
return len;
|
|
||||||
}
|
|
||||||
|
|
||||||
// EOF
|
// EOF
|
||||||
|
@ -44,31 +44,16 @@ class TextThread : public MyVector<BYTE, 0x200>
|
|||||||
public:
|
public:
|
||||||
TextThread(DWORD pid, DWORD hook, DWORD retn, DWORD spl, WORD num);
|
TextThread(DWORD pid, DWORD hook, DWORD retn, DWORD spl, WORD num);
|
||||||
~TextThread();
|
~TextThread();
|
||||||
//virtual void CopyLastSentence(LPWSTR str);
|
|
||||||
//virtual void SetComment(LPWSTR);
|
|
||||||
//virtual void ExportTextToFile(LPWSTR filename);
|
|
||||||
|
|
||||||
virtual DWORD GetThreadString(LPSTR str, DWORD max);
|
|
||||||
virtual DWORD GetEntryString(LPSTR str, DWORD max = 0x200);
|
virtual DWORD GetEntryString(LPSTR str, DWORD max = 0x200);
|
||||||
|
|
||||||
void Reset();
|
void Reset();
|
||||||
void AddText(const BYTE *con,int len, bool new_line, bool space); // jichi 10/27/2013: add const; remove console; add space
|
void AddText(const BYTE *con,int len, bool new_line, bool space); // jichi 10/27/2013: add const; remove console; add space
|
||||||
void RemoveSingleRepeatAuto(const BYTE *con, int &len); // jichi 10/27/2013: add const
|
void RemoveSingleRepeatAuto(const BYTE *con, int &len); // jichi 10/27/2013: add const
|
||||||
void RemoveSingleRepeatForce(BYTE *con, int &len);
|
|
||||||
void RemoveCyclicRepeat(BYTE *&con, int &len);
|
|
||||||
void ResetRepeatStatus();
|
void ResetRepeatStatus();
|
||||||
void AddLineBreak();
|
void AddLineBreak();
|
||||||
//void ResetEditText();
|
|
||||||
void ComboSelectCurrent();
|
|
||||||
void UnLinkAll();
|
|
||||||
void DispatchLastSentence();
|
void DispatchLastSentence();
|
||||||
|
|
||||||
//void AdjustPrevRepeat(DWORD len);
|
|
||||||
//void PrevRepeatLength(DWORD &len);
|
|
||||||
|
|
||||||
//bool AddToCombo();
|
|
||||||
bool RemoveFromCombo();
|
|
||||||
|
|
||||||
void SetNewLineFlag();
|
void SetNewLineFlag();
|
||||||
void SetNewLineTimer();
|
void SetNewLineTimer();
|
||||||
|
|
||||||
@ -78,9 +63,6 @@ public:
|
|||||||
DWORD Addr() const {return tp.hook; }
|
DWORD Addr() const {return tp.hook; }
|
||||||
DWORD &Status() { return status; }
|
DWORD &Status() { return status; }
|
||||||
WORD Number() const { return thread_number; }
|
WORD Number() const { return thread_number; }
|
||||||
WORD &Last() { return last; }
|
|
||||||
WORD &LinkNumber() { return link_number; }
|
|
||||||
UINT_PTR &Timer() { return timer; }
|
|
||||||
ThreadParameter *GetThreadParameter() { return &tp; }
|
ThreadParameter *GetThreadParameter() { return &tp; }
|
||||||
//LPCWSTR GetComment() { return comment; }
|
//LPCWSTR GetComment() { return comment; }
|
||||||
|
|
||||||
@ -100,9 +82,6 @@ public:
|
|||||||
void ClearNewLineFlag() { status &= ~BUFF_NEWLINE; }
|
void ClearNewLineFlag() { status &= ~BUFF_NEWLINE; }
|
||||||
void ClearRepeatFlag() { status &= ~CYCLIC_REPEAT; }
|
void ClearRepeatFlag() { status &= ~CYCLIC_REPEAT; }
|
||||||
|
|
||||||
protected:
|
|
||||||
void AddTextDirect(const BYTE *con, int len, bool space); // jichi 10/27/2013: add const; add space; change to protected
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ThreadParameter tp;
|
ThreadParameter tp;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user