Changes by 2000/10/22
This commit is contained in:
parent
8be1e735f6
commit
0ba6da729d
@ -57,6 +57,11 @@ CPPFLAGS+=-D__USE_NCURSES__
|
|||||||
STDLIBS+=-lncurses
|
STDLIBS+=-lncurses
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# force not to use coprocessor features in DOS, if you have one you may remove this
|
||||||
|
ifneq ($(DJGPP),)
|
||||||
|
CFLAGS+=-m386 -mno-80387 -mno-fp-ret-in-387 -mno-fancy-math-387
|
||||||
|
endif
|
||||||
|
|
||||||
BIN=bin
|
BIN=bin
|
||||||
OBJPATH=obj
|
OBJPATH=obj
|
||||||
LIBPATH=lib
|
LIBPATH=lib
|
||||||
|
@ -9,12 +9,12 @@ To compile GoldED+ and utilities you'll need:
|
|||||||
- GNU C++ newer than 2.8.x, gcc 2.95.2 recommended
|
- GNU C++ newer than 2.8.x, gcc 2.95.2 recommended
|
||||||
- GNU make and GNU sed
|
- GNU make and GNU sed
|
||||||
- vi, emacs, or any other editor you like
|
- vi, emacs, or any other editor you like
|
||||||
- boldness ;-)
|
- beer or bear on your choice ;-)
|
||||||
|
|
||||||
--- MINGW32 ONLY ---
|
--- MINGW32 ONLY ---
|
||||||
Remove alloc.h from the $(include)/mingw32 to avoid unpredictable problems.
|
Remove alloc.h from the $(include)/mingw32 to avoid unpredictable problems.
|
||||||
Change arguments to sopen (to be `const char *' instead of `char *') and
|
Change arguments to sopen (to be `const char *' instead of `char *') and
|
||||||
atexit (to be `void (func *)(void)' instead of `void (func *)()'.
|
atexit (to be `void (func *)(void)' instead of `void (func *)()').
|
||||||
------ COMMON ------
|
------ COMMON ------
|
||||||
|
|
||||||
First, edit GNUmakef.def for the preferrable compilation options.
|
First, edit GNUmakef.def for the preferrable compilation options.
|
||||||
@ -22,14 +22,10 @@ First, edit GNUmakef.def for the preferrable compilation options.
|
|||||||
Now go to golded3 and copy mygolded.__h to mygolded.h and adjust it for
|
Now go to golded3 and copy mygolded.__h to mygolded.h and adjust it for
|
||||||
yourself (put your name, FTN address and e-mail). Goto root again.
|
yourself (put your name, FTN address and e-mail). Goto root again.
|
||||||
|
|
||||||
Pray.
|
Exec 'make' (or `gmake' on BSD) and drink beer or play with bear until
|
||||||
|
compilation in progress.
|
||||||
Exec 'make' (or `gmake' on BSD). Wait. (If your version of gcc does not
|
|
||||||
support strftime format checking you will need to manually comment
|
|
||||||
__attribute__ definition on strftimei function in goldlib/gall/gtimall.h.)
|
|
||||||
|
|
||||||
ls bin/
|
ls bin/
|
||||||
|
|
||||||
You have to get ged{short-patform-name}, gn{short-patform-name}, and
|
You have to get ged{short-patform-name}, gn{short-patform-name}, and
|
||||||
rddt{short-patform-name}. If so, you did it!
|
rddt{short-patform-name}. If so, you did it!
|
||||||
|
|
||||||
|
@ -12,6 +12,10 @@ ______________________________________________________________________
|
|||||||
Notes for GoldED+ 1.1.4.7, September 24 2000
|
Notes for GoldED+ 1.1.4.7, September 24 2000
|
||||||
______________________________________________________________________
|
______________________________________________________________________
|
||||||
|
|
||||||
|
- Fixed some bugs in undo feature.
|
||||||
|
|
||||||
|
- Fixed empty message creation (used in attach, filerequest, etc.)
|
||||||
|
|
||||||
! Message header now translated with default rules in most cases. If
|
! Message header now translated with default rules in most cases. If
|
||||||
there's something wrong with it (f.e. double decoding or no decoding
|
there's something wrong with it (f.e. double decoding or no decoding
|
||||||
at all) please report. Also, original message header should be
|
at all) please report. Also, original message header should be
|
||||||
|
@ -4,9 +4,9 @@ This file is not up to date, some wishes still in my netmail/email
|
|||||||
folders.
|
folders.
|
||||||
______________________________________________________________________
|
______________________________________________________________________
|
||||||
|
|
||||||
GoldED+ plans. As always I don't guarantee order of implementing
|
GoldED+ plans. As always there's no any guarantee of feature
|
||||||
features and that to do list will be implemented at all. Any help will
|
implementation order and that to do list will be implemented at all.
|
||||||
be appreciated.
|
Any help will be appreciated.
|
||||||
______________________________________________________________________
|
______________________________________________________________________
|
||||||
|
|
||||||
To do:
|
To do:
|
||||||
@ -20,7 +20,6 @@ To do:
|
|||||||
* Refresh message header after calling externutil.
|
* Refresh message header after calling externutil.
|
||||||
* Try to save position in message after printing, changing xlat table,
|
* Try to save position in message after printing, changing xlat table,
|
||||||
etc.
|
etc.
|
||||||
* Wrapping /lnx screen output to ncurses (almost done).
|
|
||||||
* Major xlat/recode engine update (in progress).
|
* Major xlat/recode engine update (in progress).
|
||||||
* CUI in /lnx and input prompts.
|
* CUI in /lnx and input prompts.
|
||||||
* Activating built-in MIME-QP convertor by key (on whole message).
|
* Activating built-in MIME-QP convertor by key (on whole message).
|
||||||
@ -43,12 +42,9 @@ ______________________________________________________________________
|
|||||||
|
|
||||||
To fix:
|
To fix:
|
||||||
|
|
||||||
* Test SOS sound in DOS version.
|
|
||||||
* UUdecoder not 100% reliable: any volunteers for uulib maintaining?
|
* UUdecoder not 100% reliable: any volunteers for uulib maintaining?
|
||||||
* Adding e-mail's to addressbook from UUCP gated messages.
|
* Adding e-mail's to addressbook from UUCP gated messages.
|
||||||
* QUOTEHARDTERM is always NO.
|
* QUOTEHARDTERM is always NO.
|
||||||
* Under sertain circumstances quotes incorrectly reflowed (seems like
|
|
||||||
it depends on QUOTEMARGIN keyword).
|
|
||||||
* Need some workarounds on -install feature under Linux (UNIX).
|
* Need some workarounds on -install feature under Linux (UNIX).
|
||||||
* Win32 (only when runned under Win9x) version does not support case
|
* Win32 (only when runned under Win9x) version does not support case
|
||||||
insensitive search of regexp's for high part of ASCII table. That's
|
insensitive search of regexp's for high part of ASCII table. That's
|
||||||
|
@ -108,7 +108,7 @@ int DoCarboncopy(GMsg* msg, GMsg** carbon) {
|
|||||||
|
|
||||||
// Insert empty line at the top first for practical purposes
|
// Insert empty line at the top first for practical purposes
|
||||||
|
|
||||||
newline = new Line("");
|
newline = new Line();
|
||||||
throw_xnew(newline);
|
throw_xnew(newline);
|
||||||
msg->lin = newline = line = InsertLine(newline, msg->lin, DIR_PREV);
|
msg->lin = newline = line = InsertLine(newline, msg->lin, DIR_PREV);
|
||||||
|
|
||||||
@ -330,7 +330,7 @@ void DoCrosspost(GMsg* msg, vector<int> &postareas) {
|
|||||||
|
|
||||||
// Insert empty line at the top first for practical purposes
|
// Insert empty line at the top first for practical purposes
|
||||||
|
|
||||||
newline = new Line("");
|
newline = new Line();
|
||||||
throw_xnew(newline);
|
throw_xnew(newline);
|
||||||
msg->lin = newline = InsertLine(newline, msg->lin, DIR_PREV);
|
msg->lin = newline = InsertLine(newline, msg->lin, DIR_PREV);
|
||||||
|
|
||||||
|
@ -222,17 +222,14 @@ char* get_informative_string(char* buf) {
|
|||||||
void DoKludges(int mode, GMsg* msg, bool attronly) {
|
void DoKludges(int mode, GMsg* msg, bool attronly) {
|
||||||
|
|
||||||
char* buf = (char*)throw_malloc(4096);
|
char* buf = (char*)throw_malloc(4096);
|
||||||
char buf2[356];
|
char* buf2 = (char*)throw_malloc(1024);
|
||||||
Line* line = msg->lin;
|
Line* line;
|
||||||
Line* newline;
|
|
||||||
|
|
||||||
int __tzoffset = tzoffset();
|
|
||||||
|
|
||||||
// Insert empty line at the top for practical purposes
|
// Insert empty line at the top for practical purposes
|
||||||
|
|
||||||
newline = new Line("");
|
line = new Line();
|
||||||
throw_xnew(newline);
|
throw_xnew(line);
|
||||||
newline = line = InsertLine(newline, line, DIR_PREV);
|
msg->lin = line = InsertLine(line, msg->lin, DIR_PREV);
|
||||||
|
|
||||||
// Strip all the kludges we insert ourselves
|
// Strip all the kludges we insert ourselves
|
||||||
|
|
||||||
@ -252,7 +249,7 @@ void DoKludges(int mode, GMsg* msg, bool attronly) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
line = newline;
|
line = msg->lin;
|
||||||
|
|
||||||
if(attronly) {
|
if(attronly) {
|
||||||
if(AA->isnet())
|
if(AA->isnet())
|
||||||
@ -268,10 +265,8 @@ void DoKludges(int mode, GMsg* msg, bool attronly) {
|
|||||||
|
|
||||||
if(AA->isnet()) {
|
if(AA->isnet()) {
|
||||||
|
|
||||||
Line* firstline = FirstLine(line);
|
// 123456789012345678901234567
|
||||||
firstline = firstline->next;
|
if(line->next and strneql(line->next->txt.c_str(), "-----BEGIN PGP MESSAGE-----", 27)) {
|
||||||
// 123456789012345678901234567
|
|
||||||
if(strneql(firstline->txt.c_str(), "-----BEGIN PGP MESSAGE-----", 27)) {
|
|
||||||
line = AddKludge(line, "\001ENC: PGP");
|
line = AddKludge(line, "\001ENC: PGP");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -364,6 +359,7 @@ void DoKludges(int mode, GMsg* msg, bool attronly) {
|
|||||||
|
|
||||||
// The TZUTC kludge for timezone info
|
// The TZUTC kludge for timezone info
|
||||||
if(AA->Usetzutc()) {
|
if(AA->Usetzutc()) {
|
||||||
|
int __tzoffset = tzoffset();
|
||||||
sprintf(buf, "\001TZUTC: %0*d", (__tzoffset < 0) ? 5 : 4, __tzoffset);
|
sprintf(buf, "\001TZUTC: %0*d", (__tzoffset < 0) ? 5 : 4, __tzoffset);
|
||||||
line = AddKludge(line, buf);
|
line = AddKludge(line, buf);
|
||||||
line->kludge = GKLUD_KNOWN;
|
line->kludge = GKLUD_KNOWN;
|
||||||
@ -457,7 +453,7 @@ void DoKludges(int mode, GMsg* msg, bool attronly) {
|
|||||||
tm->tm_hour, tm->tm_min, tm->tm_sec
|
tm->tm_hour, tm->tm_min, tm->tm_sec
|
||||||
);
|
);
|
||||||
if(AA->Usetzutc())
|
if(AA->Usetzutc())
|
||||||
sprintf(buf + strlen(buf), " %+05d", __tzoffset);
|
sprintf(buf + strlen(buf), " %+05d", tzoffset());
|
||||||
|
|
||||||
line = AddKludge(line, buf);
|
line = AddKludge(line, buf);
|
||||||
line->kludge = GKLUD_RFC;
|
line->kludge = GKLUD_RFC;
|
||||||
@ -552,11 +548,12 @@ void DoKludges(int mode, GMsg* msg, bool attronly) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Reset line pointer
|
// Reset line pointer
|
||||||
msg->lin = DeleteLine(FirstLine(line));
|
msg->lin = DeleteLine(msg->lin);
|
||||||
|
|
||||||
MsgLineReIndex(msg, YES, YES, YES);
|
MsgLineReIndex(msg, YES, YES, YES);
|
||||||
|
|
||||||
throw_free(buf);
|
throw_free(buf);
|
||||||
|
throw_free(buf2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -686,10 +686,10 @@ Line* IEclass::wrapit(Line** __currline, uint* __curr_col, uint* __curr_row, int
|
|||||||
|
|
||||||
// Check if we hit leading spaces
|
// Check if we hit leading spaces
|
||||||
int _spacepos = _wrappos;
|
int _spacepos = _wrappos;
|
||||||
if(_spacepos > 0) {
|
while(_spacepos > 0) {
|
||||||
do {
|
_spacepos--;
|
||||||
_spacepos--;
|
if (_thisline->txt[_spacepos] != ' ')
|
||||||
} while(_spacepos > 0 and _thisline->txt[_spacepos] == ' ');
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Did we search all the way back to the beginning of the line?
|
// Did we search all the way back to the beginning of the line?
|
||||||
@ -728,7 +728,7 @@ Line* IEclass::wrapit(Line** __currline, uint* __curr_col, uint* __curr_row, int
|
|||||||
// Saves pointer to a line where from the wrapped part was copied, its begining
|
// Saves pointer to a line where from the wrapped part was copied, its begining
|
||||||
// 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, _wrapline, _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
|
||||||
@ -780,7 +780,7 @@ Line* IEclass::wrapit(Line** __currline, uint* __curr_col, uint* __curr_row, int
|
|||||||
|
|
||||||
_nextline->txt.insert(_quotelen, _thisline->txt.substr(_wrappos));
|
_nextline->txt.insert(_quotelen, _thisline->txt.substr(_wrappos));
|
||||||
|
|
||||||
Undo->PushItem(EDIT_UNDO_WRAP_TEXT|BATCH_MODE, _nextline, 0, _quotelen+_wraplen);
|
Undo->PushItem(EDIT_UNDO_WRAP_TEXT|BATCH_MODE, _thisline, 0, _quotelen+_wraplen);
|
||||||
|
|
||||||
// Make sure the type of the line is correct
|
// Make sure the type of the line is correct
|
||||||
setlinetype(_nextline);
|
setlinetype(_nextline);
|
||||||
@ -835,9 +835,9 @@ Line* IEclass::wrapit(Line** __currline, uint* __curr_col, uint* __curr_row, int
|
|||||||
}
|
}
|
||||||
|
|
||||||
// If we are on the cursor line, check if the cursor char was wrapped
|
// If we are on the cursor line, check if the cursor char was wrapped
|
||||||
if(_thisrow == *__curr_row and _thisline->txt.length() <= *__curr_col) {
|
if(_thisrow == _cursrow and _thisline->txt.length() <= _curscol) {
|
||||||
_curscol = _quotelen + ((*__curr_col > _wrappos) ? *__curr_col-_wrappos : 0);
|
_curscol = _quotelen + ((_curscol > _wrappos) ? _curscol-_wrappos : 0);
|
||||||
_cursrow++, thisrow++;
|
_cursrow++;
|
||||||
UndoItem* i = Undo->last_item;
|
UndoItem* i = Undo->last_item;
|
||||||
do { i = i->prev; } while(i->action & BATCH_MODE);
|
do { i = i->prev; } while(i->action & BATCH_MODE);
|
||||||
if(i->col.num >= i->line->txt.length()) {
|
if(i->col.num >= i->line->txt.length()) {
|
||||||
@ -880,18 +880,21 @@ Line* IEclass::wrapit(Line** __currline, uint* __curr_col, uint* __curr_row, int
|
|||||||
|
|
||||||
// Move to the next line if the cursor was wrapped
|
// Move to the next line if the cursor was wrapped
|
||||||
if(_cursrow != *__curr_row) {
|
if(_cursrow != *__curr_row) {
|
||||||
*__currline = (*__currline)->next;
|
int i = *__curr_row;
|
||||||
|
while ((i++ != _cursrow) and (__currline != NULL))
|
||||||
|
*__currline = (*__currline)->next;
|
||||||
if(_cursrow > maxrow) {
|
if(_cursrow > maxrow) {
|
||||||
_cursrow = maxrow;
|
_cursrow = maxrow;
|
||||||
scrollup(mincol, minrow, maxcol, maxrow);
|
if(__display) {
|
||||||
displine(*__currline, row);
|
scrollup(mincol, minrow, maxcol, maxrow);
|
||||||
|
displine(*__currline, *__curr_row);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update cursor position
|
// Update cursor position
|
||||||
*__curr_row = _cursrow;
|
*__curr_row = _cursrow;
|
||||||
*__curr_col = _curscol;
|
*__curr_col = _curscol;
|
||||||
//thisrow = _cursrow;
|
|
||||||
|
|
||||||
GFTRK(NULL);
|
GFTRK(NULL);
|
||||||
|
|
||||||
@ -1200,7 +1203,7 @@ void IEclass::Newline() {
|
|||||||
// This line would be
|
// This line would be
|
||||||
// wrapped
|
// wrapped
|
||||||
|
|
||||||
Undo->PushItem(EDIT_UNDO_WRAP_TEXT|BATCH_MODE, currline, _quotelen, strlen(_splitbuf) - _quotelen);
|
Undo->PushItem(EDIT_UNDO_WRAP_TEXT|BATCH_MODE, currline->prev, _quotelen, strlen(_splitbuf) - _quotelen);
|
||||||
|
|
||||||
setlinetype(currline);
|
setlinetype(currline);
|
||||||
throw_free(_splitbuf);
|
throw_free(_splitbuf);
|
||||||
@ -2387,8 +2390,9 @@ void UndoStack::PushItem(uint action, Line* __line, uint __col, uint __len) {
|
|||||||
break;
|
break;
|
||||||
case EDIT_UNDO_DEL_TEXT:
|
case EDIT_UNDO_DEL_TEXT:
|
||||||
last_item->line = __line;
|
last_item->line = __line;
|
||||||
|
__col = last_item->col.num;
|
||||||
if(__len == NO_VALUE)
|
if(__len == NO_VALUE)
|
||||||
__len = strlen(__line->txt.c_str() + __col) + 1;
|
__len = __line->txt.length() - __col + 1;
|
||||||
throw_new(last_item->data.text_ptr = new(__len) text_item(__col, __len));
|
throw_new(last_item->data.text_ptr = new(__len) text_item(__col, __len));
|
||||||
memcpy(last_item->data.text_ptr->text, __line->txt.c_str() + __col, __len);
|
memcpy(last_item->data.text_ptr->text, __line->txt.c_str() + __col, __len);
|
||||||
break;
|
break;
|
||||||
@ -2518,21 +2522,21 @@ void UndoStack::PlayItem() {
|
|||||||
|
|
||||||
case EDIT_UNDO_TEXT: {
|
case EDIT_UNDO_TEXT: {
|
||||||
text_item* text_data = last_item->data.text_ptr;
|
text_item* text_data = last_item->data.text_ptr;
|
||||||
string& txt = currline->txt;
|
string *txt = &currline->txt;
|
||||||
switch(undo_action) {
|
switch(undo_action) {
|
||||||
case EDIT_UNDO_DEL_TEXT:
|
case EDIT_UNDO_DEL_TEXT:
|
||||||
txt.insert(text_data->col, text_data->text, text_data->len);
|
txt->insert(text_data->col, text_data->text, text_data->len);
|
||||||
throw_delete(text_data);
|
throw_delete(text_data);
|
||||||
break;
|
break;
|
||||||
case EDIT_UNDO_CUT_TEXT:
|
case EDIT_UNDO_CUT_TEXT:
|
||||||
txt.erase(last_item->col.num);
|
txt->erase(last_item->col.num);
|
||||||
break;
|
break;
|
||||||
case EDIT_UNDO_WRAP_TEXT:
|
case EDIT_UNDO_WRAP_TEXT:
|
||||||
txt.append(currline->next->txt.c_str()+text_data->col, text_data->len);
|
txt->append(currline->next->txt.c_str()+text_data->col, text_data->len);
|
||||||
txt = currline->next->txt;
|
txt = &currline->next->txt;
|
||||||
// fall through...
|
// fall through...
|
||||||
case EDIT_UNDO_INS_TEXT:
|
case EDIT_UNDO_INS_TEXT:
|
||||||
txt.erase(text_data->col, text_data->len);
|
txt->erase(text_data->col, text_data->len);
|
||||||
throw_delete(text_data);
|
throw_delete(text_data);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -375,39 +375,39 @@ static void w_brag() {
|
|||||||
char* logo[6];
|
char* logo[6];
|
||||||
|
|
||||||
#if defined(__USE_NCURSES__)
|
#if defined(__USE_NCURSES__)
|
||||||
logo[0] = throw_strdup(" 88 88 88 ");
|
logo[0] = throw_strdup(" 88 88 88 ");
|
||||||
logo[1] = throw_strdup(" oooooo oooooo 88 oooo88 oooooo oooo88 ");
|
logo[1] = throw_strdup(" oooooo oooooo 88 oooo88 oooooo oooo88 o ");
|
||||||
logo[2] = throw_strdup(" 88 88 88 88 88 88 88 88oo88 88 88 ");
|
logo[2] = throw_strdup(" 88 88 88 88 88 88 88 88oo88 88 88 o8o ");
|
||||||
logo[3] = throw_strdup(" 88oo88 88oo88 88 88oo88 88oooo 88oo88 ");
|
logo[3] = throw_strdup(" 88oo88 88oo88 88 88oo88 88oooo 88oo88 8 ");
|
||||||
logo[4] = throw_strdup(" oo 88 ");
|
logo[4] = throw_strdup(" oo 88 ");
|
||||||
logo[5] = throw_strdup(" 88oooooo88 ");
|
logo[5] = throw_strdup(" 88oooooo88 ");
|
||||||
#else
|
#else
|
||||||
if(W_BBRAG == 7) {
|
if(W_BBRAG == 7) {
|
||||||
logo[0] = throw_strdup(" ** ** ** ");
|
logo[0] = throw_strdup(" ** ** ** ");
|
||||||
logo[1] = throw_strdup(" ****** ****** ** ****** ****** ****** ");
|
logo[1] = throw_strdup(" ****** ****** ** ****** ****** ****** * ");
|
||||||
logo[2] = throw_strdup(" ** ** ** ** ** ** ** ****** ** ** ");
|
logo[2] = throw_strdup(" ** ** ** ** ** ** ** ****** ** ** *** ");
|
||||||
logo[3] = throw_strdup(" ****** ****** ** ****** ****** ****** ");
|
logo[3] = throw_strdup(" ****** ****** ** ****** ****** ****** * ");
|
||||||
logo[4] = throw_strdup(" ** ** ");
|
logo[4] = throw_strdup(" ** ** ");
|
||||||
logo[5] = throw_strdup(" ********** ");
|
logo[5] = throw_strdup(" ********** ");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
#if defined(__UNIX__)
|
#if defined(__UNIX__)
|
||||||
if(gvid_xterm) {
|
if(gvid_xterm) {
|
||||||
logo[0] = throw_strdup(" Ú¿ Ú¿ Ú¿ ");
|
logo[0] = throw_strdup(" Ú¿ Ú¿ Ú¿ ");
|
||||||
logo[1] = throw_strdup(" ÚÂÄÄ¿ ÚÂÄÄ¿ ³³ ÚÂÄÄ´³ ÚÂÄÄ¿ ÚÂÄÄ´³ ");
|
logo[1] = throw_strdup(" ÚÂÄÄ¿ ÚÂÄÄ¿ ³³ ÚÂÄÄ´³ ÚÂÄÄ¿ ÚÂÄÄ´³  ");
|
||||||
logo[2] = throw_strdup(" ³³ ³³ ³³ ³³ ³³ ³³ ³³ ³ÃÄÄÁÙ ³³ ³³ ");
|
logo[2] = throw_strdup(" ³³ ³³ ³³ ³³ ³³ ³³ ³³ ³ÃÄÄÁÙ ³³ ³³ ÃÅ´ ");
|
||||||
logo[3] = throw_strdup(" ÀÁÄÄ´³ ÀÁÄÄÁÙ ÀÙ ÀÁÄÄÁÙ ÀÁÄÄÁÙ ÀÁÄÄÁÙ ");
|
logo[3] = throw_strdup(" ÀÁÄÄ´³ ÀÁÄÄÁÙ ÀÙ ÀÁÄÄÁÙ ÀÁÄÄÁÙ ÀÁÄÄÁÙ Á ");
|
||||||
logo[4] = throw_strdup(" Ú¿ ³³ ");
|
logo[4] = throw_strdup(" Ú¿ ³³ ");
|
||||||
logo[5] = throw_strdup(" ÀÁÄÄÄÄÄÄÁÙ ");
|
logo[5] = throw_strdup(" ÀÁÄÄÄÄÄÄÁÙ ");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
#endif
|
#endif
|
||||||
logo[0] = throw_strdup(" É» É» É» ");
|
logo[0] = throw_strdup(" É» É» É» ");
|
||||||
logo[1] = throw_strdup(" ÉËÍÍË» ÉËÍÍË» ºº ÉËÍ͹º ÉËÍÍË» ÉËÍ͹º ");
|
logo[1] = throw_strdup(" ÉËÍÍË» ÉËÍÍË» ºº ÉËÍ͹º ÉËÍÍË» ÉËÍ͹º Ë ");
|
||||||
logo[2] = throw_strdup(" ºº ºº ºº ºº ºº ºº ºº ºÌÍÍʼ ºº ºº ");
|
logo[2] = throw_strdup(" ºº ºº ºº ºº ºº ºº ºº ºÌÍÍʼ ºº ºº Ìι ");
|
||||||
logo[3] = throw_strdup(" ÈÊÍ͹º ÈÊÍÍʼ ȼ ÈÊÍÍʼ ÈÊÍÍʼ ÈÊÍÍʼ ");
|
logo[3] = throw_strdup(" ÈÊÍ͹º ÈÊÍÍʼ ȼ ÈÊÍÍʼ ÈÊÍÍʼ ÈÊÍÍʼ Ê ");
|
||||||
logo[4] = throw_strdup(" É» ºº ");
|
logo[4] = throw_strdup(" É» ºº ");
|
||||||
logo[5] = throw_strdup(" ÈÊÍÍÍÍÍÍʼ ");
|
logo[5] = throw_strdup(" ÈÊÍÍÍÍÍÍʼ ");
|
||||||
#if defined(__UNIX__)
|
#if defined(__UNIX__)
|
||||||
}
|
}
|
||||||
gvid_boxcvt(logo[0]);
|
gvid_boxcvt(logo[0]);
|
||||||
@ -433,20 +433,20 @@ static void w_brag() {
|
|||||||
for(int n=0; n<6; n++)
|
for(int n=0; n<6; n++)
|
||||||
throw_free(logo[n]);
|
throw_free(logo[n]);
|
||||||
|
|
||||||
if((__gver_minor__ & 1))
|
|
||||||
wprints(5, 16, C_BRAGW, "THIS IS DEVELOPMENT VERSION");
|
|
||||||
|
|
||||||
wprints(4, 43-strlen(__gver_longpid__), C_BRAGW, __gver_longpid__);
|
wprints(4, 43-strlen(__gver_longpid__), C_BRAGW, __gver_longpid__);
|
||||||
|
|
||||||
wprints(0, 46, C_BRAGW, " GoldED+ Message Editor ");
|
wprints(5, 12, C_BRAGW, "http://golded-plus.sourceforge.net");
|
||||||
wprints(1, 46, C_BRAGW, " by Alexander S. Aganichev ");
|
|
||||||
wprints(2, 46, C_BRAGW, " Originally ");
|
wprints(0, 48, C_BRAGW, " GoldED+ Message Editor ");
|
||||||
wprints(3, 46, C_BRAGW, " by Odinn Sorensen ");
|
sprintf(buf, " Copyright (C) 1990-%s ",__gver_date__+7);
|
||||||
sprintf(buf, " Copyright (C) 1990-%s ",__gver_date__+7);
|
wprints(1, 48, C_BRAGW, buf);
|
||||||
wprints(5, 46, C_BRAGW, buf);
|
wprints(2, 48, C_BRAGW, " by Odinn Sorensen, ");
|
||||||
|
wprints(3, 48, C_BRAGW, " Alexander Aganichev, ");
|
||||||
|
wprints(4, 48, C_BRAGW, " Jacobo Tarrio ");
|
||||||
|
wprints(5, 48, C_BRAGW, " and others ");
|
||||||
|
|
||||||
whline(6, 0, MAXCOL-5, W_BBRAG, C_BRAGB);
|
whline(6, 0, MAXCOL-5, W_BBRAG, C_BRAGB);
|
||||||
wvline(0, 45, 7, W_BBRAG, C_BRAGB);
|
wvline(0, 47, 7, W_BBRAG, C_BRAGB);
|
||||||
|
|
||||||
sprintf(buf, "---*-*-*** %s ***-*-*---", __gver_releasename__);
|
sprintf(buf, "---*-*-*** %s ***-*-*---", __gver_releasename__);
|
||||||
wcenters(8, C_BRAGW, buf);
|
wcenters(8, C_BRAGW, buf);
|
||||||
@ -595,10 +595,9 @@ void Initialize(int argc, char* argv[]) {
|
|||||||
|
|
||||||
// Print commandline help and exit if requested
|
// Print commandline help and exit if requested
|
||||||
if(cmdlinehelp) {
|
if(cmdlinehelp) {
|
||||||
|
|
||||||
cout <<
|
cout <<
|
||||||
"Copyright (C) 1990-1999 Odinn Sorensen" << endl <<
|
"Copyright (C) 1990-2000 Odinn Sorensen, Alexander Aganichev, Jacobo Tarrio and" << endl <<
|
||||||
"Copyright (C) 1999-2000 Alexander S. Aganichev" << endl <<
|
" others" << endl <<
|
||||||
"-------------------------------------------------------------------------------" << endl <<
|
"-------------------------------------------------------------------------------" << endl <<
|
||||||
endl <<
|
endl <<
|
||||||
"Invocation: " << argv[0] << " [-options] [keystacking]" << endl <<
|
"Invocation: " << argv[0] << " [-options] [keystacking]" << endl <<
|
||||||
@ -1043,6 +1042,10 @@ void Initialize(int argc, char* argv[]) {
|
|||||||
WideUsername[w] = i->name;
|
WideUsername[w] = i->name;
|
||||||
WidePersonalmail = CFG->personalmail;
|
WidePersonalmail = CFG->personalmail;
|
||||||
WideDispsoftcr = CFG->switches.get(dispsoftcr);
|
WideDispsoftcr = CFG->switches.get(dispsoftcr);
|
||||||
|
|
||||||
|
if(CFG->loadlanguage[0])
|
||||||
|
LoadLanguage(CFG->loadlanguage);
|
||||||
|
|
||||||
if(AL.msgbases & MT_FIDO) {
|
if(AL.msgbases & MT_FIDO) {
|
||||||
update_statuslinef("%s Fido", LNG->Checking);
|
update_statuslinef("%s Fido", LNG->Checking);
|
||||||
FidoInit(CFG->fidolastread, CFG->switches.get(fidohwmarks), CFG->switches.get(fidonullfix), CFG->fidouserno, CFG->squishuserpath);
|
FidoInit(CFG->fidolastread, CFG->switches.get(fidohwmarks), CFG->switches.get(fidonullfix), CFG->fidouserno, CFG->squishuserpath);
|
||||||
@ -1109,9 +1112,6 @@ void Initialize(int argc, char* argv[]) {
|
|||||||
remove(AddPath(CFG->areapath, "DBRIDGE.EMW"));
|
remove(AddPath(CFG->areapath, "DBRIDGE.EMW"));
|
||||||
}
|
}
|
||||||
|
|
||||||
if(CFG->loadlanguage[0])
|
|
||||||
LoadLanguage(CFG->loadlanguage);
|
|
||||||
|
|
||||||
// Unlink windows
|
// Unlink windows
|
||||||
wunlink(W_READ);
|
wunlink(W_READ);
|
||||||
|
|
||||||
|
@ -1913,7 +1913,7 @@ void MakeLineIndex(GMsg* msg, int margin, bool header_recode) {
|
|||||||
|
|
||||||
char prev_ptr[3] = {"\xFF\xFF"};
|
char prev_ptr[3] = {"\xFF\xFF"};
|
||||||
|
|
||||||
ptr = msg->txt;
|
ptr = spanfeeds(msg->txt);
|
||||||
|
|
||||||
// Set default conversion table for area
|
// Set default conversion table for area
|
||||||
if(getvalue) {
|
if(getvalue) {
|
||||||
@ -1924,15 +1924,10 @@ void MakeLineIndex(GMsg* msg, int margin, bool header_recode) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
line = msg->lin = new Line();
|
if(*ptr != NUL) {
|
||||||
throw_xnew(line);
|
line = msg->lin = new Line();
|
||||||
|
throw_xnew(line);
|
||||||
|
|
||||||
ptr = spanfeeds(ptr);
|
|
||||||
|
|
||||||
if(*ptr == NUL) {
|
|
||||||
throw_xrelease(msg->lin);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
// Alloc space for one line
|
// Alloc space for one line
|
||||||
linetmp = (char*)throw_calloc(1, margin+512);
|
linetmp = (char*)throw_calloc(1, margin+512);
|
||||||
while(*ptr) {
|
while(*ptr) {
|
||||||
|
@ -70,8 +70,8 @@ int TemplateToText(int mode, GMsg* msg, GMsg* oldmsg, const char* tpl, int origa
|
|||||||
char* ptr;
|
char* ptr;
|
||||||
char* ptr2;
|
char* ptr2;
|
||||||
char* quote;
|
char* quote;
|
||||||
uint size = 0;
|
uint size;
|
||||||
uint pos = 0;
|
uint pos;
|
||||||
uint ctrlinfo;
|
uint ctrlinfo;
|
||||||
char textfile[GMAXPATH];
|
char textfile[GMAXPATH];
|
||||||
char indexfile[GMAXPATH];
|
char indexfile[GMAXPATH];
|
||||||
@ -281,10 +281,7 @@ int TemplateToText(int mode, GMsg* msg, GMsg* oldmsg, const char* tpl, int origa
|
|||||||
|
|
||||||
*buf = NUL;
|
*buf = NUL;
|
||||||
msg->txt = throw_strdup(buf);
|
msg->txt = throw_strdup(buf);
|
||||||
|
len = size = pos = 0;
|
||||||
len = strlen(msg->txt);
|
|
||||||
size += len;
|
|
||||||
pos += len;
|
|
||||||
|
|
||||||
while(fgets(buf, sizeof(buf), fp)) {
|
while(fgets(buf, sizeof(buf), fp)) {
|
||||||
ptr = strskip_wht(buf);
|
ptr = strskip_wht(buf);
|
||||||
|
@ -64,18 +64,18 @@ guserbase::guserbase() {
|
|||||||
entry.fidoaddr.reset();
|
entry.fidoaddr.reset();
|
||||||
entry.fidoaddr.zone = 2;
|
entry.fidoaddr.zone = 2;
|
||||||
entry.fidoaddr.net = 5020;
|
entry.fidoaddr.net = 5020;
|
||||||
entry.fidoaddr.node = 201;
|
entry.fidoaddr.node = 604;
|
||||||
entry.fidoaddr.point = 58;
|
entry.fidoaddr.point = 19;
|
||||||
strcpy(entry.iaddr, "asa@eed.miee.ru");
|
strcpy(entry.iaddr, "aaganichev@netscape.net");
|
||||||
entry.prefer_internet = YES;
|
entry.prefer_internet = YES;
|
||||||
entry.is_deleted = NO;
|
entry.is_deleted = NO;
|
||||||
strcpy(entry.pseudo, "As\'ka");
|
strcpy(entry.pseudo, "As\'ka");
|
||||||
strcpy(entry.organisation, "Hypercom Europe Limited, Inc.");
|
strcpy(entry.organisation, "GoldED+ Development Team");
|
||||||
strcpy(entry.snail1, "Zelenograd");
|
strcpy(entry.snail1, "Zelenograd");
|
||||||
strcpy(entry.snail2, "Moscow");
|
strcpy(entry.snail2, "Moscow");
|
||||||
strcpy(entry.snail3, "Russia");
|
strcpy(entry.snail3, "Russia");
|
||||||
entry.dataphone[0] = NUL;
|
entry.dataphone[0] = NUL;
|
||||||
strcpy(entry.voicephone, "+7-(095)-532-79-03");
|
strcpy(entry.voicephone, "+7-(095)-536-2374");
|
||||||
entry.faxphone[0] = NUL;
|
entry.faxphone[0] = NUL;
|
||||||
entry.firstdate = entry.lastdate = entry.times = 0;
|
entry.firstdate = entry.lastdate = entry.times = 0;
|
||||||
strcpy(entry.homepage, "http://asa.i-connect.ru");
|
strcpy(entry.homepage, "http://asa.i-connect.ru");
|
||||||
|
@ -106,7 +106,7 @@ static void v7unpack(char* src, char* dest, uint count) {
|
|||||||
|
|
||||||
strcat(dest, obuf);
|
strcat(dest, obuf);
|
||||||
}
|
}
|
||||||
#ifdef DEBUGx
|
#ifdef DEBUG
|
||||||
printf("{%s}", dest);
|
printf("{%s}", dest);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@ -297,7 +297,7 @@ void ftn_version7_nodelist_index::getindexkey() {
|
|||||||
key[keylength] = NUL;
|
key[keylength] = NUL;
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
printf("ÀÄÄÄ%02d:%02d <%04ld> ",
|
printf("`---%02d:%02d <%04ld> ",
|
||||||
inode,
|
inode,
|
||||||
block.ndx.inodeblk.indxcnt,
|
block.ndx.inodeblk.indxcnt,
|
||||||
block.ndx.inodeblk.indxref[inode-1].indxptr
|
block.ndx.inodeblk.indxref[inode-1].indxptr
|
||||||
@ -316,7 +316,7 @@ void ftn_version7_nodelist_index::getleafkey() {
|
|||||||
key[keylength] = NUL;
|
key[keylength] = NUL;
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
printf("ÀÄÄÄ%02d:%02d ", node, block.ndx.lnodeblk.indxcnt);
|
printf("`---%02d:%02d ", node, block.ndx.lnodeblk.indxcnt);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -147,8 +147,8 @@ public:
|
|||||||
Line* prev; // Pointer to previous line
|
Line* prev; // Pointer to previous line
|
||||||
Line* next; // Pointer to next line
|
Line* next; // Pointer to next line
|
||||||
|
|
||||||
Line() { txt = ""; color = type = kludge = 0; prev = next = NULL; }
|
Line() : txt ("") { color = type = kludge = 0; prev = next = NULL; }
|
||||||
Line(const char *str) { txt = str; color = type = kludge = 0; prev = next = NULL; }
|
Line(const char *str) : txt (str) { color = type = kludge = 0; prev = next = NULL; }
|
||||||
~Line() {}
|
~Line() {}
|
||||||
|
|
||||||
int istearline() { return !!(type & GLINE_TEAR); }
|
int istearline() { return !!(type & GLINE_TEAR); }
|
||||||
|
Reference in New Issue
Block a user