On 21/11/2007, at 10:48 PM, Otto Moerbeek wrote:
On Wed, Nov 21, 2007 at 10:20:39PM +1300, Richard Toohey wrote:
On 21/11/2007, at 12:08 PM, Jeff Ross wrote:
Jeff Ross wrote:
Hi,
"
11609 restore RET write 27/0x1b
11609 restore CALL write(0x2,0x80147000,0x34)
11609 restore GIO fd 2 wrote 52 bytes
"1834488 Document Scrap '\M-o\M^C\M^X Journal Entrie...'.shs
"
On a console (not xterm) the file name appears to be
Document Scrap 'C/ Journal Entrie...'.shs
(that's a lower case "i" with two dots over it.)
My original e-mail did get mangled a little.
The C/ above is really the lowercase i with two dots over it.
Jeff
The easiest way to reproduce I found so far is:
echo '\M-o\M^C\M^X' | unvis
It hangs my xterm. It does not hang a console.
I think dump should 'vis' the filenames it prints.
-Otto
Did a little more digging (interested to learn more about vis/unvis -
thanks, Otto - lots of learning on this list!) and it seems to be the
last byte of the three that actually causes the hang - the \M^X
part. If I have read vis(3) correctly, that is character 128 (M) +
24 (^X) = 152 (230 octal.)
The i-with-two-dots (\M-o = 128 + 111 = 0xEF) seems to be a red
herring - which is why I could not reproduce the issue focussing on
that character.
echo '\230' | unvis
... gives the xterm hang.
char_file.c:
#include <stdio.h>
int main(void) {
FILE *f;
char fn[]="xxxxx.txt";
/*Red herring */
/* fn[2]=0xEF; */
fn[2]=152;
f=fopen(fn,"w");
fputs("Something here",f);
fclose(f);
return 0;
}
# cc char_file.c -Wall -o char_file
# ./char_file
# mkdir testd3
# mv xx^?xx.txt testd3
# dump -0 -f test3.dmp testd3/
DUMP: Dumping sub files/directories from /home
DUMP: Dumping file/directory testd3/
DUMP: Date of this level 0 dump: Sat Nov 24 10:39:03 2007
DUMP: Date of last level 0 dump: the epoch
DUMP: Dumping /dev/rwd0h (/home) to test3.dmp
DUMP: mapping (Pass I) [regular files]
DUMP: mapping (Pass II) [directories]
DUMP: estimated 106 tape blocks on 0.00 tape(s).
DUMP: Volume 1 started at: Sat Nov 24 10:39:04 2007
DUMP: dumping (Pass III) [directories]
DUMP: dumping (Pass IV) [regular files]
DUMP: 74 tape blocks on 1 volume
DUMP: Date of this level 0 dump: Sat Nov 24 10:39:03 2007
DUMP: Volume 1 completed at: Sat Nov 24 10:39:04 2007
DUMP: Date this dump completed: Sat Nov 24 10:39:04 2007
DUMP: Average transfer rate: 0 KB/s
DUMP: Closing test3.dmp
DUMP: DUMP IS DONE
# restore -i -f test3.dmp
restore > verbose
verbose mode on
restore > cd testd3
restore > ls
./testd3:
31 ./ 2 ../ 30 xx***hangs here in xterm, OK on
console or in Mac Terminal over ssh***?xx.txt
restore > quit
I'll have a look at dump/restore and using vis programatically. I
haven't looked at the xterm angle (other codes e.g. octal 220 - also
seem to cause the hang - so echo '\220' | unvis - has the same effect
as 230. Just mentioning because someone will say 'Ah! That's
because the fibble-bit is set!' and that will be the end of this
thread.)
Thanks.