Added new keywords, random fixes
This commit is contained in:
@@ -766,6 +766,7 @@ CfgGed::CfgGed() {
|
||||
squishscan = 2; // SQS_QUICK
|
||||
squishuserno = 0;
|
||||
statuslinehelp = 0;
|
||||
striphtml = false;
|
||||
taglineno = 0;
|
||||
taglinechar = '.';
|
||||
taglinesupport = true;
|
||||
@@ -785,6 +786,7 @@ CfgGed::CfgGed() {
|
||||
viewhidden = false;
|
||||
viewkludge = false;
|
||||
viewquote = true;
|
||||
writeheader = 1;
|
||||
wildcatuserno = 0;
|
||||
zonegating = ASK;
|
||||
|
||||
|
@@ -340,6 +340,7 @@ const word CRC_SQUISHUSERNO = 0x60AD;
|
||||
const word CRC_SQUISHUSERPATH = 0xFA97;
|
||||
const word CRC_STATUSLINECLOCK = 0x9C8A;
|
||||
const word CRC_STATUSLINEHELP = 0xA150;
|
||||
const word CRC_STRIPHTML = 0x05EC;
|
||||
const word CRC_STYLECODES = 0x4CB0;
|
||||
const word CRC_STYLECODEPUNCT = 0x9D15;
|
||||
const word CRC_STYLECODESTOPS = 0xF452;
|
||||
@@ -381,6 +382,7 @@ const word CRC_VIEWKLUDGE = 0x4078;
|
||||
const word CRC_VIEWQUOTE = 0x0AB3;
|
||||
const word CRC_WHOTO = 0xB25F;
|
||||
const word CRC_WILDCATUSERNO = 0xC2FE;
|
||||
const word CRC_WRITEHEADER = 0x2589;
|
||||
const word CRC_WRITETEMPLATE = 0xF4CB;
|
||||
const word CRC_XLATCHARSET = 0xA860;
|
||||
const word CRC_XLATESCSET = 0x4BA7;
|
||||
|
@@ -530,6 +530,7 @@ SwitchS:
|
||||
case CRC_SQUISHUSERNO : CfgSquishuserno (); break;
|
||||
case CRC_SQUISHUSERPATH : CfgSquishuserpath (); break;
|
||||
case CRC_STATUSLINEHELP : CfgStatuslinehelp (); break;
|
||||
case CRC_STRIPHTML : CfgStripHTML (); break;
|
||||
case CRC_STYLECODEPUNCT : CfgStylecodepunct (); break;
|
||||
case CRC_STYLECODES : CfgStylecodes (); break;
|
||||
case CRC_STYLECODESTOPS : CfgStylecodestops (); break;
|
||||
@@ -588,6 +589,7 @@ SwitchW:
|
||||
switch(crc) {
|
||||
case CRC_WHOTO : CfgWhoto (); break;
|
||||
case CRC_WILDCATUSERNO : CfgWildcatuserno (); break;
|
||||
case CRC_WRITEHEADER : CfgWriteheader (); break;
|
||||
case CRC_WRITETEMPLATE : CfgWritetemplate (); break;
|
||||
default : found = false;
|
||||
}
|
||||
|
@@ -66,6 +66,17 @@ void CfgStatuslinehelp() {
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
void CfgStripHTML() {
|
||||
|
||||
bool flag = GetYesno(val);
|
||||
if(cfgingroup)
|
||||
CFG->grp.AddItm(GRP_STRIPHTML, flag);
|
||||
else
|
||||
CFG->striphtml = flag;
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
void CfgStylecodepunct() {
|
||||
|
||||
char* key;
|
||||
@@ -492,6 +503,23 @@ void CfgWildcatuserno() {
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
void CfgWriteheader() {
|
||||
|
||||
int flag;
|
||||
|
||||
if(strieql(val, "ONLY"))
|
||||
flag = 2;
|
||||
else
|
||||
flag = GetYesno(val) ? 1 : 0;
|
||||
|
||||
if(cfgingroup)
|
||||
CFG->grp.AddItm(GRP_WRITEHEADER, flag);
|
||||
else
|
||||
CFG->writeheader = flag;
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
void CfgWritetemplate() {
|
||||
|
||||
if(cfgingroup) {
|
||||
|
@@ -363,6 +363,9 @@ tglobalkey globalkeys[] = {
|
||||
{ CRC_FILETOGGLEMARKALL , KK_FileToggleMarkAll , KT_F }, // 0x0032
|
||||
{ CRC_READADDRESSBOOKADD , KK_ReadAddressbookAdd , KT_R }, // 0x00FA
|
||||
{ CRC_LISTDOSSHELL , KK_ListDosShell , KT_M }, // 0x0130
|
||||
{ CRC_READREADALL , KK_ReadReadAll , KT_R }, // 0x0146
|
||||
{ CRC_READREADMARKED , KK_ReadReadMarked , KT_R }, // 0x01AE
|
||||
{ CRC_READTWITSSHOW , KK_ReadTwitsShow , KT_R }, // 0x03C5
|
||||
{ CRC_EDITGOLEFT , KK_EditGoLeft , KT_E }, // 0x043B
|
||||
{ CRC_HEADERTOGGLESCANNED , KK_HeaderToggleScanned , KT_H }, // 0x0459
|
||||
{ CRC_READTOGGLEHIDDEN , KK_ReadToggleHidden , KT_R }, // 0x04CE
|
||||
@@ -372,6 +375,7 @@ tglobalkey globalkeys[] = {
|
||||
#endif
|
||||
{ CRC_READGOTOPREVMSG , KK_ReadGotoPrevMsg , KT_R }, // 0x06D9
|
||||
{ CRC_READPEEKURLS , KK_ReadPeekURLs , KT_R }, // 0x07BA
|
||||
{ CRC_READREALMSGNO , KK_ReadRealMsgno , KT_R }, // 0x07F8
|
||||
{ CRC_K_STAB , Key_S_Tab , 0 }, // 0x0886
|
||||
{ CRC_EDITLOADFILE , KK_EditLoadFile , KT_A }, // 0x0931
|
||||
{ CRC_READFILEREQUEST , KK_ReadFileRequest , KT_R }, // 0x0A07
|
||||
@@ -402,11 +406,13 @@ tglobalkey globalkeys[] = {
|
||||
{ CRC_READREPLYMSG , KK_ReadReplyMsg , KT_R }, // 0x172F
|
||||
{ CRC_AREAGOTOLAST , KK_AreaGotoLast , KT_A }, // 0x177A
|
||||
{ CRC_READINCREASEMARGIN , KK_ReadIncreaseMargin , KT_R }, // 0x1797
|
||||
{ CRC_AREAUNMARK , KK_AreaUnmark , KT_A }, // 0x17B3
|
||||
{ CRC_EDITEXITMSG , KK_EditExitMsg , KT_E }, // 0x1813
|
||||
{ CRC_READTOGGLEPAGEBAR , KK_ReadTogglePageBar , KT_R }, // 0x18E4
|
||||
{ CRC_K_F12 , Key_F12 , 0 }, // 0x1930
|
||||
{ CRC_K_F10 , Key_F10 , 0 }, // 0x1932
|
||||
{ CRC_K_F11 , Key_F11 , 0 }, // 0x1933
|
||||
{ CRC_READHIDEKLUDGE , KK_ReadHideKludge , KT_R }, // 0x19EC
|
||||
{ CRC_READGOTOREPLIES , KK_ReadGotoReplies , KT_R }, // 0x1A6B
|
||||
{ CRC_READMOVEQUOTEMSG , KK_ReadMoveQuoteMsg , KT_R }, // 0x1B41
|
||||
{ CRC_EDITGOEOL , KK_EditGoEOL , KT_E }, // 0x1CC6
|
||||
@@ -418,6 +424,7 @@ tglobalkey globalkeys[] = {
|
||||
{ CRC_K_SDEL , Key_S_Del , 0 }, // 0x1EB9
|
||||
#endif
|
||||
{ CRC_EDITCOPY , KK_EditCopy , KT_E }, // 0x1F77
|
||||
{ CRC_READHIDEQUOTE , KK_ReadHideQuote , KT_R }, // 0x1FA8
|
||||
{ CRC_READEXTERNUTILMENU , KK_ReadExternUtilMenu , KT_R }, // 0x2000
|
||||
{ CRC_READCHANGEAKA , KK_ReadChangeAka , KT_R }, // 0x2015
|
||||
{ CRC_EDITGOWORDRIGHT , KK_EditGoWordRight , KT_E }, // 0x20D0
|
||||
@@ -442,15 +449,18 @@ tglobalkey globalkeys[] = {
|
||||
{ CRC_K_CF12 , Key_C_F12 , 0 }, // 0x3480
|
||||
{ CRC_K_CF10 , Key_C_F10 , 0 }, // 0x3482
|
||||
{ CRC_K_CF11 , Key_C_F11 , 0 }, // 0x3483
|
||||
{ CRC_READTWITSSKIP , KK_ReadTwitsSkip , KT_R }, // 0x35A1
|
||||
{ CRC_K_CHOME , Key_C_Home , 0 }, // 0x35C4
|
||||
{ CRC_HEADERTOGGLERECEIVED , KK_HeaderToggleReceived , KT_H }, // 0x36B9
|
||||
{ CRC_K_CPGDN , Key_C_PgDn , 0 }, // 0x371D
|
||||
{ CRC_EDITCOPYABOVECHAR , KK_EditCopyAboveChar , KT_E }, // 0x380C
|
||||
{ CRC_LISTSELECT , KK_ListSelect , KT_M }, // 0x3829
|
||||
{ CRC_READGOTOFIRSTMSG , KK_ReadGotoFirstMsg , KT_R }, // 0x392F
|
||||
{ CRC_READSTYLESSTRIP , KK_ReadStylesStrip , KT_R }, // 0x39E8
|
||||
{ CRC_AREAGOTONEXT , KK_AreaGotoNext , KT_A }, // 0x3A9C
|
||||
{ CRC_EDITDELLTWORD , KK_EditDelLtWord , KT_E }, // 0x3B67
|
||||
{ CRC_LISTGOTOLAST , KK_ListGotoLast , KT_M }, // 0x3BA7
|
||||
{ CRC_READSHOWQUOTE , KK_ReadShowQuote , KT_R }, // 0x3C6C
|
||||
{ CRC_LISTTOGGLEWIDESUBJ , KK_ListToggleWideSubj , KT_M }, // 0x3C76
|
||||
{ CRC_EDITGODOWN , KK_EditGoDown , KT_E }, // 0x3DC2
|
||||
{ CRC_K_A0 , Key_A_0 , 0 }, // 0x4030
|
||||
@@ -513,6 +523,7 @@ tglobalkey globalkeys[] = {
|
||||
{ CRC_READCHANGEATTRS , KK_ReadChangeAttrs , KT_R }, // 0x47F8
|
||||
{ CRC_READSEARCH , KK_ReadSearch , KT_R }, // 0x48EF
|
||||
{ CRC_READMSGPGDN , KK_ReadMsgPgDn , KT_R }, // 0x4908
|
||||
{ CRC_READSTRIPHTML , KK_ReadStripHTML , KT_R }, // 0x499A
|
||||
{ CRC_LISTGOTOPREV , KK_ListGotoPrev , KT_M }, // 0x49E9
|
||||
{ CRC_READQUOTEBUF , KK_ReadQuoteBuf , KT_R }, // 0x49EE
|
||||
{ CRC_EDITDELETE , KK_EditDelete , KT_E }, // 0x4A37
|
||||
@@ -556,6 +567,7 @@ tglobalkey globalkeys[] = {
|
||||
#endif
|
||||
{ CRC_READGOTONEXTAREA , KK_ReadGotoNextArea , KT_R }, // 0x5B23
|
||||
{ CRC_K_TAB , Key_Tab , 0 }, // 0x5B33
|
||||
{ CRC_READHIDEHIDDEN , KK_ReadHideHidden , KT_R }, // 0x5B89
|
||||
{ CRC_K_AEND , Key_A_End , 0 }, // 0x5BE9
|
||||
{ CRC_FILEMACRO , KK_FileMacro , KT_F }, // 0x5D48
|
||||
{ CRC_READMSGLINEDOWN , KK_ReadMsgLineDown , KT_R }, // 0x5DB2
|
||||
@@ -589,9 +601,11 @@ tglobalkey globalkeys[] = {
|
||||
{ CRC_K_CZ , Key_C_Z , 0 }, // 0x5E5A
|
||||
{ CRC_READCOMMENTMSG , KK_ReadCommentMsg , KT_R }, // 0x5E89
|
||||
{ CRC_READTOGGLETWITS , KK_ReadToggleTwits , KT_R }, // 0x5FD1
|
||||
{ CRC_LISTWIDESUBJ , KK_ListWideSubj , KT_M }, // 0x6026
|
||||
{ CRC_EDITGOPGDN , KK_EditGoPgDn , KT_E }, // 0x607D
|
||||
{ CRC_K_CDEL , Key_C_Del , 0 }, // 0x60BC
|
||||
{ CRC_KK_AUTO , Key_Auto , 0 }, // 0x60E2
|
||||
{ CRC_READMARK , KK_ReadMark , KT_R }, // 0x6190
|
||||
{ CRC_READFINDHEADER , KK_ReadFindHeader , KT_R }, // 0x6343
|
||||
{ CRC_EDITDELETESOL , KK_EditDeleteSOL , KT_E }, // 0x63B4
|
||||
{ CRC_K_PGUP , Key_PgUp , 0 }, // 0x63CC
|
||||
@@ -619,6 +633,7 @@ tglobalkey globalkeys[] = {
|
||||
{ CRC_K_HOME , Key_Home , 0 }, // 0x700B
|
||||
{ CRC_ADDRESSBOOKDELETE , KK_AddressbookDelete , KT_B }, // 0x70D1
|
||||
{ CRC_EDITGOPGUP , KK_EditGoPgUp , KT_E }, // 0x7163
|
||||
{ CRC_READTWITSIGNORE , KK_ReadTwitsIgnore , KT_R }, // 0x71CA
|
||||
{ CRC_READMSGLINEUP , KK_ReadMsgLineUp , KT_R }, // 0x7238
|
||||
{ CRC_EDITHEADER , KK_EditHeader , KT_E }, // 0x726F
|
||||
{ CRC_K_PGDN , Key_PgDn , 0 }, // 0x72D2
|
||||
@@ -628,15 +643,19 @@ tglobalkey globalkeys[] = {
|
||||
{ CRC_HEADERADDRESSBOOK , KK_HeaderAddressbook , KT_H }, // 0x76FC
|
||||
{ CRC_EDITUNDEFINE , KK_EditUndefine , KT_E }, // 0x7873
|
||||
{ CRC_LISTGOTOFIRST , KK_ListGotoFirst , KT_M }, // 0x7925
|
||||
{ CRC_READSTYLESNONE , KK_ReadStylesNone , KT_R }, // 0x79D7
|
||||
{ CRC_K_CEND , Key_C_End , 0 }, // 0x7B95
|
||||
{ CRC_READSTYLESSHOW , KK_ReadStylesShow , KT_R }, // 0x7D0D
|
||||
{ CRC_K_APGUP , Key_A_PgUp , 0 }, // 0x7E61
|
||||
{ CRC_EDITQUITNOW , KK_EditQuitNow , KT_E }, // 0x80BA
|
||||
{ CRC_LISTMARKINGOPTIONS , KK_ListMarkingOptions , KT_M }, // 0x8138
|
||||
{ CRC_EDITZAPQUOTEBELOW , KK_EditZapQuoteBelow , KT_E }, // 0x814F
|
||||
{ CRC_EDITDUPLINE , KK_EditDupLine , KT_E }, // 0x816A
|
||||
{ CRC_READSHOWHIDDKLUD , KK_ReadShowHiddKlud , KT_R }, // 0x81EB
|
||||
{ CRC_EDITDELRTWORD , KK_EditDelRtWord , KT_E }, // 0x829A
|
||||
{ CRC_AREAUNDEFINE , KK_AreaUndefine , KT_A }, // 0x835B
|
||||
{ CRC_READGOTOREPLYNEXT , KK_ReadGotoReplyNext , KT_R }, // 0x844F
|
||||
{ CRC_READHIDEHIDDKLUD , KK_ReadHideHiddKlud , KT_R }, // 0x84ED
|
||||
{ CRC_EDITMACRO , KK_EditMacro , KT_E }, // 0x85CD
|
||||
{ CRC_READSHOWDEL , KK_ReadShowDel , KT_R }, // 0x8615
|
||||
{ CRC_K_ENTER , Key_Ent , 0 }, // 0x87BD
|
||||
@@ -646,9 +665,12 @@ tglobalkey globalkeys[] = {
|
||||
{ CRC_EDITASKEXIT , KK_EditAskExit , KT_E }, // 0x89AF
|
||||
{ CRC_HEADERTOGGLEHOLD , KK_HeaderToggleHold , KT_H }, // 0x8A5F
|
||||
{ CRC_EDITBLOCKHOME , KK_EditBlockHome , KT_E }, // 0x8B82
|
||||
{ CRC_READSHOWHIDDEN , KK_ReadShowHidden , KT_R }, // 0x8B88
|
||||
{ CRC_READDELETEMSG , KK_ReadDeleteMsg , KT_R }, // 0x8BCE
|
||||
{ CRC_EDITTAB , KK_EditTab , KT_E }, // 0x8C26
|
||||
{ CRC_LISTUNMARK , KK_ListUnmark , KT_M }, // 0x8DEB
|
||||
{ CRC_K_KEY5 , Key_5Num , 0 }, // 0x9062
|
||||
{ CRC_READSEQUENTMSGNO , KK_ReadSequentMsgno , KT_R }, // 0x9085
|
||||
{ CRC_EDITPASTE , KK_EditPaste , KT_E }, // 0x90C4
|
||||
{ CRC_HEADERTOGGLEAUDIT , KK_HeaderToggleAudit , KT_H }, // 0x91B7
|
||||
{ CRC_EDITGOBOTLINE , KK_EditGoBotLine , KT_E }, // 0x92DD
|
||||
@@ -683,6 +705,7 @@ tglobalkey globalkeys[] = {
|
||||
{ CRC_READTHREADTREE , KK_ReadThreadtree , KT_R }, // 0x9827
|
||||
{ CRC_EDITBLOCKPGUP , KK_EditBlockPgUp , KT_E }, // 0x9842
|
||||
{ CRC_K_ARIGHT , Key_A_Rgt , 0 }, // 0x9911
|
||||
{ CRC_READTWITSKILL , KK_ReadTwitsKill , KT_R }, // 0x9A25
|
||||
{ CRC_K_AINS , Key_A_Ins , 0 }, // 0x9A72
|
||||
{ CRC_EDITGOBOTMSG , KK_EditGoBotMsg , KT_E }, // 0x9B29
|
||||
{ CRC_READDOSSHELL , KK_ReadDosShell , KT_R }, // 0x9C2B
|
||||
@@ -690,6 +713,7 @@ tglobalkey globalkeys[] = {
|
||||
{ CRC_NODEABORT , KK_NodeAbort , KT_N }, // 0xA08C
|
||||
{ CRC_READTOGGLEHIDDKLUD , KK_ReadToggleHiddKlud , KT_R }, // 0xA24F
|
||||
{ CRC_AREASELECT , KK_AreaSelect , KT_A }, // 0xA271
|
||||
{ CRC_READSHOWHTML , KK_ReadShowHTML , KT_R }, // 0xA27F
|
||||
{ CRC_LISTMACRO , KK_ListMacro , KT_M }, // 0xA2B6
|
||||
{ CRC_EDITDELCHAR , KK_EditDelChar , KT_E }, // 0xA3C7
|
||||
{ CRC_AREAASKEXIT , KK_AreaAskExit , KT_A }, // 0xA3D1
|
||||
@@ -716,6 +740,7 @@ tglobalkey globalkeys[] = {
|
||||
{ CRC_EDITUNDO , KK_EditUndo , KT_E }, // 0xB295
|
||||
{ CRC_READDIRQUOTEMSG , KK_ReadDirQuoteMsg , KT_R }, // 0xB351
|
||||
{ CRC_FILETOGGLEMARK , KK_FileToggleMark , KT_F }, // 0xB431
|
||||
{ CRC_READTWITSBLANK , KK_ReadTwitsBlank , KT_R }, // 0xB571
|
||||
{ CRC_FILEGOTOPREV , KK_FileGotoPrev , KT_F }, // 0xB644
|
||||
{ CRC_EDITLOOKUPCURSOR , KK_EditLookupCursor , KT_E }, // 0xB7CC
|
||||
{ CRC_NODEGOTOPREV , KK_NodeGotoPrev , KT_N }, // 0xB85D
|
||||
@@ -723,6 +748,7 @@ tglobalkey globalkeys[] = {
|
||||
{ CRC_K_CINS , Key_C_Ins , 0 }, // 0xBA0E
|
||||
{ CRC_READGOTONEXTUNREAD , KK_ReadGotoNextUnread , KT_R }, // 0xBA34
|
||||
{ CRC_READADDRESSBOOK , KK_ReadAddressbook , KT_R }, // 0xBAC1
|
||||
{ CRC_READTOGGLEHTML , KK_ReadToggleHTML , KT_R }, // 0xBC02
|
||||
#if !defined(__UNIX__) || defined(__USE_NCURSES__)
|
||||
{ CRC_K_SPGUP , Key_S_PgUp , 0 }, // 0xBC5A
|
||||
#endif
|
||||
@@ -741,6 +767,7 @@ tglobalkey globalkeys[] = {
|
||||
{ CRC_K_SINS , Key_S_Ins , 0 }, // 0xC40B
|
||||
#endif
|
||||
{ CRC_AREASCANPM , KK_AreaScanPM , KT_A }, // 0xC4FF
|
||||
{ CRC_LISTMARK , KK_ListMark , KT_M }, // 0xC530
|
||||
{ CRC_READMSGEND , KK_ReadMsgEnd , KT_R }, // 0xC5AD
|
||||
{ CRC_AREATOGGLE , KK_AreaToggle , KT_A }, // 0xC734
|
||||
#if !defined(__UNIX__) || defined(__USE_NCURSES__)
|
||||
@@ -748,6 +775,7 @@ tglobalkey globalkeys[] = {
|
||||
#endif
|
||||
{ CRC_HEADERTOGGLEORPHAN , KK_HeaderToggleOrphan , KT_H }, // 0xC98A
|
||||
{ CRC_HEADERTOGGLEFILE , KK_HeaderToggleFile , KT_H }, // 0xC997
|
||||
{ CRC_READSHOWKLUDGE , KK_ReadShowKludge , KT_R }, // 0xC9ED
|
||||
{ CRC_NODEGOTOLAST , KK_NodeGotoLast , KT_N }, // 0xCA13
|
||||
{ CRC_FILEGOTOFIRST , KK_FileGotoFirst , KT_F }, // 0xCAD5
|
||||
{ CRC_HEADERTOGGLEDELSENT , KK_HeaderToggleDelsent , KT_H }, // 0xCD4B
|
||||
@@ -783,12 +811,14 @@ tglobalkey globalkeys[] = {
|
||||
{ CRC_READMOVECOMMENTMSG , KK_ReadMoveCommentMsg , KT_R }, // 0xE4E7
|
||||
{ CRC_READGOTOREPLY1ST , KK_ReadGotoReply1st , KT_R }, // 0xE54F
|
||||
{ CRC_READTOGGLEHEXDUMP , KK_ReadToggleHexdump , KT_R }, // 0xE6D5
|
||||
{ CRC_LISTNARROWSUBJ , KK_ListNarrowSubj , KT_M }, // 0xE756
|
||||
{ CRC_NODEQUITNOW , KK_NodeQuitNow , KT_N }, // 0xE780
|
||||
{ CRC_NODEGOTONEXT , KK_NodeGotoNext , KT_N }, // 0xE7F5
|
||||
{ CRC_READMAKEUSERLIST , KK_ReadMakeUserlist , KT_R }, // 0xE8C6
|
||||
{ CRC_EDITCLEARPASTEBUF , KK_EditClearPasteBuf , KT_E }, // 0xE8E4
|
||||
{ CRC_K_AENTER , Key_A_Ent , 0 }, // 0xE921
|
||||
{ CRC_READMARKINGOPTIONS , KK_ReadMarkingOptions , KT_R }, // 0xE97A
|
||||
{ CRC_READUNMARK , KK_ReadUnmark , KT_R }, // 0xE9BB
|
||||
{ CRC_FILEGOTONEXT , KK_FileGotoNext , KT_F }, // 0xE9EC
|
||||
{ CRC_EDITBLOCKLEFT , KK_EditBlockLeft , KT_E }, // 0xED1D
|
||||
{ CRC_K_CUP , Key_C_Up , 0 }, // 0xEE6B
|
||||
@@ -806,6 +836,7 @@ tglobalkey globalkeys[] = {
|
||||
{ CRC_EDITTABREVERSE , KK_EditTabReverse , KT_E }, // 0xF5B6
|
||||
{ CRC_HEADERTOGGLEPVT , KK_HeaderTogglePvt , KT_H }, // 0xF614
|
||||
{ CRC_HEADERTOGGLESENT , KK_HeaderToggleSent , KT_H }, // 0xF68C
|
||||
{ CRC_AREAMARK , KK_AreaMark , KT_A }, // 0xF77B
|
||||
{ CRC_K_RIGHT , Key_Rgt , 0 }, // 0xF78D
|
||||
{ CRC_EDITIMPORTQUOTEBUF , KK_EditImportQuotebuf , KT_E }, // 0xF797
|
||||
{ CRC_READMACRO , KK_ReadMacro , KT_R }, // 0xF7D8
|
||||
|
@@ -53,6 +53,8 @@ const word CRC_AREATOUCHNETSCAN = 0x58C1;
|
||||
const word CRC_AREAUNDEFINE = 0x835B;
|
||||
const word CRC_AREAWRITEGOLDLAST = 0xD353;
|
||||
const word CRC_AREAZAP = 0x5125;
|
||||
const word CRC_AREAMARK = 0xF77B;
|
||||
const word CRC_AREAUNMARK = 0x17B3;
|
||||
|
||||
const word CRC_EDITABORT = 0x6468;
|
||||
const word CRC_EDITANCHOR = 0xDC07;
|
||||
@@ -158,6 +160,10 @@ const word CRC_LISTTOGGLEDATE = 0x6F1F;
|
||||
const word CRC_LISTTOGGLEMARK = 0xD389;
|
||||
const word CRC_LISTTOGGLEWIDESUBJ = 0x3C76;
|
||||
const word CRC_LISTUNDEFINE = 0xAF86;
|
||||
const word CRC_LISTMARK = 0xC530;
|
||||
const word CRC_LISTUNMARK = 0x8DEB;
|
||||
const word CRC_LISTWIDESUBJ = 0x6026;
|
||||
const word CRC_LISTNARROWSUBJ = 0xE756;
|
||||
|
||||
const word CRC_EXTERNUTIL01 = 0x95B9;
|
||||
const word CRC_EXTERNUTIL02 = 0x95BA;
|
||||
@@ -280,6 +286,31 @@ const word CRC_READTOUCHSEMAPHORE = 0x6B1D;
|
||||
const word CRC_READUNDEFINE = 0x329D;
|
||||
const word CRC_READUUDECODE = 0x4F0B;
|
||||
const word CRC_READWRITEMSG = 0x73AC;
|
||||
const word CRC_READSHOWKLUDGE = 0xC9ED;
|
||||
const word CRC_READHIDEKLUDGE = 0x19EC;
|
||||
const word CRC_READSHOWHIDDEN = 0x8B88;
|
||||
const word CRC_READHIDEHIDDEN = 0x5B89;
|
||||
const word CRC_READSHOWHIDDKLUD = 0x81EB;
|
||||
const word CRC_READHIDEHIDDKLUD = 0x84ED;
|
||||
const word CRC_READMARK = 0x6190;
|
||||
const word CRC_READUNMARK = 0xE9BB;
|
||||
const word CRC_READREADMARKED = 0x01AE;
|
||||
const word CRC_READREADALL = 0x0146;
|
||||
const word CRC_READREALMSGNO = 0x07F8;
|
||||
const word CRC_READSEQUENTMSGNO = 0x9085;
|
||||
const word CRC_READSTYLESNONE = 0x79D7;
|
||||
const word CRC_READSTYLESSHOW = 0x7D0D;
|
||||
const word CRC_READSTYLESSTRIP = 0x39E8;
|
||||
const word CRC_READTWITSSHOW = 0x03C5;
|
||||
const word CRC_READTWITSBLANK = 0xB571;
|
||||
const word CRC_READTWITSSKIP = 0x35A1;
|
||||
const word CRC_READTWITSIGNORE = 0x71CA;
|
||||
const word CRC_READTWITSKILL = 0x9A25;
|
||||
const word CRC_READSTRIPHTML = 0x499A;
|
||||
const word CRC_READSHOWHTML = 0xA27F;
|
||||
const word CRC_READTOGGLEHTML = 0xBC02;
|
||||
const word CRC_READSHOWQUOTE = 0x3C6C;
|
||||
const word CRC_READHIDEQUOTE = 0x1FA8;
|
||||
|
||||
const word CRC_ADDRESSBOOKQUIT = 0x47C7;
|
||||
const word CRC_ADDRESSBOOKADD = 0xFF55;
|
||||
|
@@ -325,6 +325,7 @@ void CfgSquishuserno ();
|
||||
void CfgSquishuserpath ();
|
||||
void CfgStatuslineclock ();
|
||||
void CfgStatuslinehelp ();
|
||||
void CfgStripHTML ();
|
||||
void CfgStylecodes ();
|
||||
void CfgStylecodepunct ();
|
||||
void CfgStylecodestops ();
|
||||
@@ -363,6 +364,7 @@ void CfgViewkludge ();
|
||||
void CfgViewquote ();
|
||||
void CfgWhoto ();
|
||||
void CfgWildcatuserno ();
|
||||
void CfgWriteheader ();
|
||||
void CfgWritetemplate ();
|
||||
void CfgXlatcharset ();
|
||||
void CfgXlatescset ();
|
||||
@@ -378,4 +380,3 @@ void CfgZonegating ();
|
||||
#endif
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
|
@@ -592,6 +592,20 @@ bool GPickArealist::handle_key() {
|
||||
cursor_down();
|
||||
break;
|
||||
|
||||
case KK_AreaMark:
|
||||
AL[index]->set_marked(true);
|
||||
display_bar();
|
||||
precursor();
|
||||
cursor_down();
|
||||
break;
|
||||
|
||||
case KK_AreaUnmark:
|
||||
AL[index]->set_marked(false);
|
||||
display_bar();
|
||||
precursor();
|
||||
cursor_down();
|
||||
break;
|
||||
|
||||
case KK_AreaBoardnos:
|
||||
CFG->switches.set(arealistnos, not CFG->switches.get(arealistnos));
|
||||
update();
|
||||
|
@@ -322,6 +322,7 @@ public:
|
||||
int squishuserno;
|
||||
Path squishuserpath;
|
||||
int statuslinehelp;
|
||||
bool striphtml;
|
||||
char stylecodepunct[41];
|
||||
char stylecodestops[41];
|
||||
gstrarray tagline;
|
||||
@@ -358,6 +359,7 @@ public:
|
||||
bool viewquote;
|
||||
Name whoto;
|
||||
int wildcatuserno;
|
||||
int writeheader;
|
||||
std::string wtpl;
|
||||
std::vector<Map> xlatcharset;
|
||||
std::vector<Map> xlatescset;
|
||||
|
139
golded3/gehtml.cpp
Executable file
139
golded3/gehtml.cpp
Executable file
@@ -0,0 +1,139 @@
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
// GoldED+
|
||||
// Copyright (C) 2003 Alexander S. Aganichev
|
||||
// ------------------------------------------------------------------
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License as
|
||||
// published by the Free Software Foundation; either version 2 of the
|
||||
// License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
// MA 02111-1307 USA
|
||||
// ------------------------------------------------------------------
|
||||
// $Id$
|
||||
// ------------------------------------------------------------------
|
||||
// HTML tag remover.
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
#include <golded.h>
|
||||
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
const static struct html_entities {
|
||||
const char *tag;
|
||||
char replacement;
|
||||
}
|
||||
entities[] = {
|
||||
{"nbsp", ' '},
|
||||
{"brvbar", '|'},
|
||||
{"laquo", '<'},
|
||||
{"shy", '-'},
|
||||
{"raquo", '>'},
|
||||
{"divide", '/'},
|
||||
{"quot", '\"'},
|
||||
{"amp", '&'},
|
||||
{"lt", '<'},
|
||||
{"gt", '>'}
|
||||
};
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
void RemoveHTML (char *&txt) {
|
||||
|
||||
long i, j, len = strlen(txt) + 1;
|
||||
char *new_txt = (char *)throw_malloc(len);
|
||||
bool strip = false;
|
||||
bool quoted = false;
|
||||
bool inside_html = false;
|
||||
bool last_char_was_space = true;
|
||||
|
||||
for(i = j = 0; txt[i] != NUL; i++) {
|
||||
if(not quoted and not strip and (txt[i] == '<')) {
|
||||
if(strnieql(txt + i, "<html", 5) or strnieql(txt + i, "<!DOCTYPE", 9)
|
||||
or strnieql(txt + i, "<!--", 4)) {
|
||||
inside_html = true;
|
||||
strip = true;
|
||||
}
|
||||
else if(strnieql(txt + i, "</html>", 7)) {
|
||||
inside_html = false;
|
||||
strip = true;
|
||||
}
|
||||
else if(not inside_html and (txt[i + 1] == '/')) {
|
||||
inside_html = true; // closing html tag, force html mode
|
||||
strip = true;
|
||||
}
|
||||
else if(inside_html) {
|
||||
strip = true;
|
||||
if(strnieql(txt + i, "<b>", 3) or strnieql(txt + i, "</b>", 4))
|
||||
new_txt[j++] = '*';
|
||||
if(strnieql(txt + i, "<i>", 3) or strnieql(txt + i, "</i>", 4))
|
||||
new_txt[j++] = '/';
|
||||
if(strnieql(txt + i, "<u>", 3) or strnieql(txt + i, "</u>", 4))
|
||||
new_txt[j++] = '_';
|
||||
if((strnieql(txt + i, "</h", 3) and isdigit(txt[i + 3]))
|
||||
or strnieql(txt + i, "</p>", 4) or strnieql(txt + i, "</tr>", 5)
|
||||
or strnieql(txt + i, "</div>", 6) or strnieql(txt + i, "<br>", 4)) {
|
||||
new_txt[j++] = CR;
|
||||
}
|
||||
}
|
||||
else {
|
||||
new_txt[j++] = txt[i];
|
||||
}
|
||||
}
|
||||
else if(not strip and not inside_html) {
|
||||
new_txt[j++] = txt[i];
|
||||
}
|
||||
else if(strip and not quoted and (txt[i] == '>')) {
|
||||
strip = false;
|
||||
}
|
||||
else if(inside_html) {
|
||||
if(strip and (txt[1] == '\"')) {
|
||||
quoted = not quoted;
|
||||
}
|
||||
else if(not strip and (iscntrl(txt[i]) or (txt[i] == ' '))) {
|
||||
if((i > 0) && (txt[i - 1] == '=')) // compensate for quoted-printable
|
||||
new_txt[j++] = txt[i];
|
||||
else if(not last_char_was_space)
|
||||
new_txt[j++] = ' ';
|
||||
last_char_was_space = true;
|
||||
}
|
||||
else if(not strip and (txt[i] == '&')) {
|
||||
bool found = false;
|
||||
for (int k = 0; k < (sizeof(entities) / sizeof(html_entities)); k++) {
|
||||
long taglen = strlen (entities[k].tag);
|
||||
if(strnieql (txt + i + 1, entities[k].tag, taglen)) {
|
||||
new_txt[j++] = entities[k].replacement;
|
||||
i += taglen + ((txt[i + taglen + 1] == ';') ? 1 : 0);
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(not found) {
|
||||
new_txt[j++] = txt[i];
|
||||
}
|
||||
last_char_was_space = false;
|
||||
}
|
||||
else if(not strip) {
|
||||
new_txt[j++] = txt[i];
|
||||
last_char_was_space = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
new_txt[j] = NUL;
|
||||
if (i != j) {
|
||||
txt = (char *)throw_realloc(txt, j + 17);
|
||||
memcpy(txt, new_txt, j + 1);
|
||||
}
|
||||
throw_free(new_txt);
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------
|
@@ -104,6 +104,8 @@ const gkey KK_AreaToggle = 0xFEB6;
|
||||
const gkey KK_AreaTouchNetscan = 0xFEB7;
|
||||
const gkey KK_AreaWriteGoldlast = 0xFEB8;
|
||||
const gkey KK_AreaZap = 0xFEB9;
|
||||
const gkey KK_AreaMark = 0xFEBA;
|
||||
const gkey KK_AreaUnmark = 0xFEBB;
|
||||
|
||||
const gkey KK_EditAbort = 0xFEC0;
|
||||
const gkey KK_EditAnchor = 0xFEC1;
|
||||
@@ -205,6 +207,10 @@ const gkey KK_ListToggleBookMark = 0xFF2D;
|
||||
const gkey KK_ListToggleDate = 0xFF2E;
|
||||
const gkey KK_ListToggleMark = 0xFF2F;
|
||||
const gkey KK_ListToggleWideSubj = 0xFF30;
|
||||
const gkey KK_ListMark = 0xFF31;
|
||||
const gkey KK_ListUnmark = 0xFF32;
|
||||
const gkey KK_ListWideSubj = 0xFF33;
|
||||
const gkey KK_ListNarrowSubj = 0xFF34;
|
||||
|
||||
const gkey KK_NodeAbort = 0xFF40;
|
||||
const gkey KK_NodeAskExit = 0xFF41;
|
||||
@@ -216,6 +222,12 @@ const gkey KK_NodeGotoPrev = 0xFF46;
|
||||
const gkey KK_NodeQuitNow = 0xFF49;
|
||||
const gkey KK_NodeSelect = 0xFF4A;
|
||||
|
||||
const gkey KK_AddressbookQuit = 0xFF4B;
|
||||
const gkey KK_AddressbookAdd = 0xFF4C;
|
||||
const gkey KK_AddressbookSelect = 0xFF4D;
|
||||
const gkey KK_AddressbookDelete = 0xFF4E;
|
||||
const gkey KK_AddressbookPack = 0xFF4F;
|
||||
|
||||
const gkey KK_ReadAddressbookAdd = 0xFF50;
|
||||
const gkey KK_ReadAskExit = 0xFF51;
|
||||
const gkey KK_ReadChangeAka = 0xFF52;
|
||||
@@ -298,12 +310,31 @@ const gkey KK_ReadDirQuoteMsg = 0xFFA2;
|
||||
const gkey KK_ReadMoveDirQuoteMsg = 0xFFA3;
|
||||
const gkey KK_ReadPeekURLs = 0xFFA4;
|
||||
const gkey KK_ReadShowDel = 0xFFA5;
|
||||
|
||||
const gkey KK_AddressbookQuit = 0xFFB0;
|
||||
const gkey KK_AddressbookAdd = 0xFFB1;
|
||||
const gkey KK_AddressbookSelect = 0xFFB2;
|
||||
const gkey KK_AddressbookDelete = 0xFFB3;
|
||||
const gkey KK_AddressbookPack = 0xFFB4;
|
||||
const gkey KK_ReadShowKludge = 0xFFA6;
|
||||
const gkey KK_ReadHideKludge = 0xFFA7;
|
||||
const gkey KK_ReadShowHidden = 0xFFA8;
|
||||
const gkey KK_ReadHideHidden = 0xFFA9;
|
||||
const gkey KK_ReadShowHiddKlud = 0xFFAA;
|
||||
const gkey KK_ReadHideHiddKlud = 0xFFAB;
|
||||
const gkey KK_ReadMark = 0xFFAC;
|
||||
const gkey KK_ReadUnmark = 0xFFAD;
|
||||
const gkey KK_ReadReadMarked = 0xFFAE;
|
||||
const gkey KK_ReadReadAll = 0xFFAF;
|
||||
const gkey KK_ReadRealMsgno = 0xFFB0;
|
||||
const gkey KK_ReadSequentMsgno = 0xFFB1;
|
||||
const gkey KK_ReadStylesNone = 0xFFB2;
|
||||
const gkey KK_ReadStylesShow = 0xFFB3;
|
||||
const gkey KK_ReadStylesStrip = 0xFFB4;
|
||||
const gkey KK_ReadTwitsShow = 0xFFB5;
|
||||
const gkey KK_ReadTwitsBlank = 0xFFB6;
|
||||
const gkey KK_ReadTwitsSkip = 0xFFB7;
|
||||
const gkey KK_ReadTwitsIgnore = 0xFFB8;
|
||||
const gkey KK_ReadTwitsKill = 0xFFB9;
|
||||
const gkey KK_ReadStripHTML = 0xFFBA;
|
||||
const gkey KK_ReadShowHTML = 0xFFBB;
|
||||
const gkey KK_ReadToggleHTML = 0xFFBC;
|
||||
const gkey KK_ReadShowQuote = 0xFFBD;
|
||||
const gkey KK_ReadHideQuote = 0xFFBE;
|
||||
|
||||
const gkey KK_HeaderAddressbook = 0xFFC0;
|
||||
const gkey KK_HeaderLookup = 0xFFC1;
|
||||
|
@@ -363,6 +363,7 @@ static const Kludges rfc_list[] = {
|
||||
{ "X-Char-Esc" , RFC_X_CHAR_ESC , KCRQ_COLON },
|
||||
{ "X-FTN-To" , RFC_X_FTN_TO , KCRQ_COLON },
|
||||
{ "X-Mailer" , RFC_X_MAILER , KCRQ_COLON },
|
||||
{ "X-Mailreader" , RFC_X_MAILER , KCRQ_COLON },
|
||||
{ "X-Newsreader" , RFC_X_NEWSREADER , KCRQ_COLON },
|
||||
{ "X-To" , RFC_X_TO , KCRQ_COLON },
|
||||
{ "#!" , RFC_RNEWS , KCRQ_NONE },
|
||||
@@ -1527,13 +1528,23 @@ void ScanKludges(GMsg* msg, int getvalue) {
|
||||
// Check if it's a tearline
|
||||
else if(not (gottear or gottag) and strneql("---", ptr, 3) and (ptr[3] == ' ' or ptr[3] == NUL)) {
|
||||
|
||||
Line* nnel = next_non_empty(line->next);
|
||||
if(not lineno or ((lineno-1) == originlineno) or not nnel or nnel->type & GLINE_KLUDGE) {
|
||||
Line* tearln = line;
|
||||
int tearlnno = lineno;
|
||||
while (tearln->type & GLINE_WRAP) {
|
||||
tearln = tearln->next;
|
||||
tearlnno--;
|
||||
}
|
||||
Line* nnel = next_non_empty(tearln->next);
|
||||
if(not tearlnno or ((tearlnno-1) == originlineno) or not nnel or nnel->type & GLINE_KLUDGE) {
|
||||
// Found Tearline
|
||||
gottear = YES;
|
||||
tearlineno = lineno;
|
||||
line->type |= GLINE_TEAR;
|
||||
line->color = C_READT;
|
||||
for (tearln = line; tearln->type & GLINE_WRAP; tearln = tearln->next) {
|
||||
tearln->type |= GLINE_TEAR;
|
||||
tearln->color = C_READT;
|
||||
}
|
||||
tearln->type |= GLINE_TEAR;
|
||||
tearln->color = C_READT;
|
||||
strbtrim(strcpy(msg->tearline, ptr+3));
|
||||
|
||||
if(getvalue and CFG->gedhandshake) {
|
||||
@@ -1900,7 +1911,7 @@ void MakeLineIndex(GMsg* msg, int margin, bool getvalue, bool header_recode) {
|
||||
int wraps=0, para=0, chslev;
|
||||
bool reflow = false, quoteflag = false;
|
||||
bool quotewraphard = AA->Quotewraphard();
|
||||
bool qpencoded = getvalue and IsQuotedPrintable(AA->Xlatimport());
|
||||
bool qpencoded = getvalue and (IsQuotedPrintable(AA->Xlatimport()) or AA->StripHTML());
|
||||
bool gotmime = false;
|
||||
bool gotmultipart = false;
|
||||
bool inheader = false;
|
||||
@@ -1953,6 +1964,8 @@ void MakeLineIndex(GMsg* msg, int margin, bool getvalue, bool header_recode) {
|
||||
|
||||
char prev_ptr[3] = {"\xFF\xFF"};
|
||||
|
||||
if(AA->StripHTML())
|
||||
RemoveHTML(msg->txt);
|
||||
ptr = spanfeeds(msg->txt);
|
||||
|
||||
// Set default conversion table for area
|
||||
|
@@ -412,6 +412,34 @@ bool GMsgList::handle_key() {
|
||||
case KK_ListSelect:
|
||||
return false;
|
||||
|
||||
case KK_ListMark:
|
||||
{
|
||||
ulong temp = AA->Mark.Find(mlst[index]->msgno);
|
||||
if(not temp) {
|
||||
AA->Mark.Add(mlst[index]->msgno);
|
||||
update_marks(mlst[index]);
|
||||
}
|
||||
}
|
||||
if(index < maximum_index)
|
||||
cursor_down();
|
||||
else
|
||||
display_bar();
|
||||
break;
|
||||
|
||||
case KK_ListUnmark:
|
||||
{
|
||||
ulong temp = AA->Mark.Find(mlst[index]->msgno);
|
||||
if(temp) {
|
||||
AA->Mark.DelReln(temp);
|
||||
update_marks(mlst[index]);
|
||||
}
|
||||
}
|
||||
if(index < maximum_index)
|
||||
cursor_down();
|
||||
else
|
||||
display_bar();
|
||||
break;
|
||||
|
||||
case KK_ListToggleMark:
|
||||
{
|
||||
ulong temp = AA->Mark.Find(mlst[index]->msgno);
|
||||
@@ -498,6 +526,22 @@ bool GMsgList::handle_key() {
|
||||
DosShell();
|
||||
break;
|
||||
|
||||
case KK_ListWideSubj:
|
||||
if(not AA->Msglistwidesubj()) {
|
||||
AA->ToggleMsglistwidesubj();
|
||||
update_title();
|
||||
update();
|
||||
}
|
||||
break;
|
||||
|
||||
case KK_ListNarrowSubj:
|
||||
if(AA->Msglistwidesubj()) {
|
||||
AA->ToggleMsglistwidesubj();
|
||||
update_title();
|
||||
update();
|
||||
}
|
||||
break;
|
||||
|
||||
case KK_ListToggleWideSubj:
|
||||
AA->ToggleMsglistwidesubj();
|
||||
update_title();
|
||||
|
@@ -327,11 +327,9 @@ int GMenuDomarks::Run(char* dowhat) {
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
static int gmwm_usehdr = 1;
|
||||
|
||||
void do_togglehdr() {
|
||||
++gmwm_usehdr; gmwm_usehdr %= 3;
|
||||
gwin.cmenu->citem->str = (gmwm_usehdr == 1 ? LNG->WriteToHdrYES : gmwm_usehdr == 2 ? LNG->WriteToHdrONLY : LNG->WriteToHdrNO)+1;
|
||||
++AA->adat->writeheader; AA->adat->writeheader %= 3;
|
||||
gwin.cmenu->citem->str = (AA->Writeheader() == 1 ? LNG->WriteToHdrYES : AA->Writeheader() == 2 ? LNG->WriteToHdrONLY : LNG->WriteToHdrNO) + 1;
|
||||
gwin.cmenu->citem->redisp = true;
|
||||
}
|
||||
|
||||
@@ -354,7 +352,7 @@ int GMenuWriteMsg::Run() {
|
||||
Item(TAG_DISKFILE, LNG->Diskfile);
|
||||
Item(TAG_PRINTER, LNG->Printer);
|
||||
Item(TAG_CLIPBRD, LNG->Clipboard);
|
||||
Item(TAG_TOGGLEHDR, (gmwm_usehdr == 1 ? LNG->WriteToHdrYES : gmwm_usehdr == 2 ? LNG->WriteToHdrONLY : LNG->WriteToHdrNO), 0, do_togglehdr);
|
||||
Item(TAG_TOGGLEHDR, (AA->Writeheader() == 1 ? LNG->WriteToHdrYES : AA->Writeheader() == 2 ? LNG->WriteToHdrONLY : LNG->WriteToHdrNO), 0, do_togglehdr);
|
||||
Item(TAG_QUIT, LNG->QuitWrite);
|
||||
SetTag(_prevtag);
|
||||
End();
|
||||
@@ -362,7 +360,7 @@ int GMenuWriteMsg::Run() {
|
||||
Start();
|
||||
|
||||
_prevtag = finaltag;
|
||||
int header = gmwm_usehdr == 1 ? 0 : gmwm_usehdr == 2 ? WRITE_ONLY_HEADER : WRITE_NO_HEADER;
|
||||
int header = AA->Writeheader() == 1 ? 0 : AA->Writeheader() == 2 ? WRITE_ONLY_HEADER : WRITE_NO_HEADER;
|
||||
switch(finaltag) {
|
||||
case TAG_DISKFILE: return WRITE_FILE|header;
|
||||
case TAG_PRINTER: return WRITE_PRINTER|header;
|
||||
|
@@ -619,13 +619,16 @@ static void MakeMsg2(int& mode, int& status, int& forwstat, int& topline, GMsg*
|
||||
int adat_viewhidden = AA->Viewhidden();
|
||||
int adat_viewkludge = AA->Viewkludge();
|
||||
int adat_viewquote = AA->Viewquote();
|
||||
bool adat_striphtml = AA->StripHTML();
|
||||
AA->adat->viewhidden = true;
|
||||
AA->adat->viewkludge = true;
|
||||
AA->adat->viewquote = true;
|
||||
AA->adat->striphtml = false;
|
||||
msg->TextToLines(CFG->dispmargin-1, false); // Ignore any kludge address found
|
||||
AA->adat->viewhidden = adat_viewhidden;
|
||||
AA->adat->viewkludge = adat_viewkludge;
|
||||
AA->adat->viewquote = adat_viewquote;
|
||||
AA->adat->striphtml = adat_striphtml;
|
||||
msg->attr.pos0();
|
||||
|
||||
InvalidateControlInfo(msg);
|
||||
|
@@ -337,6 +337,7 @@ void ToggleBookMark();
|
||||
void ToggleHidden();
|
||||
void ToggleHiddKlud();
|
||||
void ToggleKludge();
|
||||
void ToggleStripHTML();
|
||||
void ToggleMark();
|
||||
void ToggleMarkRead();
|
||||
void TogglePageBar();
|
||||
@@ -470,6 +471,11 @@ bool isuucp(const char *name);
|
||||
const char *url_begin(const char *ptr);
|
||||
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
void RemoveHTML(char *&txt);
|
||||
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
#endif
|
||||
|
@@ -180,6 +180,8 @@ void Area::InitData() {
|
||||
adat->viewhidden = CFG->viewhidden;
|
||||
adat->viewkludge = CFG->viewkludge;
|
||||
adat->viewquote = CFG->viewquote;
|
||||
adat->writeheader = CFG->writeheader;
|
||||
adat->striphtml = CFG->striphtml;
|
||||
strcpy(adat->nickname, CFG->nickname);
|
||||
strcpy(adat->netname, CFG->netname);
|
||||
strcpy(adat->whoto, CFG->whoto);
|
||||
@@ -405,6 +407,8 @@ void Area::RandomizeData(int mode) {
|
||||
CFG->grp.GetItm(GRP_VIEWHIDDEN, adat->viewhidden);
|
||||
CFG->grp.GetItm(GRP_VIEWKLUDGE, adat->viewkludge);
|
||||
CFG->grp.GetItm(GRP_VIEWQUOTE, adat->viewquote);
|
||||
CFG->grp.GetItm(GRP_STRIPHTML, adat->striphtml);
|
||||
CFG->grp.GetItm(GRP_WRITEHEADER, adat->writeheader);
|
||||
}
|
||||
|
||||
if(CFG->grp.GetItm(GRP_NICKNAME, buf, sizeof(buf)))
|
||||
|
@@ -270,24 +270,28 @@ void Reader() {
|
||||
if(AA->isreadmark or AA->isreadpm) {
|
||||
GTag& tag = AA->isreadpm ? AA->PMrk : AA->Mark;
|
||||
uint mtemp = tag.Find(msg->msgno);
|
||||
sprintf(buf2, "%s [%s%s%s%s]",
|
||||
sprintf(buf2, "%s [%s%s%s%s%s%s]",
|
||||
LNG->ReadMarked,
|
||||
AA->Viewhidden() ? "H" : "",
|
||||
AA->Viewkludge() ? "K" : "",
|
||||
AA->Twitmode() == TWIT_IGNORE ? "Ti" : AA->Twitmode() == TWIT_SKIP ? "Ts" : AA->Twitmode() == TWIT_BLANK ? "Tb" : AA->Twitmode() == TWIT_KILL ? "Tk" : "",
|
||||
CFG->showdeleted ? "D" : ""
|
||||
CFG->showdeleted ? "D" : "",
|
||||
AA->Viewquote() ? "Q" : "",
|
||||
AA->StripHTML() ? "S" : ""
|
||||
);
|
||||
sprintf(buf, buf2,
|
||||
mtemp, tag.Count(), tag.Count()-mtemp
|
||||
);
|
||||
}
|
||||
else {
|
||||
sprintf(buf2, "%s [%s%s%s%s]",
|
||||
sprintf(buf2, "%s [%s%s%s%s%s%s]",
|
||||
LNG->ReadAll,
|
||||
AA->Viewhidden() ? "H" : "",
|
||||
AA->Viewkludge() ? "K" : "",
|
||||
AA->Twitmode() == TWIT_IGNORE ? "Ti" : AA->Twitmode() == TWIT_SKIP ? "Ts" : AA->Twitmode() == TWIT_BLANK ? "Tb" : AA->Twitmode() == TWIT_KILL ? "Tk" : "",
|
||||
CFG->showdeleted ? "D" : ""
|
||||
CFG->showdeleted ? "D" : "",
|
||||
AA->Viewquote() ? "Q" : "",
|
||||
AA->StripHTML() ? "S" : ""
|
||||
);
|
||||
sprintf(buf, buf2,
|
||||
AA->lastread(), AA->Msgn.Count(), AA->Msgn.Count()-AA->lastread()
|
||||
@@ -480,6 +484,29 @@ void Reader() {
|
||||
IncMargin();
|
||||
break;
|
||||
|
||||
case KK_ReadStylesNone:
|
||||
if(CFG->usestylies or CFG->hidestylies)
|
||||
CFG->usestylies = CFG->hidestylies = false;
|
||||
else
|
||||
reader_keyok = true;
|
||||
break;
|
||||
|
||||
case KK_ReadStylesShow:
|
||||
if(not CFG->usestylies or CFG->hidestylies) {
|
||||
CFG->usestylies = true;
|
||||
CFG->hidestylies = false;
|
||||
}
|
||||
else
|
||||
reader_keyok = true;
|
||||
break;
|
||||
|
||||
case KK_ReadStylesStrip:
|
||||
if(not CFG->usestylies or not CFG->hidestylies)
|
||||
CFG->usestylies = CFG->hidestylies = true;
|
||||
else
|
||||
reader_keyok = true;
|
||||
break;
|
||||
|
||||
case KK_ReadToggleStyles:
|
||||
ToggleStyles();
|
||||
break;
|
||||
@@ -488,14 +515,105 @@ void Reader() {
|
||||
AA->attr().hexX();
|
||||
break;
|
||||
|
||||
case KK_ReadStripHTML:
|
||||
if(not AA->StripHTML())
|
||||
ToggleStripHTML();
|
||||
else
|
||||
reader_keyok = true;
|
||||
break;
|
||||
|
||||
case KK_ReadShowHTML:
|
||||
if(AA->StripHTML())
|
||||
ToggleStripHTML();
|
||||
else
|
||||
reader_keyok = true;
|
||||
break;
|
||||
|
||||
case KK_ReadToggleHTML:
|
||||
ToggleStripHTML();
|
||||
break;
|
||||
|
||||
case KK_ReadTwitsShow:
|
||||
if(AA->Twitmode() != TWIT_SHOW) {
|
||||
AA->SetTwitmode(TWIT_SHOW);
|
||||
CFG->twitmode = TWIT_SHOW;
|
||||
}
|
||||
else
|
||||
reader_keyok = true;
|
||||
break;
|
||||
|
||||
case KK_ReadTwitsBlank:
|
||||
if(AA->Twitmode() != TWIT_BLANK) {
|
||||
AA->SetTwitmode(TWIT_BLANK);
|
||||
CFG->twitmode = TWIT_BLANK;
|
||||
}
|
||||
else
|
||||
reader_keyok = true;
|
||||
break;
|
||||
|
||||
case KK_ReadTwitsSkip:
|
||||
if(AA->Twitmode() != TWIT_SKIP) {
|
||||
AA->SetTwitmode(TWIT_SKIP);
|
||||
CFG->twitmode = TWIT_SKIP;
|
||||
}
|
||||
else
|
||||
reader_keyok = true;
|
||||
break;
|
||||
|
||||
case KK_ReadTwitsIgnore:
|
||||
if(AA->Twitmode() != TWIT_IGNORE) {
|
||||
AA->SetTwitmode(TWIT_IGNORE);
|
||||
CFG->twitmode = TWIT_IGNORE;
|
||||
}
|
||||
else
|
||||
reader_keyok = true;
|
||||
break;
|
||||
|
||||
case KK_ReadTwitsKill:
|
||||
if(AA->Twitmode() != TWIT_KILL) {
|
||||
AA->SetTwitmode(TWIT_KILL);
|
||||
CFG->twitmode = TWIT_KILL;
|
||||
}
|
||||
else
|
||||
reader_keyok = true;
|
||||
break;
|
||||
|
||||
case KK_ReadToggleTwits:
|
||||
ToggleTwits();
|
||||
break;
|
||||
|
||||
case KK_ReadReadMarked:
|
||||
if(not AA->isreadmark)
|
||||
ToggleMarkRead();
|
||||
else
|
||||
reader_keyok = true;
|
||||
break;
|
||||
|
||||
case KK_ReadReadAll:
|
||||
if(AA->isreadmark)
|
||||
ToggleMarkRead();
|
||||
else
|
||||
reader_keyok = true;
|
||||
break;
|
||||
|
||||
case KK_ReadToggleMarkRead:
|
||||
ToggleMarkRead();
|
||||
break;
|
||||
|
||||
case KK_ReadMark:
|
||||
if(not AA->Mark.Find(reader_msg->msgno))
|
||||
ToggleMark();
|
||||
else
|
||||
reader_keyok = true;
|
||||
break;
|
||||
|
||||
case KK_ReadUnmark:
|
||||
if(AA->Mark.Find(reader_msg->msgno))
|
||||
ToggleMark();
|
||||
else
|
||||
reader_keyok = true;
|
||||
break;
|
||||
|
||||
case KK_ReadToggleMark:
|
||||
ToggleMark();
|
||||
break;
|
||||
@@ -549,18 +667,82 @@ void Reader() {
|
||||
GotoPrevUnread();
|
||||
break;
|
||||
|
||||
case KK_ReadShowHiddKlud:
|
||||
if(not AA->Viewhidden() and not AA->Viewkludge())
|
||||
ToggleHiddKlud();
|
||||
else if(not AA->Viewhidden())
|
||||
ToggleHidden();
|
||||
else if(not AA->Viewkludge())
|
||||
ToggleKludge();
|
||||
else
|
||||
reader_keyok = true;
|
||||
break;
|
||||
|
||||
case KK_ReadHideHiddKlud:
|
||||
if(AA->Viewhidden() and AA->Viewkludge())
|
||||
ToggleHiddKlud();
|
||||
else if(AA->Viewhidden())
|
||||
ToggleHidden();
|
||||
else if(AA->Viewkludge())
|
||||
ToggleKludge();
|
||||
else
|
||||
reader_keyok = true;
|
||||
break;
|
||||
|
||||
case KK_ReadToggleHiddKlud:
|
||||
ToggleHiddKlud();
|
||||
break;
|
||||
|
||||
case KK_ReadShowKludge:
|
||||
if(not AA->Viewkludge())
|
||||
ToggleKludge();
|
||||
else
|
||||
reader_keyok = true;
|
||||
break;
|
||||
|
||||
case KK_ReadHideKludge:
|
||||
if(AA->Viewkludge())
|
||||
ToggleKludge();
|
||||
else
|
||||
reader_keyok = true;
|
||||
break;
|
||||
|
||||
case KK_ReadToggleKludge:
|
||||
ToggleKludge();
|
||||
break;
|
||||
|
||||
case KK_ReadShowHidden:
|
||||
if(not AA->Viewhidden())
|
||||
ToggleHidden();
|
||||
else
|
||||
reader_keyok = true;
|
||||
break;
|
||||
|
||||
case KK_ReadHideHidden:
|
||||
if(AA->Viewhidden())
|
||||
ToggleHidden();
|
||||
else
|
||||
reader_keyok = true;
|
||||
break;
|
||||
|
||||
case KK_ReadToggleHidden:
|
||||
ToggleHidden();
|
||||
break;
|
||||
|
||||
case KK_ReadShowQuote:
|
||||
if(not AA->Viewquote())
|
||||
ToggleQuote();
|
||||
else
|
||||
reader_keyok = true;
|
||||
break;
|
||||
|
||||
case KK_ReadHideQuote:
|
||||
if(AA->Viewquote())
|
||||
ToggleQuote();
|
||||
else
|
||||
reader_keyok = true;
|
||||
break;
|
||||
|
||||
case KK_ReadToggleQuote:
|
||||
ToggleQuote();
|
||||
break;
|
||||
@@ -573,6 +755,20 @@ void Reader() {
|
||||
TogglePageBar();
|
||||
break;
|
||||
|
||||
case KK_ReadRealMsgno:
|
||||
if(not CFG->switches.get(disprealmsgno))
|
||||
ToggleRealMsgno();
|
||||
else
|
||||
reader_keyok = true;
|
||||
break;
|
||||
|
||||
case KK_ReadSequentMsgno:
|
||||
if(CFG->switches.get(disprealmsgno))
|
||||
ToggleRealMsgno();
|
||||
else
|
||||
reader_keyok = true;
|
||||
break;
|
||||
|
||||
case KK_ReadToggleRealMsgno:
|
||||
ToggleRealMsgno();
|
||||
break;
|
||||
|
@@ -153,6 +153,16 @@ void ToggleHidden() {
|
||||
}
|
||||
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
void ToggleStripHTML() {
|
||||
|
||||
AA->ToggleStripHTML();
|
||||
MsgLineReIndex(reader_msg);
|
||||
reader_topline = 0;
|
||||
}
|
||||
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
void ToggleQuote() {
|
||||
|
@@ -323,6 +323,8 @@ struct AreaData {
|
||||
bool viewhidden;
|
||||
bool viewkludge;
|
||||
bool viewquote;
|
||||
bool striphtml;
|
||||
int writeheader;
|
||||
};
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
@@ -559,6 +561,7 @@ public:
|
||||
bool Quotewraphard() const { return adat->quotewraphard; }
|
||||
const GPlay& Play() const { return adat->play; }
|
||||
const int Replyre() const { return adat->replyre; }
|
||||
bool StripHTML() const { return adat->striphtml; }
|
||||
const char* Searchfor() const { return adat->searchfor; }
|
||||
const char* Tagline() const { return adat->tagline; }
|
||||
char Taglinechar() const { return adat->taglinechar; }
|
||||
@@ -575,6 +578,7 @@ public:
|
||||
bool Viewkludge() const { return adat->viewkludge; }
|
||||
bool Viewquote() const { return adat->viewquote; }
|
||||
const char* Whoto() const { return adat->whoto; }
|
||||
int Writeheader() const { return adat->writeheader; }
|
||||
const char* WTpl() const { return adat->wtpl; }
|
||||
const char* Xlatexport() const { return adat->xlatexport; }
|
||||
const char* Xlatimport() const { return adat->xlatimport; }
|
||||
@@ -596,7 +600,7 @@ public:
|
||||
int ToggleViewhidden() { adat->viewhidden = not adat->viewhidden; return adat->viewhidden; }
|
||||
int ToggleViewkludge() { adat->viewkludge = not adat->viewkludge; return adat->viewkludge; }
|
||||
int ToggleViewquote() { adat->viewquote = not adat->viewquote; return adat->viewquote; }
|
||||
|
||||
bool ToggleStripHTML() { adat->striphtml = not adat->striphtml; return adat->striphtml; }
|
||||
};
|
||||
|
||||
|
||||
|
@@ -81,6 +81,7 @@ geutil cpp all nov bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
|
||||
geutil2 cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
|
||||
geview cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
|
||||
gmarea cpp all ovl bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
|
||||
gehtml cpp all nov bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
|
||||
golded3 cpp all nov bcd bco bcx djg emx lnx rsx wcn wco wcx cyg be
|
||||
gedcyg rc cyg
|
||||
gedemx rc emx
|
||||
|
Reference in New Issue
Block a user