fixes
This commit is contained in:
parent
b7e2b155af
commit
d69ba8b37a
@ -12,6 +12,8 @@ ______________________________________________________________________
|
|||||||
Notes for GoldED+ 1.1.5, March xx 2001
|
Notes for GoldED+ 1.1.5, March xx 2001
|
||||||
______________________________________________________________________
|
______________________________________________________________________
|
||||||
|
|
||||||
|
- Fixed some quirks in internal editor.
|
||||||
|
|
||||||
- Fixed EDITHARDLINE keyword operation.
|
- Fixed EDITHARDLINE keyword operation.
|
||||||
|
|
||||||
- Fixed QUOTEWRAPHARD keyword operation.
|
- Fixed QUOTEWRAPHARD keyword operation.
|
||||||
@ -24,9 +26,9 @@ ______________________________________________________________________
|
|||||||
+ Added new keyword INTERNETGATEEXP to configure expansion of UUCP
|
+ Added new keyword INTERNETGATEEXP to configure expansion of UUCP
|
||||||
gated e-mail into To: line:
|
gated e-mail into To: line:
|
||||||
|
|
||||||
INTERNETGATEEXP Address // To: bob@fisher.com
|
INTERNETGATEEXP Address // To: bob@fisher.com
|
||||||
INTERNETGATEEXP Address,Name // To: bob@fisher.com (Bob Fisher)
|
INTERNETGATEEXP Address, Name // To: bob@fisher.com (Bob Fisher)
|
||||||
INTERNETGATEEXP Name,Address // To: "Bob Fisher" <bob@fisher.com>
|
INTERNETGATEEXP Name, Address // To: "Bob Fisher" <bob@fisher.com>
|
||||||
|
|
||||||
Other combinations treated as "Address, Name". Default assignment
|
Other combinations treated as "Address, Name". Default assignment
|
||||||
"Name, Address".
|
"Name, Address".
|
||||||
@ -39,9 +41,6 @@ ______________________________________________________________________
|
|||||||
- Template keyword now properly extracts filename within random system
|
- Template keyword now properly extracts filename within random system
|
||||||
groups.
|
groups.
|
||||||
|
|
||||||
+ @cfrom and @cto macroses added. Same as @ofrom and @oto but for
|
|
||||||
current message.
|
|
||||||
|
|
||||||
! If @ofrom or @oto is about to expanding to nothing they expanded to
|
! If @ofrom or @oto is about to expanding to nothing they expanded to
|
||||||
real name of person (if available).
|
real name of person (if available).
|
||||||
|
|
||||||
@ -55,7 +54,7 @@ ______________________________________________________________________
|
|||||||
|
|
||||||
@header= @oecho (@caddr) @align{79}{=}
|
@header= @oecho (@caddr) @align{79}{=}
|
||||||
@header Msg : @msgno of @msgs@align{44}@attr
|
@header Msg : @msgno of @msgs@align{44}@attr
|
||||||
@header From : @_oname @_oaddr @odate @otime
|
@header From : @_oname @_oaddr @odtime
|
||||||
@header To : @dname
|
@header To : @dname
|
||||||
@header Subj : @subject
|
@header Subj : @subject
|
||||||
@header@align{79}{=}
|
@header@align{79}{=}
|
||||||
@ -73,6 +72,11 @@ ______________________________________________________________________
|
|||||||
@msgs number of messages in current messagebase
|
@msgs number of messages in current messagebase
|
||||||
@attr attribute string
|
@attr attribute string
|
||||||
@align{pos}{char} align to `pos' with `char'
|
@align{pos}{char} align to `pos' with `char'
|
||||||
|
@cfrom same as @ofrom but for current message
|
||||||
|
@cto same as @oto but for current message
|
||||||
|
@odtime expanded according to MS_DateTimeFmt for original
|
||||||
|
message time
|
||||||
|
@cdtime current time in MS_DateTimeFmt format
|
||||||
|
|
||||||
- Fixed bug in expanding fixed lenght macroses.
|
- Fixed bug in expanding fixed lenght macroses.
|
||||||
|
|
||||||
|
@ -68,7 +68,7 @@ void SaveLines(int mode, const char* savefile, GMsg* msg, int margin, bool clip)
|
|||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
TemplateToText(((mode == MODE_WRITE) and prnheader) ? ((prnheader & WRITE_ONLY_HEADER) ? MODE_HEADER : MODE_WRITEHEADER) : MODE_WRITE, msg, msg, AA->Tpl(), CurrArea);
|
TemplateToText(((mode == MODE_WRITE) and prnheader) ? ((prnheader & WRITE_ONLY_HEADER) ? MODE_HEADER : MODE_WRITEHEADER) : MODE_WRITE, msg, msg, AA->Tpl(), CurrArea);
|
||||||
msg->TextToLines(-margin);
|
msg->TextToLines(margin);
|
||||||
#endif
|
#endif
|
||||||
int n = 0;
|
int n = 0;
|
||||||
Line** lin = msg->line;
|
Line** lin = msg->line;
|
||||||
|
@ -472,8 +472,6 @@ void IEclass::GoEOL() {
|
|||||||
|
|
||||||
// Move cursor to the last char on the line
|
// Move cursor to the last char on the line
|
||||||
col = currline->txt.length();
|
col = currline->txt.length();
|
||||||
if(col)
|
|
||||||
col--;
|
|
||||||
|
|
||||||
// String must not be longer than the window width
|
// String must not be longer than the window width
|
||||||
_test_haltab(col > maxcol, col, maxcol);
|
_test_haltab(col > maxcol, col, maxcol);
|
||||||
@ -631,7 +629,7 @@ Line* IEclass::wrapit(Line** __currline, uint* __curr_col, uint* __curr_row, int
|
|||||||
uint _wrapmargin = (_thisline->type & GLINE_QUOT) ? marginquotes : margintext;
|
uint _wrapmargin = (_thisline->type & GLINE_QUOT) ? marginquotes : margintext;
|
||||||
|
|
||||||
// Does this line need wrapping?
|
// Does this line need wrapping?
|
||||||
if(_thislen > _wrapmargin or (_thislen == _wrapmargin and not isspace(_thisline->txt[_thislen-1]))) {
|
if(_thislen >= _wrapmargin) {
|
||||||
|
|
||||||
// Reset quote string length
|
// Reset quote string length
|
||||||
_quotelen = 0;
|
_quotelen = 0;
|
||||||
@ -678,7 +676,7 @@ Line* IEclass::wrapit(Line** __currline, uint* __curr_col, uint* __curr_row, int
|
|||||||
// Keep copy of original pointer
|
// Keep copy of original pointer
|
||||||
int _atmargin = _wrappos;
|
int _atmargin = _wrappos;
|
||||||
|
|
||||||
// Search backwards until a space or the beginning of the line is found
|
// Search backwards until a space or the beginning of the line is found
|
||||||
while(_wrappos > 0 and (_thisline->txt[_wrappos-1] != ' '))
|
while(_wrappos > 0 and (_thisline->txt[_wrappos-1] != ' '))
|
||||||
_wrappos--;
|
_wrappos--;
|
||||||
|
|
||||||
@ -727,7 +725,7 @@ Line* IEclass::wrapit(Line** __currline, uint* __curr_col, uint* __curr_row, int
|
|||||||
// and length. While in Undo, appends the copied part to previous line and deletes
|
// and length. While in Undo, appends the copied part to previous line and deletes
|
||||||
// it on current, moving the rest over deleted.
|
// it on current, moving the rest over deleted.
|
||||||
Undo->PushItem(EDIT_UNDO_WRAP_TEXT|BATCH_MODE, _thisline, _quotelen, _wraplen);
|
Undo->PushItem(EDIT_UNDO_WRAP_TEXT|BATCH_MODE, _thisline, _quotelen, _wraplen);
|
||||||
|
|
||||||
_wrapline->type = _thisline->type;
|
_wrapline->type = _thisline->type;
|
||||||
// Make sure the type of the line is correct
|
// Make sure the type of the line is correct
|
||||||
setlinetype(_wrapline);
|
setlinetype(_wrapline);
|
||||||
@ -943,8 +941,6 @@ void IEclass::insertchar(char __ch) {
|
|||||||
if((selecting ? (BlockCut(true), batch_mode = BATCH_MODE) : false) or
|
if((selecting ? (BlockCut(true), batch_mode = BATCH_MODE) : false) or
|
||||||
(col >= _currline_len) or (currline->txt[col] == '\n') or insert) {
|
(col >= _currline_len) or (currline->txt[col] == '\n') or insert) {
|
||||||
Undo->PushItem(EDIT_UNDO_INS_CHAR|batch_mode);
|
Undo->PushItem(EDIT_UNDO_INS_CHAR|batch_mode);
|
||||||
if((col == _currline_len) and (__ch != ' ') and (__ch != '\n'))
|
|
||||||
currline->txt += ' ';
|
|
||||||
currline->txt.insert(col, 1, __ch);
|
currline->txt.insert(col, 1, __ch);
|
||||||
} else {
|
} else {
|
||||||
Undo->PushItem(EDIT_UNDO_OVR_CHAR|batch_mode);
|
Undo->PushItem(EDIT_UNDO_OVR_CHAR|batch_mode);
|
||||||
@ -2524,8 +2520,6 @@ void UndoStack::PlayItem() {
|
|||||||
currline->txt.erase(last_item->col.num,1);
|
currline->txt.erase(last_item->col.num,1);
|
||||||
break;
|
break;
|
||||||
case EDIT_UNDO_DEL_CHAR:
|
case EDIT_UNDO_DEL_CHAR:
|
||||||
if((last_item->col.num == currline->txt.length()) and (last_item->data.char_int != ' ') and (last_item->data.char_int != '\n'))
|
|
||||||
currline->txt += ' ';
|
|
||||||
currline->txt.insert(last_item->col.num, 1, last_item->data.char_int);
|
currline->txt.insert(last_item->col.num, 1, last_item->data.char_int);
|
||||||
break;
|
break;
|
||||||
case EDIT_UNDO_OVR_CHAR:
|
case EDIT_UNDO_OVR_CHAR:
|
||||||
|
@ -1809,9 +1809,7 @@ static int cmp_quotes(char* q1, char* q2) {
|
|||||||
|
|
||||||
void GMsg::TextToLines(int __line_width, bool header_recode) {
|
void GMsg::TextToLines(int __line_width, bool header_recode) {
|
||||||
|
|
||||||
line_width = __line_width;
|
MakeLineIndex(this, __line_width, header_recode);
|
||||||
|
|
||||||
MakeLineIndex(this, line_width, header_recode);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -82,9 +82,10 @@ static bool tokenxchg(char*& dst, char* tok, const char* src, int len = 0, int c
|
|||||||
|
|
||||||
// ------------------------------------------------------------------
|
// ------------------------------------------------------------------
|
||||||
|
|
||||||
static bool domain_requested(const char *str) {
|
inline bool domain_requested(const char *str, size_t pos) {
|
||||||
|
|
||||||
return strnieql(str, "{domain}", 8);
|
if(str[1] == '_') pos++;
|
||||||
|
return strnieql(str+pos, "{domain}", 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------
|
// ------------------------------------------------------------------
|
||||||
@ -106,11 +107,15 @@ char* TokenXlat(int mode, char* input, GMsg* msg, GMsg* oldmsg, int __origarea)
|
|||||||
strftimei(cdate, 80, LNG->DateFmt, written_tm);
|
strftimei(cdate, 80, LNG->DateFmt, written_tm);
|
||||||
char ctime[80];
|
char ctime[80];
|
||||||
strftimei(ctime, 80, LNG->TimeFmt, written_tm);
|
strftimei(ctime, 80, LNG->TimeFmt, written_tm);
|
||||||
|
char cdtime[80];
|
||||||
|
strftimei(cdtime, 80, LNG->DateTimeFmt, written_tm);
|
||||||
written_tm = gmtime(&oldmsg->written);
|
written_tm = gmtime(&oldmsg->written);
|
||||||
char odate[80];
|
char odate[80];
|
||||||
strftimei(odate, 80, LNG->DateFmt, written_tm);
|
strftimei(odate, 80, LNG->DateFmt, written_tm);
|
||||||
char otime[80];
|
char otime[80];
|
||||||
strftimei(otime, 80, LNG->TimeFmt, written_tm);
|
strftimei(otime, 80, LNG->TimeFmt, written_tm);
|
||||||
|
char odtime[80];
|
||||||
|
strftimei(odtime, 80, LNG->DateTimeFmt, written_tm);
|
||||||
|
|
||||||
const char* origareaid = AL.AreaIdToPtr(__origarea)->echoid();
|
const char* origareaid = AL.AreaIdToPtr(__origarea)->echoid();
|
||||||
bool origareaisinet = AL.AreaIdToPtr(__origarea)->isinternet();
|
bool origareaisinet = AL.AreaIdToPtr(__origarea)->isinternet();
|
||||||
@ -152,20 +157,6 @@ char* TokenXlat(int mode, char* input, GMsg* msg, GMsg* oldmsg, int __origarea)
|
|||||||
continue;
|
continue;
|
||||||
if(tokenxchg(dst, "@odesc", AL.AreaEchoToPtr(origareaid)->desc()))
|
if(tokenxchg(dst, "@odesc", AL.AreaEchoToPtr(origareaid)->desc()))
|
||||||
continue;
|
continue;
|
||||||
if(origareaisinet) {
|
|
||||||
if(tokenxchg(dst, "@oaddr", oldmsg->iorig, 19, 1, 0))
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if(tokenxchg(dst, "@oaddr", oldmsg->orig.make_string(buf, domain_requested(dst+6) ? oldmsg->odom : NULL), 19, 1, 0))
|
|
||||||
continue;
|
|
||||||
if(strnieql(dst, "@o3daddr", 8)) {
|
|
||||||
ftn_addr boss = oldmsg->orig;
|
|
||||||
boss.point = 0;
|
|
||||||
tokenxchg(dst, "@o3daddr", boss.make_string(buf, domain_requested(dst+8) ? oldmsg->odom : NULL), 19, 1, 0);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(tokenxchg(dst, "@oname", strbtrim(strtmp(oldmsg->By())), 34, 2,
|
if(tokenxchg(dst, "@oname", strbtrim(strtmp(oldmsg->By())), 34, 2,
|
||||||
msg->by_me(), msg->by_you()))
|
msg->by_me(), msg->by_you()))
|
||||||
continue;
|
continue;
|
||||||
@ -179,6 +170,8 @@ char* TokenXlat(int mode, char* input, GMsg* msg, GMsg* oldmsg, int __origarea)
|
|||||||
continue;
|
continue;
|
||||||
if(tokenxchg(dst, "@otime", otime))
|
if(tokenxchg(dst, "@otime", otime))
|
||||||
continue;
|
continue;
|
||||||
|
if(tokenxchg(dst, "@odtime", odtime))
|
||||||
|
continue;
|
||||||
if(tokenxchg(dst, "@otzoffset", (oldmsg->tzutc == -32767) ? "" : (sprintf(buf, " %+05d", oldmsg->tzutc), buf)))
|
if(tokenxchg(dst, "@otzoffset", (oldmsg->tzutc == -32767) ? "" : (sprintf(buf, " %+05d", oldmsg->tzutc), buf)))
|
||||||
continue;
|
continue;
|
||||||
if(tokenxchg(dst, "@ofrom", *oldmsg->ifrom ? oldmsg->ifrom : oldmsg->By()))
|
if(tokenxchg(dst, "@ofrom", *oldmsg->ifrom ? oldmsg->ifrom : oldmsg->By()))
|
||||||
@ -189,20 +182,6 @@ char* TokenXlat(int mode, char* input, GMsg* msg, GMsg* oldmsg, int __origarea)
|
|||||||
continue;
|
continue;
|
||||||
if(tokenxchg(dst, "@omsgid", *msg->replys ? msg->replys : ""))
|
if(tokenxchg(dst, "@omsgid", *msg->replys ? msg->replys : ""))
|
||||||
continue;
|
continue;
|
||||||
if(origareaisinet) {
|
|
||||||
if(tokenxchg(dst, "@daddr", oldmsg->iaddr, 19, 1, 0))
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if(tokenxchg(dst, "@daddr", oldmsg->dest.make_string(buf, domain_requested(dst+6) ? oldmsg->ddom : NULL), 19, 1, 0))
|
|
||||||
continue;
|
|
||||||
if(strnieql(dst, "@d3daddr", 8)) {
|
|
||||||
ftn_addr boss = oldmsg->dest;
|
|
||||||
boss.point = 0;
|
|
||||||
tokenxchg(dst, "@d3daddr", boss.make_string(buf, domain_requested(dst+8) ? oldmsg->ddom : NULL), 19, 1, 0);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(tokenxchg(dst, "@dname", strbtrim(strtmp(oldmsg->To())), 34, 3,
|
if(tokenxchg(dst, "@dname", strbtrim(strtmp(oldmsg->To())), 34, 3,
|
||||||
msg->to_me(), msg->to_you(), oldmsg->to_all()))
|
msg->to_me(), msg->to_you(), oldmsg->to_all()))
|
||||||
continue;
|
continue;
|
||||||
@ -212,18 +191,66 @@ char* TokenXlat(int mode, char* input, GMsg* msg, GMsg* oldmsg, int __origarea)
|
|||||||
if(tokenxchg(dst, "@dlname", strrword(oldmsg->To()), 0, 3,
|
if(tokenxchg(dst, "@dlname", strrword(oldmsg->To()), 0, 3,
|
||||||
msg->to_me(), msg->to_you(), oldmsg->to_all()))
|
msg->to_me(), msg->to_you(), oldmsg->to_all()))
|
||||||
continue;
|
continue;
|
||||||
|
if(origareaisinet) {
|
||||||
|
if(tokenxchg(dst, "@oaddr", oldmsg->iorig, 19, 1, 0))
|
||||||
|
continue;
|
||||||
|
if(tokenxchg(dst, "@daddr", oldmsg->iaddr, 19, 1, 0))
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if(currareaisinet) {
|
if(currareaisinet) {
|
||||||
|
if(tokenxchg(dst, "@caddr", AA->Internetaddress(), 19, 1, 0))
|
||||||
|
continue;
|
||||||
|
if(tokenxchg(dst, "@faddr", msg->iorig, 19, 1, 0))
|
||||||
|
continue;
|
||||||
if(tokenxchg(dst, "@taddr", msg->iaddr, 19, 1, 0))
|
if(tokenxchg(dst, "@taddr", msg->iaddr, 19, 1, 0))
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else {
|
if((not origareaisinet or not currareaisinet) and (strlen(dst) >= 6)) {
|
||||||
if(tokenxchg(dst, "@taddr", msg->dest.make_string(buf, domain_requested(dst+6) ? msg->ddom : NULL), 19, 1, 0))
|
bool dr = domain_requested(dst, 6);
|
||||||
continue;
|
if(not origareaisinet) {
|
||||||
if(strnieql(dst, "@t3daddr", 8)) {
|
if(tokenxchg(dst, "@oaddr", oldmsg->orig.make_string(buf, dr ? oldmsg->odom : NULL), 19, 1, 0))
|
||||||
ftn_addr boss = msg->dest;
|
continue;
|
||||||
boss.point = 0;
|
if(strnieql(dst, "@o3daddr", 8)) {
|
||||||
tokenxchg(dst, "@t3daddr", boss.make_string(buf, domain_requested(dst+8) ? msg->ddom : NULL), 19, 1, 0);
|
ftn_addr boss = oldmsg->orig;
|
||||||
continue;
|
boss.point = 0;
|
||||||
|
tokenxchg(dst, "@o3daddr", boss.make_string(buf, domain_requested(dst, 8) ? oldmsg->odom : NULL), 19, 1, 0);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if(tokenxchg(dst, "@daddr", oldmsg->dest.make_string(buf, dr ? oldmsg->ddom : NULL), 19, 1, 0))
|
||||||
|
continue;
|
||||||
|
if(strnieql(dst, "@d3daddr", 8)) {
|
||||||
|
ftn_addr boss = oldmsg->dest;
|
||||||
|
boss.point = 0;
|
||||||
|
tokenxchg(dst, "@d3daddr", boss.make_string(buf, domain_requested(dst, 8) ? oldmsg->ddom : NULL), 19, 1, 0);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(not currareaisinet) {
|
||||||
|
const gaka &caka=AA->Aka();
|
||||||
|
if(tokenxchg(dst, "@caddr", caka.addr.make_string(buf, dr ? caka.domain : NULL), 19, 1, 0))
|
||||||
|
continue;
|
||||||
|
if(strnieql(dst, "@c3daddr", 8)) {
|
||||||
|
ftn_addr boss = caka.addr;
|
||||||
|
boss.point = 0;
|
||||||
|
tokenxchg(dst, "@c3daddr", boss.make_string(buf, domain_requested(dst, 8) ? caka.domain : NULL), 19, 1, 0);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if(tokenxchg(dst, "@taddr", msg->dest.make_string(buf, dr ? msg->ddom : NULL), 19, 1, 0))
|
||||||
|
continue;
|
||||||
|
if(strnieql(dst, "@t3daddr", 8)) {
|
||||||
|
ftn_addr boss = msg->dest;
|
||||||
|
boss.point = 0;
|
||||||
|
tokenxchg(dst, "@t3daddr", boss.make_string(buf, domain_requested(dst, 8) ? msg->ddom : NULL), 19, 1, 0);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if(tokenxchg(dst, "@faddr", msg->orig.make_string(buf, dr ? msg->odom : NULL), 19, 1, 0))
|
||||||
|
continue;
|
||||||
|
if(strnieql(dst, "@f3daddr", 8)) {
|
||||||
|
ftn_addr boss = msg->orig;
|
||||||
|
boss.point = 0;
|
||||||
|
tokenxchg(dst, "@f3daddr", boss.make_string(buf, domain_requested(dst, 8) ? msg->odom : NULL), 19, 1, 0);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(tokenxchg(dst, "@tname", strbtrim(strtmp(msg->To())), 34, 3,
|
if(tokenxchg(dst, "@tname", strbtrim(strtmp(msg->To())), 34, 3,
|
||||||
@ -235,21 +262,6 @@ char* TokenXlat(int mode, char* input, GMsg* msg, GMsg* oldmsg, int __origarea)
|
|||||||
if(tokenxchg(dst, "@tlname", strrword(msg->To()), 0, 3,
|
if(tokenxchg(dst, "@tlname", strrword(msg->To()), 0, 3,
|
||||||
false, false, msg->to_all()))
|
false, false, msg->to_all()))
|
||||||
continue;
|
continue;
|
||||||
if(currareaisinet) {
|
|
||||||
if(tokenxchg(dst, "@caddr", AA->Internetaddress(), 19, 1, 0))
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
const gaka &caka=AA->Aka();
|
|
||||||
if(tokenxchg(dst, "@caddr", caka.addr.make_string(buf, domain_requested(dst+6) ? caka.domain : NULL), 19, 1, 0))
|
|
||||||
continue;
|
|
||||||
if(strnieql(dst, "@c3daddr", 8)) {
|
|
||||||
ftn_addr boss = caka.addr;
|
|
||||||
boss.point = 0;
|
|
||||||
tokenxchg(dst, "@c3daddr", boss.make_string(buf, domain_requested(dst+8) ? caka.domain : NULL), 19, 1, 0);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(tokenxchg(dst, "@cname", AA->Username().name, 34))
|
if(tokenxchg(dst, "@cname", AA->Username().name, 34))
|
||||||
continue;
|
continue;
|
||||||
if(tokenxchg(dst, "@cfname", strlword(strcpy(buf, AA->Username().name))))
|
if(tokenxchg(dst, "@cfname", strlword(strcpy(buf, AA->Username().name))))
|
||||||
@ -264,22 +276,10 @@ char* TokenXlat(int mode, char* input, GMsg* msg, GMsg* oldmsg, int __origarea)
|
|||||||
continue;
|
continue;
|
||||||
if(tokenxchg(dst, "@ctime", ctime))
|
if(tokenxchg(dst, "@ctime", ctime))
|
||||||
continue;
|
continue;
|
||||||
|
if(tokenxchg(dst, "@cdtime", cdtime))
|
||||||
|
continue;
|
||||||
if(tokenxchg(dst, "@ctzoffset", AA->Usetzutc() ? (sprintf(buf, " %+05d", tzoffset()), buf) : ""))
|
if(tokenxchg(dst, "@ctzoffset", AA->Usetzutc() ? (sprintf(buf, " %+05d", tzoffset()), buf) : ""))
|
||||||
continue;
|
continue;
|
||||||
if(currareaisinet) {
|
|
||||||
if(tokenxchg(dst, "@faddr", msg->iorig, 19, 1, 0))
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if(tokenxchg(dst, "@faddr", msg->orig.make_string(buf, domain_requested(dst+6) ? msg->odom : NULL), 19, 1, 0))
|
|
||||||
continue;
|
|
||||||
if(strnieql(dst, "@f3daddr", 8)) {
|
|
||||||
ftn_addr boss = msg->orig;
|
|
||||||
boss.point = 0;
|
|
||||||
tokenxchg(dst, "@f3daddr", boss.make_string(buf, domain_requested(dst+8) ? msg->odom : NULL), 19, 1, 0);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(tokenxchg(dst, "@fname", strbtrim(strtmp(msg->By())), 34))
|
if(tokenxchg(dst, "@fname", strbtrim(strtmp(msg->By())), 34))
|
||||||
continue;
|
continue;
|
||||||
if(tokenxchg(dst, "@ffname", strlword(msg->By())))
|
if(tokenxchg(dst, "@ffname", strlword(msg->By())))
|
||||||
|
@ -203,11 +203,14 @@ int TemplateToText(int mode, GMsg* msg, GMsg* oldmsg, const char* tpl, int origa
|
|||||||
if(fp) {
|
if(fp) {
|
||||||
fputs("@header= @oecho (@caddr) @align{79}{=}\n", fp);
|
fputs("@header= @oecho (@caddr) @align{79}{=}\n", fp);
|
||||||
fputs("@header Msg : @msgno of @msgs@align{44}@attr\n", fp);
|
fputs("@header Msg : @msgno of @msgs@align{44}@attr\n", fp);
|
||||||
if(AA->isinternet())
|
if(AA->isinternet()) {
|
||||||
fputs("@header From : @ofrom@align{64}@odate @otime\n", fp);
|
fputs("@header From : @ofrom@align{64}@odtime\n", fp);
|
||||||
else
|
fputs("@header From : @oto\n", fp);
|
||||||
fputs("@header From : @oname@align{44}@oaddr@align{64}@odate @otime\n", fp);
|
}
|
||||||
fputs("@header To : @dname\n", fp);
|
else {
|
||||||
|
fputs("@header From : @oname@align{44}@oaddr@align{64}@odtime\n", fp);
|
||||||
|
fputs("@header To : @dname\n", fp);
|
||||||
|
}
|
||||||
fputs("@header Subj : @subject\n", fp);
|
fputs("@header Subj : @subject\n", fp);
|
||||||
fputs("@header@align{79}{=}\n", fp);
|
fputs("@header@align{79}{=}\n", fp);
|
||||||
fputs("@moved* Replying to a msg in @oecho (@odesc)\n@moved\n", fp);
|
fputs("@moved* Replying to a msg in @oecho (@odesc)\n@moved\n", fp);
|
||||||
|
@ -194,9 +194,9 @@ void GMsgHeaderView::Paint() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(not area->isecho() and *msg->ifrom and *msg->realby)
|
if((not area->isecho() or area->isnewsgroup()) and *msg->ifrom and *msg->realby)
|
||||||
strxmerge(buf, (namewidth+nodewidth), msg->realby, " <", msg->iorig, ">", NULL);
|
strxmerge(buf, (namewidth+nodewidth), msg->realby, " <", msg->iorig, ">", NULL);
|
||||||
else if(not area->isecho() and *msg->ifrom and *msg->iorig)
|
else if((not area->isecho() or area->isnewsgroup()) and *msg->ifrom and *msg->iorig)
|
||||||
strxcpy(buf, msg->iorig, (namewidth+nodewidth));
|
strxcpy(buf, msg->iorig, (namewidth+nodewidth));
|
||||||
else
|
else
|
||||||
strxcpy(buf, msg->By(), (namewidth+nodewidth));
|
strxcpy(buf, msg->By(), (namewidth+nodewidth));
|
||||||
@ -217,7 +217,7 @@ void GMsgHeaderView::Paint() {
|
|||||||
// Generate dest node data
|
// Generate dest node data
|
||||||
nodegenerated = false;
|
nodegenerated = false;
|
||||||
if(not area->isinternet()) {
|
if(not area->isinternet()) {
|
||||||
if(area->isecho() or not (*msg->ito and (*msg->realto or *msg->idest))) {
|
if(not (*msg->ito and (*msg->realto or *msg->idest))) {
|
||||||
if(msg->dest.net and area->isnet()) {
|
if(msg->dest.net and area->isnet()) {
|
||||||
msg->dest.make_string(buf);
|
msg->dest.make_string(buf);
|
||||||
if(msg->odest.net) {
|
if(msg->odest.net) {
|
||||||
@ -232,9 +232,9 @@ void GMsgHeaderView::Paint() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(not area->isecho() and *msg->ito and *msg->realto)
|
if((not area->isecho() or area->isnewsgroup()) and *msg->ito and *msg->realto)
|
||||||
strxmerge(buf, (namewidth+nodewidth), msg->realto, " <", msg->idest, ">", NULL);
|
strxmerge(buf, (namewidth+nodewidth), msg->realto, " <", msg->idest, ">", NULL);
|
||||||
else if(not area->isecho() and *msg->ito and *msg->idest)
|
else if((not area->isecho() or area->isnewsgroup()) and *msg->ito and *msg->idest)
|
||||||
strxcpy(buf, msg->idest, (namewidth+nodewidth));
|
strxcpy(buf, msg->idest, (namewidth+nodewidth));
|
||||||
else
|
else
|
||||||
strxcpy(buf, msg->To(), (namewidth+nodewidth));
|
strxcpy(buf, msg->To(), (namewidth+nodewidth));
|
||||||
|
@ -92,8 +92,6 @@ public:
|
|||||||
char* inreplyto; // Internet In-Reply-To (allocated)
|
char* inreplyto; // Internet In-Reply-To (allocated)
|
||||||
char* references; // Internet References (allocated)
|
char* references; // Internet References (allocated)
|
||||||
|
|
||||||
int line_width; // Line width used
|
|
||||||
|
|
||||||
const char* areakludgeid; // Echoid from AREA: kludge or NULL
|
const char* areakludgeid; // Echoid from AREA: kludge or NULL
|
||||||
|
|
||||||
char* By() { return *realby ? realby : by; }
|
char* By() { return *realby ? realby : by; }
|
||||||
|
@ -207,7 +207,7 @@
|
|||||||
#define Key_S_Bsl 0x2B7C // <\ |> - - - -
|
#define Key_S_Bsl 0x2B7C // <\ |> - - - -
|
||||||
#define Key_S_Rbr 0x1B7D // <] }> - - - -
|
#define Key_S_Rbr 0x1B7D // <] }> - - - -
|
||||||
#define Key_S_Grv 0x297E // <` ~> - - - -
|
#define Key_S_Grv 0x297E // <` ~> - - - -
|
||||||
#define Key_S_Num5 0x4C35 // S <Cent 5> N - - -
|
#define Key_S_5Num 0x4C35 // S <Cent 5> N - - -
|
||||||
#define Key_S_F1 0x5400 // S <F1> - - - -
|
#define Key_S_F1 0x5400 // S <F1> - - - -
|
||||||
#define Key_S_F2 0x5500 // S <F2> - - - -
|
#define Key_S_F2 0x5500 // S <F2> - - - -
|
||||||
#define Key_S_F3 0x5600 // S <F3> - - - -
|
#define Key_S_F3 0x5600 // S <F3> - - - -
|
||||||
|
Reference in New Issue
Block a user