Applied latest patches from Alexander
This commit is contained in:
parent
745564944a
commit
de3a66b4e9
@ -19,14 +19,14 @@ atexit (to be `void (func *)(void)' instead of `void (func *)()'.
|
|||||||
|
|
||||||
First, edit GNUmakef.def for the preferrable compilation options.
|
First, edit GNUmakef.def for the preferrable compilation options.
|
||||||
|
|
||||||
Now go to golded3 and áopy 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.
|
Pray.
|
||||||
|
|
||||||
Exec 'make'. Wait. (If your version of gcc does not support strftime format
|
Exec 'make' (or `gmake' on BSD). Wait. (If your version of gcc does not
|
||||||
checking you will need to manually comment __attribute__ definition on
|
support strftime format checking you will need to manually comment
|
||||||
strftimei function in goldlib/gall/gtimall.h.)
|
__attribute__ definition on strftimei function in goldlib/gall/gtimall.h.)
|
||||||
|
|
||||||
ls bin/
|
ls bin/
|
||||||
|
|
||||||
|
@ -9,9 +9,12 @@ ______________________________________________________________________
|
|||||||
|
|
||||||
______________________________________________________________________
|
______________________________________________________________________
|
||||||
|
|
||||||
Notes for GoldED+ 1.1.4.5, May XX 2000
|
Notes for GoldED+ 1.1.4.5, June 18 2000
|
||||||
______________________________________________________________________
|
______________________________________________________________________
|
||||||
|
|
||||||
|
- Fixed some memory leaks regarding to GROUP feature, REPLYADDR
|
||||||
|
parsing, undo.
|
||||||
|
|
||||||
- Fixed small bug in fidoconfig parser that brokes correct handling of
|
- Fixed small bug in fidoconfig parser that brokes correct handling of
|
||||||
INCLUDE keyword.
|
INCLUDE keyword.
|
||||||
|
|
||||||
|
@ -63,9 +63,9 @@ assistance!
|
|||||||
*Q:* А где обещанное CUA?
|
*Q:* А где обещанное CUA?
|
||||||
*A:* Чтобы использовать CUA при выключенном KEYBDEFAULTS надо его определить.
|
*A:* Чтобы использовать CUA при выключенном KEYBDEFAULTS надо его определить.
|
||||||
Хотя всякие #Left не описаны в документации, они физически есть всюду,
|
Хотя всякие #Left не описаны в документации, они физически есть всюду,
|
||||||
кроме версии для Linux. Скорее всего CUA под Linux'ом (и в планах BSD)
|
кроме версии для Linux (с 1.1.4.5 они есть и на линуксовой консоли).
|
||||||
будет работать только на иксовой консоли, поскольку вывод на экран будет
|
Скорее всего CUA под Linux'ом (и в планах BSD) будет работать только на
|
||||||
повраплен в ncurses.
|
иксовой консоли, поскольку вывод на экран будет повраплен в ncurses.
|
||||||
|
|
||||||
*Q:* А что за проблемы с INVALIDATE <token> "" ""? Почему все-равно квотится?
|
*Q:* А что за проблемы с INVALIDATE <token> "" ""? Почему все-равно квотится?
|
||||||
*A:* Это опять недочитанная до конца документация. Используйте ключевое слово
|
*A:* Это опять недочитанная до конца документация. Используйте ключевое слово
|
||||||
@ -112,11 +112,14 @@ assistance!
|
|||||||
|
|
||||||
*Q:* Глюки отображения под Windows 2000.
|
*Q:* Глюки отображения под Windows 2000.
|
||||||
*A:* Решаются сменой шрифта на Lucida или грязными хаками registry на предмет
|
*A:* Решаются сменой шрифта на Lucida или грязными хаками registry на предмет
|
||||||
перестановки языков с 1250/1252 на 1251.
|
перестановки языков с 1250/1252 на 1251. Можно попробовать применить патч
|
||||||
|
на registry с ftp://eed.miee.ru/pub/GoldED+/, но говорят, что становится
|
||||||
|
еще хуже ;-)
|
||||||
|
|
||||||
*Q:* Типа эта... А писать куда автору? ;-)
|
*Q:* Типа эта... А писать куда автору? ;-)
|
||||||
*A:* Писать лучше всего в Ru.GoldED. Даже лучше сначала его почитать, потом
|
*A:* Писать лучше всего в Ru.GoldED. Даже лучше сначала его почитать, потом
|
||||||
писать. Если уж сильно приспичит, то можно писать на asa@eed.miee.ru
|
писать. Если уж сильно приспичит, то можно писать на asa@eed.miee.ru
|
||||||
или 2:5020/201.58, но я совсем не гарантирую, что я отвечу.
|
или 2:5020/201.58 [временно в дауне], но я совсем не гарантирую, что я
|
||||||
|
отвечу.
|
||||||
|
|
||||||
>==============================================================================
|
>==============================================================================
|
||||||
|
@ -31,7 +31,7 @@
|
|||||||
|
|
||||||
class Container {
|
class Container {
|
||||||
|
|
||||||
virtual void prints(int, int, int, char*) = 0;
|
virtual void prints(int, int, int, const char*) = 0;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
@ -168,7 +168,7 @@ void IEclass::scrolldown(int __scol, int __srow, int __ecol, int __erow, int __l
|
|||||||
// ------------------------------------------------------------------
|
// ------------------------------------------------------------------
|
||||||
// Zero-based
|
// Zero-based
|
||||||
|
|
||||||
void IEclass::prints(int wrow, int wcol, int atr, char* str) {
|
void IEclass::prints(int wrow, int wcol, int atr, const char* str) {
|
||||||
|
|
||||||
editwin.prints(wrow, wcol, atr, str);
|
editwin.prints(wrow, wcol, atr, str);
|
||||||
}
|
}
|
||||||
@ -272,7 +272,8 @@ void IEclass::dispstring(const char* __string, uint __row, int attr, Line* line)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
memcpy(_buf, __string, _length);
|
if(_length)
|
||||||
|
memcpy(_buf, __string, _length);
|
||||||
}
|
}
|
||||||
|
|
||||||
// mark selected block
|
// mark selected block
|
||||||
@ -2394,12 +2395,10 @@ void UndoStack::PushItem(uint action, Line* __line, uint __col, uint __len) {
|
|||||||
last_item->line = __line;
|
last_item->line = __line;
|
||||||
break;
|
break;
|
||||||
case EDIT_UNDO_INS_TEXT:
|
case EDIT_UNDO_INS_TEXT:
|
||||||
last_item->line = __line;
|
|
||||||
goto save_item;
|
|
||||||
case EDIT_UNDO_WRAP_TEXT:
|
case EDIT_UNDO_WRAP_TEXT:
|
||||||
last_item->line = __line->prev;
|
last_item->line = __line;
|
||||||
save_item:
|
throw_new(last_item->data.text_ptr = new(__len) text_item(__col, __len));
|
||||||
throw_new(last_item->data.text_ptr = new text_item(__col, __len));
|
memcpy(last_item->data.text_ptr->text, __line->txt.c_str() + __col, __len);
|
||||||
break;
|
break;
|
||||||
case EDIT_UNDO_NEW_LINE:
|
case EDIT_UNDO_NEW_LINE:
|
||||||
last_item->line = last_item->data.line_ptr = __line;
|
last_item->line = last_item->data.line_ptr = __line;
|
||||||
|
@ -307,7 +307,7 @@ protected:
|
|||||||
int isempty (Line* __line=NULL);
|
int isempty (Line* __line=NULL);
|
||||||
void killkillbuf ();
|
void killkillbuf ();
|
||||||
void killpastebuf ();
|
void killpastebuf ();
|
||||||
void prints (int wrow, int wcol, int atr, char* str);
|
void prints (int wrow, int wcol, int atr, const char* str);
|
||||||
int reflowok (char* __qstr);
|
int reflowok (char* __qstr);
|
||||||
void refresh (Line* __currline, uint __row);
|
void refresh (Line* __currline, uint __row);
|
||||||
void savefile (int __status);
|
void savefile (int __status);
|
||||||
|
@ -1109,6 +1109,9 @@ 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);
|
||||||
|
|
||||||
|
@ -546,12 +546,12 @@ static void KludgePID(GMsg* msg, const char* ptr) {
|
|||||||
|
|
||||||
static void KludgeREPLYADDR(GMsg* msg, const char* ptr) {
|
static void KludgeREPLYADDR(GMsg* msg, const char* ptr) {
|
||||||
|
|
||||||
Name name;
|
INam name;
|
||||||
name[0] = NUL;
|
name[0] = NUL;
|
||||||
char *buf=throw_strdup(ptr);
|
char *buf=throw_strdup(ptr);
|
||||||
ParseInternetAddr(buf, *msg->realby ? name : msg->realby, msg->iaddr);
|
ParseInternetAddr(buf, *msg->realby ? name : msg->realby, msg->iaddr);
|
||||||
if(*name)
|
if(*name)
|
||||||
strxcpy(msg->realby, name, sizeof(Name));
|
strxcpy(msg->realby, name, sizeof(INam));
|
||||||
throw_free(buf);
|
throw_free(buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -647,7 +647,7 @@ void GMsgBodyView::UpdateScrollbar() {
|
|||||||
|
|
||||||
// ------------------------------------------------------------------
|
// ------------------------------------------------------------------
|
||||||
|
|
||||||
void GMsgBodyView::prints(int wrow, int wcol, int atr, char* str) {
|
void GMsgBodyView::prints(int wrow, int wcol, int atr, const char* str) {
|
||||||
|
|
||||||
vputs(wrow, wcol, atr, str);
|
vputs(wrow, wcol, atr, str);
|
||||||
}
|
}
|
||||||
|
@ -86,7 +86,7 @@ protected:
|
|||||||
|
|
||||||
void PaintLine(int row, Line *line);
|
void PaintLine(int row, Line *line);
|
||||||
void UpdateScrollbar();
|
void UpdateScrollbar();
|
||||||
void prints(int wrow, int wcol, int atr, char* str);
|
void prints(int wrow, int wcol, int atr, const char* str);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
@ -134,8 +134,9 @@ void Grp::AddItm(int __type, const string& __data) {
|
|||||||
|
|
||||||
void Grp::AddItm(int __type, void* __data, int __size) {
|
void Grp::AddItm(int __type, void* __data, int __size) {
|
||||||
|
|
||||||
void *data = throw_malloc(__size);
|
void *data = throw_malloc(__size+sizeof(int));
|
||||||
memcpy(data, __data, __size);
|
*((int *)data) = __size;
|
||||||
|
memcpy((char *)data+sizeof(int), __data, __size);
|
||||||
currgrp->second.insert(pair<int, grp_stock>(__type, data));
|
currgrp->second.insert(pair<int, grp_stock>(__type, data));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -252,7 +253,10 @@ int Grp::GetItm(int __type, void* __data, int __size, int __no) {
|
|||||||
__no = rand() % rv;
|
__no = rand() % rv;
|
||||||
multimap<int, grp_stock>::iterator i = currgrp->second.find(__type);
|
multimap<int, grp_stock>::iterator i = currgrp->second.find(__type);
|
||||||
while(__no--) i++;
|
while(__no--) i++;
|
||||||
memcpy(__data, i->second.data.object_item, __size);
|
void *data = i->second.data.object_item;
|
||||||
|
int local_size = *((int *)data);
|
||||||
|
__size = minimum_of_two (local_size, __size);
|
||||||
|
memcpy(__data, (char *)data+sizeof(int), __size);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Return number of items of this type in the group
|
// Return number of items of this type in the group
|
||||||
|
Reference in New Issue
Block a user