Index: misc/har.c ================================================================== --- misc/har.c +++ misc/har.c @@ -5,10 +5,11 @@ /* Hamster archiver Public domain + b = Bunny c = Create d = Delete l = Lowercase o = Extract to stdout r = Rename @@ -81,14 +82,21 @@ } if(opt['s']) { if(!n) name[1]=0,n=1; if(d) name[n-1]='_'; } - size=fgetc(stdin)<<16; - size|=fgetc(stdin)<<24; - size|=fgetc(stdin); - size|=fgetc(stdin)<<8; + if(opt['b']) { + size=fgetc(stdin)<<16; + size|=fgetc(stdin)<<24; + size|=fgetc(stdin); + size|=fgetc(stdin)<<8; + } else { + size=fgetc(stdin)<<24; + size|=fgetc(stdin)<<16; + size|=fgetc(stdin)<<8; + size|=fgetc(stdin); + } if(argc<3) { o=1; } else { o=0; for(n=2;n>16); - putchar(size>>24); - putchar(size); - putchar(size>>8); + if(opt['b']) { + putchar(size>>24); + putchar(size>>16); + putchar(size>>8); + putchar(size); + } else { + putchar(size>>16); + putchar(size>>24); + putchar(size); + putchar(size>>8); + } } } while(size--) fputc(fgetc(in),fp); if(opt['x']) fclose(fp); } else {