Fri 19 Sep 2008 06:43:43 PM UTC, original submission:
This bug was originally reported on the mailing list in 2005.
From Chris van Engelen:
"After investigating this a little further, it is my opinion that lines 2277-2283 in ddd.C (pre_main_loop) should be removed:
#if XtSpecificationRelease >= 6
// Synchronize SESSION_ID and APP_DATA.session
if (session_id == 0)
XtVaGetValues(toplevel, XtNsessionID, &session_id, XtPointer(0));
printf( "pre_main_loop: session id set to: %s\n", session_id );
if (session_id != 0)
app_data.session = session_id;
#endif
The call to XtVaGetValues provides a unique session ID from the session manager, i.e., a string like "110a0a008b000111294615200000083400102"
This string is subsequently used as a DDD session identifier, so all history items are saved in subdirectory:
.ddd/sessions/110a0a008b000111294615200000083400102
However, normally a user does not save this special session before exiting DDD, and therefore the next time DDD is started, all history of this special session is lost!
Each time ddd is started, the last one or two characters of the session id as returned by the session manager change, so the end is that all history of each session is lost.
So for instance the drop down menu with "lookup" items always is empty, which is really annoying.
If a user really wants to save a session, the user can easily do this by specifying a useful name in the "save sessions" screen, and use that session when starting again (e.g., using the =<session> hack, or the --session option).
Therefore it is my suggestion to remove lines 2277-2283 in ddd.C (pre_main_loop) This is what I did in my build, and since then it works fine."
I'd like to understand how this session stuff was originally intended to work before deleting the code, though...
|