console history save/load from joe
This commit is contained in:
2010-04-23 09:24:22 +00:00
parent 0429707e6c
commit d43bef938f
2 changed files with 19 additions and 4 deletions

View File

@@ -5158,7 +5158,7 @@ static void direct_link_screen(FileData *fd, bScreen *sc)
}
else if(sl->spacetype==SPACE_CONSOLE) {
SpaceConsole *sconsole= (SpaceConsole *)sl;
//ConsoleLine *cl;
ConsoleLine *cl, *clnext;
link_list(fd, &sconsole->scrollback);
link_list(fd, &sconsole->history);
@@ -5166,9 +5166,16 @@ static void direct_link_screen(FileData *fd, bScreen *sc)
//for(cl= sconsole->scrollback.first; cl; cl= cl->next)
// cl->line= newdataadr(fd, cl->line);
//for(cl= sconsole->history.first; cl; cl= cl->next)
// cl->line= newdataadr(fd, cl->line);
/*comma expressions, (e.g. expr1, expr2, expr3) evalutate each expression,
from left to right. the right-most expression sets the result of the comma
expression as a whole*/
for(cl= sconsole->history.first; cl && (clnext=cl->next), cl; cl= clnext) {
cl->line= newdataadr(fd, cl->line);
if (!cl->line) {
BLI_remlink(&sconsole->history, cl);
MEM_freeN(cl);
}
}
}
else if(sl->spacetype==SPACE_FILE) {
SpaceFile *sfile= (SpaceFile *)sl;

View File

@@ -2108,7 +2108,15 @@ static void write_screens(WriteData *wd, ListBase *scrbase)
writestruct(wd, DATA, "SpaceLogic", 1, sl);
}
else if(sl->spacetype==SPACE_CONSOLE) {
SpaceConsole *con = (SpaceConsole*)sl;
ConsoleLine *cl;
for (cl=con->history.first; cl; cl=cl->next) {
writestruct(wd, DATA, "ConsoleLine", 1, cl);
writedata(wd, DATA, cl->len+1, cl->line);
}
writestruct(wd, DATA, "SpaceConsole", 1, sl);
}
else if(sl->spacetype==SPACE_USERPREF) {
writestruct(wd, DATA, "SpaceUserPref", 1, sl);