Added new keywords, random fixes
This commit is contained in:
parent
37e5560578
commit
824ad2730b
@ -92,6 +92,7 @@ Up AREAgotoprev
|
||||
^Right AREAjump
|
||||
Tab AREAjumpnextmatch
|
||||
^Enter AREAjumpnextmatch
|
||||
; AREAmark
|
||||
^Q AREAquitnow
|
||||
@S AREAscan
|
||||
@P AREAscanpm
|
||||
@ -102,6 +103,7 @@ Right AREAselect
|
||||
@T AREAtoggle
|
||||
Ins AREAtoggle
|
||||
^Z AREAtouchnetscan
|
||||
; AREAunmark
|
||||
@W AREAwritegoldlast
|
||||
@Z AREAzap
|
||||
|
||||
@ -237,15 +239,19 @@ Down LISTgotonext
|
||||
^PgDn LISTgotonext
|
||||
Up LISTgotoprev
|
||||
^PgUp LISTgotoprev
|
||||
; LISTmark
|
||||
S LISTmarkingoptions
|
||||
@S LISTmarkingoptions
|
||||
@F9 LISTmarkingoptions
|
||||
; LISTnarrowsubj
|
||||
^Q LISTquitnow
|
||||
Enter LISTselect
|
||||
Tab LISTtogglebookmark
|
||||
^D LISTtoggledate
|
||||
Space LISTtogglemark
|
||||
^B LISTtogglewidesubj
|
||||
; LISTunmark
|
||||
; LISTwidesubj
|
||||
|
||||
|
||||
; ------------------------------------------------------------------
|
||||
@ -292,6 +298,7 @@ M READcopymoveforward
|
||||
D READdeletemsg
|
||||
@D READdeletemsg
|
||||
Del READdeletemsg
|
||||
; READdirquotemsg
|
||||
O READdosshell
|
||||
@O READdosshell
|
||||
^F10 READdosshell
|
||||
@ -335,12 +342,17 @@ Left READgotoprevmsg
|
||||
* READgotoreplynext
|
||||
- READgotoreplyprev
|
||||
^Left READgotoreplyprev
|
||||
; READhidekludge
|
||||
; READhidehidden
|
||||
; READhidehiddklud
|
||||
; READhidequote
|
||||
; READincreasemargin
|
||||
#F10 READlookupdest
|
||||
F10 READlookuporig
|
||||
; READmainmenu
|
||||
^L READmakeuserlist
|
||||
^K READmakepathreport
|
||||
; READmark
|
||||
S READmarkingoptions
|
||||
@S READmarkingoptions
|
||||
@F9 READmarkingoptions
|
||||
@ -375,14 +387,26 @@ Ins READnewmsg
|
||||
Q READquotemsg
|
||||
@Q READquotemsg
|
||||
F4 READquotemsg
|
||||
; READdirquotemsg
|
||||
; READreadmarked
|
||||
; READreadall
|
||||
; READrealmsgno
|
||||
R READreplymsg
|
||||
@R READreplymsg
|
||||
F3 READreplymsg
|
||||
; -- calls dummy menu. not implemented --
|
||||
; READsearch
|
||||
; READsequentmsgno
|
||||
@F8 READshowdel
|
||||
; READshowhidden
|
||||
; READshowhiddklud
|
||||
; READshowhtml
|
||||
; READshowkludge
|
||||
; READshowquote
|
||||
; READsoundkill
|
||||
; READstriphtml
|
||||
; READstylesnone
|
||||
; READstylesshow
|
||||
; READstylesstrip
|
||||
; -- could not be assigned manually --
|
||||
;#3 READthreadtree
|
||||
Tab READtogglebookmark
|
||||
@ -395,6 +419,7 @@ H READtogglehidden
|
||||
V READtogglehiddklud
|
||||
@V READtogglehiddklud
|
||||
^F5 READtogglehiddklud
|
||||
; READtogglehtml
|
||||
K READtogglekludge
|
||||
@K READtogglekludge
|
||||
^F6 READtogglekludge
|
||||
@ -415,12 +440,17 @@ T READtoggletwits
|
||||
@T READtoggletwits
|
||||
^Z READtouchnetscan
|
||||
; READtouchsemaphore
|
||||
; READtwitsblank
|
||||
; READtwitsignore
|
||||
; READtwitskill
|
||||
; READtwitsshow
|
||||
; READtwitsskip
|
||||
; READunmark
|
||||
^X READuudecode
|
||||
W READwritemsg
|
||||
@W READwritemsg
|
||||
F7 READwritemsg
|
||||
|
||||
|
||||
; ------------------------------------------------------------------
|
||||
; ADDRESSBOOK BROWSER COMMANDS
|
||||
; ------------------------------------------------------------------
|
||||
|
@ -215,7 +215,7 @@ MI_DROPMSGNO "S
|
||||
WT_ZONEGATE " <20>®á« âì ç¥à¥§ ¬¥¦§® «ìë© £¥©â? "
|
||||
MI_ZONEGATEYES "A A ª ª ¦¥ ¨ ç¥!? "
|
||||
MI_ZONEGATENO "e <20>eâ, ¬ë ¯®©¤¥¬ ¤à㣨¬ ¯ã⥬ "
|
||||
ST_QUOTEPCT "<22><><EFBFBD><EFBFBD> ᮮ<>饭<EFBFBD><E9A5AD> ᮤ<>ন<EFBFBD> %i%% <20><><EFBFBD><EFBFBD><EFBFBD>%s"
|
||||
ST_QUOTEPCT "<22><><EFBFBD><EFBFBD> ᮮ<>饭<EFBFBD><E9A5AD> ᮤ<>ন<EFBFBD> %i%% <20><><EFBFBD><EFBFBD><EFBFBD>%0.0s"
|
||||
WT_SAVEMSG " ‘®åà ¨âì í⨠%i áâப? "
|
||||
MI_YESGREAT "a „a, íâ® ªàãâ®! "
|
||||
MI_KICKIT "S <20>eâ, ¢ë¡à®áì⥠íâ®.. / ESC "
|
||||
|
@ -211,7 +211,7 @@ MI_DROPMSGNO "N N
|
||||
WT_ZONEGATE " <20>®á« âì ç¥à¥§ ¬¥¦§® «ìë© £¥©â? "
|
||||
MI_ZONEGATEYES "Y Y € ª ª ¦¥ ¨ ç¥!? "
|
||||
MI_ZONEGATENO "N N <20>¥â, ¬ë ¯®©¤¥¬ ¤à㣨¬ ¯ã⥬ "
|
||||
ST_QUOTEPCT "<22><><EFBFBD><EFBFBD> ᮮ<>饭<EFBFBD><E9A5AD> ᮤ<>ন<EFBFBD> %i%% <20><><EFBFBD><EFBFBD><EFBFBD>%s"
|
||||
ST_QUOTEPCT "<22><><EFBFBD><EFBFBD> ᮮ<>饭<EFBFBD><E9A5AD> ᮤ<>ন<EFBFBD> %i%% <20><><EFBFBD><EFBFBD><EFBFBD>%0.0s"
|
||||
WT_SAVEMSG " ‘®åà ¨âì í⨠%i áâப? "
|
||||
MI_YESGREAT "Y Y „ , íâ® ªàãâ®! "
|
||||
MI_KICKIT "N N <20>¥â, ¢ë¡à®áì⥠íâ®.. / ESC "
|
||||
|
@ -1,14 +1,13 @@
|
||||
|
||||
GoldED+ compilation howto
|
||||
by Alexander Aganichev, 2:5020/201.58 <aaganichev@netscape.net>
|
||||
by Alexander Aganichev, 2:5020/201.58 <aaganichev@yandex.ru>
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
To compile GoldED+ and utilities you'll need:
|
||||
|
||||
- GNU C++ newer than 2.8.x, gcc 2.95.3 or gcc 3.0.x are recommended, gcc 3.1
|
||||
not tested yet.
|
||||
- GNU make and GNU sed
|
||||
- GNU C/C++ newer than 2.8.x, gcc 2.95.3 or gcc 3.x.x are recommended
|
||||
- GNU make, GNU sed and GNU grep
|
||||
- vi, emacs, or any other editor you like
|
||||
- beer or bear on your choice ;-)
|
||||
|
||||
@ -23,7 +22,7 @@ from www.mingw.org, copy .../lib/stdlibc++.a to /usr/local/lib/mingw, copy
|
||||
|
||||
---- DJGPP ONLY ----
|
||||
When building in DJGPP environment you may wish to use liblocal which may be
|
||||
found on http://aaganichev.narod.ru/djgpp/llocl01b.zip. This provides basic
|
||||
found on http://aaganichev.narod.ru/djgpp/llocl02b.zip. This provides basic
|
||||
locale support via country.sys driver. Otherwise just comment -llocal in
|
||||
GNUmakef.def.
|
||||
------ COMMON ------
|
||||
|
@ -12,6 +12,69 @@ ______________________________________________________________________
|
||||
Notes for GoldED+ 1.1.5, /snapshot/
|
||||
______________________________________________________________________
|
||||
|
||||
- Fixed bug in HPT config parser: areas which was not explicitly
|
||||
given messagebase type was omited.
|
||||
|
||||
+ Added new configuration keywords to main configuration file:
|
||||
|
||||
WRITEHEADER <YES/NO/ONLY> - default setting for Write->Header
|
||||
setting, defaults to yes. Can be used in Random System Group.
|
||||
|
||||
STRIPHTML <YES/NO> - activate quick-n-dirty HTML-tag stripper. It
|
||||
known to fail in some cases but more likely will not be improoved.
|
||||
The keyword may be used in Random System Group. Defaults - NO.
|
||||
NOTE: Strip HTML mode forces quoted-printable decoding.
|
||||
|
||||
+ Added new configuration keywords to keys configuration file:
|
||||
|
||||
READSTRIPHTML - Strip HTML tags
|
||||
READSHOWHTML - Show HTML tags
|
||||
READTOGGLEHTML - Toggle HTML tags display mode
|
||||
|
||||
The keywords listed below are just duplicates for corresponding
|
||||
toggles. They are added mostly for use in macros (untested):
|
||||
|
||||
AREAMARK
|
||||
AREAUNMARK
|
||||
LISTMARK
|
||||
LISTUNMARK
|
||||
LISTWIDESUBJ
|
||||
LISTNARROWSUBJ
|
||||
READSHOWKLUDGE
|
||||
READHIDEKLUDGE
|
||||
READSHOWHIDDEN
|
||||
READHIDEHIDDEN
|
||||
READSHOWHIDDKLUD
|
||||
READHIDEHIDDKLUD
|
||||
READMARK
|
||||
READUNMARK
|
||||
READREADMARKED
|
||||
READREADALL
|
||||
READREALMSGNO
|
||||
READSEQUENTMSGNO
|
||||
READSTYLESNONE
|
||||
READSTYLESSHOW
|
||||
READSTYLESSTRIP
|
||||
READTWITSSHOW
|
||||
READTWITSBLANK
|
||||
READTWITSSKIP
|
||||
READTWITSIGNORE
|
||||
READTWITSKILL
|
||||
READSHOWQUOTE
|
||||
READHIDEQUOTE
|
||||
|
||||
- X-Mailreader should not duplicate now on message changing (not
|
||||
tested).
|
||||
|
||||
- Better support for long tearlines are added. Now long tearlines with
|
||||
QuoteCtrl set to not quote tearlines no longer get quoted.
|
||||
|
||||
+ Added quote display mode to the statusbar (Q letter).
|
||||
|
||||
- More fixes to uu/xxdecoder: now sections which follows with the
|
||||
"end" properly decoded; if name contained tilde inside it also broke
|
||||
multisection UUE decoding.
|
||||
|
||||
- Fixed FWD kludges encoding.
|
||||
|
||||
- Hooks to the delete and move messages added for the read-only areas.
|
||||
|
@ -260,13 +260,12 @@ assistance!
|
||||
*Q:* <20>ЈЏ эт ... <20> ЏЈс ть ЊуЄ ЂтЎру? ;-)
|
||||
*A:* <20>Јс ть ЋучшЅ ЂсЅЃЎ Ђ Ru.GoldED. <20> ІЅ ЋучшЅ с ч Ћ ЅЃЎ ЏЎчЈт ть, ЄЎІЄ ться
|
||||
ЌЅстЎЃЎ FAQ, Ё ЃЋЈст Ј тЎЋьЊЎ ЏЎтЎЌ ЏЈс ть. <20>сЋЈ уІ сЈЋьЎ ЏрЈсЏЈчЈт, тЎ
|
||||
¬®¦® ¯¨á âì 2:5020/201.58, 2:5020/604.19 ¨«¨ aaganichev@netscape.net,
|
||||
® ï ᮢᥬ ¥ £ à â¨àãî, çâ® ï ®â¢¥çã. ‘â ¢ì⥠RRq, Cfm, ¥á«¨ å®â¨â¥
|
||||
§ âì, çâ® ¢ è¥ ¯¨á쬮 ¤®è«® ¨ ï ¯à®áâ® ¥ áâ « ¥£® ®â¢¥ç âì. Ÿ ¥
|
||||
®â¢¥ç î ¢®¯à®áë, ®¯¨á ë¥ ¢ í⮬ FAQ ¨«¨ ¥á«¨ ï ¥ § î ª ª çâ®-â®
|
||||
à ¡®â ¥â ¢ GoldED'¥ (ï ¥ ¨á¯®«ì§ãî ᫨誮¬ ¬®£® ¥£® ¢®§¬®¦®á⥩ - Œ<>…
|
||||
®¨ ¥ ã¦ë) - ç¨â ©â¥ ¤®ªã¬¥â æ¨î, á¯à 訢 ©â¥ ¢ Ru.GoldED... “ ¬¥ï
|
||||
᫨誮¬ ¬ «® ᢮¡®¤®£® ¢à¥¬¥¨, ç⮡ë à ᪠¯ë¢ âì ¤«ï ¢ á ª ª çâ®-â®
|
||||
à ¡®â ¥â.
|
||||
¬®¦® ―¨α βμ 2:5020/201.58 ¨«¨ aaganichev@yandex.ru, ® ο ᮢᥬ ¥
|
||||
£ ΰ β¨ΰγξ, ηβ® ο ®βΆ¥ηγ. ‘β Άμβ¥ RRq, Cfm, ¥α«¨ ε®β¨β¥ § βμ, ηβ® Ά θ¥
|
||||
―¨α쬮 ¤®θ«® ¨ ο ―ΰ®αβ® ¥ αβ « ¥£® ®βΆ¥η βμ. <20> ¥ ®βΆ¥η ξ Ά®―ΰ®αλ,
|
||||
®―¨α λ¥ Ά ν⮬ FAQ ¨«¨ ¥α«¨ ο ¥ § ξ <20> <EFBFBD> ηβ®-β® ΰ ΅®β ¥β Ά GoldED'¥ (ο
|
||||
¥ ¨α―®«μ§γξ ᫨θ<C2A8>®¬ ¬®£® ¥£® Ά®§¬®¦®α⥩ - <20><>… ®¨ ¥ γ¦λ) - η¨β ©β¥
|
||||
¤®<C2A4>㬥β ζ¨ξ, α―ΰ θ¨Ά ©β¥ Ά Ru.GoldED... “ ¬¥ο ᫨θ<C2A8>®¬ ¬ «® αΆ®΅®¤®£®
|
||||
Άΰ¥¬¥¨, ηβ®΅λ ΰ α<C2A0> ―λΆ βμ ¤«ο Ά α <20> <EFBFBD> ηβ®-β® ΰ ΅®β ¥β.
|
||||
|
||||
>==============================================================================
|
||||
|
@ -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
|
||||
|
@ -86,6 +86,7 @@ enum {
|
||||
GRP_QUOTESTOPS,
|
||||
GRP_QUOTEWRAPHARD,
|
||||
GRP_SEARCHFOR,
|
||||
GRP_STRIPHTML,
|
||||
GRP_TAGLINE,
|
||||
GRP_TAGLINECHAR,
|
||||
GRP_TAGLINESUPPORT,
|
||||
@ -101,6 +102,7 @@ enum {
|
||||
GRP_VIEWKLUDGE,
|
||||
GRP_VIEWQUOTE,
|
||||
GRP_WHOTO,
|
||||
GRP_WRITEHEADER,
|
||||
GRP_WRITETEMPLATE,
|
||||
GRP_XLATEXPORT,
|
||||
GRP_XLATIMPORT,
|
||||
|
@ -336,14 +336,20 @@ void gareafile::ReadHPTFile(char* path, char* file, char* origin, int group) {
|
||||
switch(aa.type) {
|
||||
case GMB_NET:
|
||||
aa.attr = attribsnet;
|
||||
if(aa.msgbase == 0)
|
||||
aa.msgbase = fidomsgtype;
|
||||
AddNewArea(aa);
|
||||
break;
|
||||
case GMB_ECHO:
|
||||
aa.attr = attribsecho;
|
||||
if(aa.msgbase == 0)
|
||||
aa.msgbase = fidomsgtype;
|
||||
AddNewArea(aa);
|
||||
break;
|
||||
case GMB_LOCAL:
|
||||
aa.attr = attribslocal;
|
||||
if(aa.msgbase == 0)
|
||||
aa.msgbase = fidomsgtype;
|
||||
AddNewArea(aa);
|
||||
break;
|
||||
case GMB_DEFAULT:
|
||||
|
@ -76,7 +76,8 @@ char * uunconc_id = "$Id$";
|
||||
#define BEGIN (1)
|
||||
#define DATA (2)
|
||||
#define END (3)
|
||||
#define DONE (4)
|
||||
#define END2 (4)
|
||||
#define DONE (5)
|
||||
|
||||
/*
|
||||
* mallocable areas
|
||||
@ -1072,7 +1073,15 @@ UUDecodePart (FILE *datain, FILE *dataout, int *state,
|
||||
tc = tf = vlc = 0;
|
||||
lc[0] = lc[1] = 0;
|
||||
}
|
||||
else if ((*state == END) &&
|
||||
else if ((*state == END) && (method == UU_ENCODED)) {
|
||||
if (strncmp (line, "`", 1) == 0)
|
||||
*state = END2;
|
||||
}
|
||||
else if ((*state == END) && (method == XX_ENCODED)) {
|
||||
if (strncmp (line, "+", 1) == 0)
|
||||
*state = END2;
|
||||
}
|
||||
else if ((*state == END2) &&
|
||||
(method == UU_ENCODED || method == XX_ENCODED)) {
|
||||
if (strncmp (line, "end", 3) == 0) {
|
||||
*state = DONE;
|
||||
@ -1117,7 +1126,7 @@ UUDecodePart (FILE *datain, FILE *dataout, int *state,
|
||||
break;
|
||||
}
|
||||
|
||||
if (*state == DATA || *state == END) {
|
||||
if (*state == DATA || *state == END || *state == END2) {
|
||||
if (method==B64ENCODED && line[0]=='-' && line[1]=='-' && tc) {
|
||||
break;
|
||||
}
|
||||
@ -1173,9 +1182,9 @@ UUDecodePart (FILE *datain, FILE *dataout, int *state,
|
||||
}
|
||||
|
||||
if (method == UU_ENCODED)
|
||||
*state = (line[0] == 'M') ? DATA : END;
|
||||
*state = (line[0] == 'M') ? DATA : (line[0] == '`') ? END2 : END;
|
||||
else if (method == XX_ENCODED)
|
||||
*state = (line[0] == 'h') ? DATA : END;
|
||||
*state = (line[0] == 'h') ? DATA : (line[0] == '+') ? END2 : END;
|
||||
else if (method == B64ENCODED)
|
||||
*state = (strchr (line, '=') == NULL) ? DATA : DONE;
|
||||
else if (method == BH_ENCODED)
|
||||
|
@ -525,6 +525,7 @@ ScanData (FILE *datei, char *fname, int *errcode,
|
||||
long preheaders=0, oldposition;
|
||||
long yefilesize=0, yepartends=0;
|
||||
size_t dcc, bhopc;
|
||||
char prevlinefirstchar;
|
||||
|
||||
*errcode = UURET_OK;
|
||||
(void) UUDecodeLine (NULL, NULL, 0); /* init */
|
||||
@ -545,7 +546,9 @@ ScanData (FILE *datei, char *fname, int *errcode,
|
||||
if (boundary)
|
||||
blen = strlen (boundary);
|
||||
|
||||
line[0] = '\0';
|
||||
while (!feof (datei)) {
|
||||
prevlinefirstchar = line[0];
|
||||
oldposition = ftell (datei);
|
||||
if (_FP_fgets (line, 299, datei) == NULL)
|
||||
break;
|
||||
@ -675,7 +678,17 @@ ScanData (FILE *datei, char *fname, int *errcode,
|
||||
result->uudet = XX_ENCODED;
|
||||
|
||||
if (result->uudet != B64ENCODED) {
|
||||
result->end = 1;
|
||||
if (result->uudet == XX_ENCODED) {
|
||||
if (prevlinefirstchar == '+')
|
||||
result->end = 1;
|
||||
}
|
||||
if (result->uudet == UU_ENCODED) {
|
||||
if (prevlinefirstchar == '`')
|
||||
result->end = 1;
|
||||
}
|
||||
else {
|
||||
result->end = 1;
|
||||
}
|
||||
if (dflag && encoding)
|
||||
result->uudet = encoding;
|
||||
continue;
|
||||
@ -839,6 +852,7 @@ ScanData (FILE *datei, char *fname, int *errcode,
|
||||
(((ptr = _FP_strrstr (line+2, "--")) == NULL) ||
|
||||
(*(ptr+2) != '\012' && *(ptr+2) != '\015')) &&
|
||||
_FP_strstr (line+2, "_=_") != NULL) {
|
||||
prevlinefirstchar = line[0];
|
||||
if (_FP_fgets (line, 255, datei) == NULL) {
|
||||
break;
|
||||
}
|
||||
@ -1096,6 +1110,7 @@ ScanData (FILE *datei, char *fname, int *errcode,
|
||||
break;
|
||||
}
|
||||
|
||||
prevlinefirstchar = line[0];
|
||||
oldposition = ftell (datei);
|
||||
if (_FP_fgets (line, 255, datei) == NULL)
|
||||
break;
|
||||
@ -1117,8 +1132,18 @@ ScanData (FILE *datei, char *fname, int *errcode,
|
||||
else if (line[0] == 'e' && (result->uudet == UU_ENCODED ||
|
||||
result->uudet == XX_ENCODED)) {
|
||||
if (strncmp (line, "end", 3) == 0) {
|
||||
result->end = 1;
|
||||
break;
|
||||
if (result->uudet == XX_ENCODED) {
|
||||
if (prevlinefirstchar == '+') {
|
||||
result->end = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (prevlinefirstchar == '`') {
|
||||
result->end = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (line[0] == 'b') {
|
||||
|
Reference in New Issue
Block a user