[File] [PATCH] Magdir/printer Hewlett-Packard Graphics Language misidentfies QEMU shell scripts +

Sam James sam at gentoo.org
Fri Jun 16 19:32:53 UTC 2023


Christos Zoulas <christos at zoulas.com> writes:

> [[PGP Signed Part:Undecided]]
> Committed, thanks!
>
> christos
>
>> On Jun 3, 2023, at 3:44 PM, Jörg Jenderek (GMX) <joerg.jen.der.ek at gmx.net> wrote:
>> 
>> Hello,
>> 
>> some days ago (16.12.2022) i send patch of Magdir/printer to recognize
>> Hewlett-Packard Graphics Language which typically have file suffix
>> like hpgl/hpg/hp. When running file command version 5.44 on such samples
>> and related misidentified files i get an output like:

This is likely the same as https://bugs.astron.com/view.php?id=457.

>> 
>> Linux-syscall-note:
>> 	Hewlett-Packard Graphics Language, starting with
>> 	"SPDX-Exception-Identifier: Linux-syscall-note"
>> 	with "SPDX-URL: "
>> miter.hp:
>> 	Hewlett-Packard Graphics Language, starting with
>> 	"PA4000,3000;" with "PW2;\012LA"
>> test3.hpgl:
>> 	Hewlett-Packard Graphics Language, starting with
>> 	"SP6;DI0,1;SR0.70,1.90;SC0,800,0,576;PA;PU20,0;LBDSA 60"
>> 	with "SP3;SC-864"
>> test_msa_run_32r5eb.sh:
>> 	Hewlett-Packard Graphics Language, starting with
>> 	"PATH_TO_QEMU="../../../../../../mips-linux-user/qemu-m"
>> 
>> Obviously the Hewlett-Packard Graphics have no unique magic pattern.
>> But luckily the displaying part is done by sub routine hpgl inside
>> Magdir/printer which start like:
>>    0	name			hpgl
>>    >0	string	x		Hewlett-Packard Graphics Language
>>    !:mime	application/vnd.hp-HPGL
>>    !:ext	hpgl/hpg/hp/plt
>>    >0	string	x			\b, starting with "%-.54s"
>> Luckily in output by phrase "starting with" the first line of file is
>> shown. So this can be used for control reasons. So with this output i
>> can check what is going wrong and i must insert some additional tests
>> before calling the sub routine.
>> 
>> I often have used about 2 bytes (that are 16 bits) for recognition.
>> You can blame me for not using 32 bits, but i have not time to read and
>> understand whole specification and get part time HP plotter expert. But
>> now some collisions occur so i spent some time to refine test lines.
>> 
>> So samples like test3.hpgl starting with Select Pen directive are done
>> by lines like:
>>    0	string	SP
>>    >0		use		hpgl
>> According to documentation the argument is pen number n. This argument
>> is integer. So it is in the range between -32767 and 32768. If there is
>> no pen number or this 0, the controller performs an end of file command.
>> Assuming that there exist no negative pen number such samples are now
>> caught by lines like:
>>    0	string	SP
>>    >2	regex	\^([0-9]{1,5})
>>    #>2	regex	\^([0-9]{1,5})	PEN_NUMBER=%s
>>    >>0		use		hpgl
>> So for real HP samples like test3.hpgl i get pen number like 6. The text
>> file Linux-syscall-note inside qemu sources start with line like:
>> 	SPDX-Exception-Identifier: Linux-syscall-note
>> So by current test it is identified as HPGL file. With the additional
>> test line it is now skipped.
>> 
>> Samples like miter.hp with Plot Absolute directive are done by lines like:
>>    0	string	PA
>>    >0		use		hpgl
>> 
>> According to documentation the arguments are coordinates x,y{,x,y{...}}.
>> These arguments are integer. So these are in the range between -32767
>> and 32768. So now i check also for valid x coordinate. So such samples
>> are now caught by lines like:
>>    0	string	PA
>>    >2	regex	\^([-]{0,1}[0-9]{1,5})
>>    #>2	regex	\^([-]{0,1}[0-9]{1,5})	COORDINATE=%s
>>    >>0		use		hpgl
>> So for examples like miter.hp i get coordinate value 4000. Some shell
>> scripts like test_msa_run_32r5eb.sh test_msa_run_32r5eb.sh inside qemu
>> sources start with line like:
>> 	PATH_TO_QEMU="../../../../../../mips-linux-user/qemu-m
>> So by current test these script are identified as HPGL file. With the
>> additional test line these scripts are now skipped.
>> 
>> After applying the above mentioned modifications by patch
>> file-5.44-printer-hpgl.diff then  Hewlett-Packard Graphics samples are
>> still described as before but misidentification vanish. This now looks like:
>> Linux-syscall-note:
>> 	ASCII text
>> miter.hp:
>> 	Hewlett-Packard Graphics Language, starting with
>> 	"PA4000,3000;"
>> 	with "PW2;\012LA"
>> test3.hpgl:
>> 	Hewlett-Packard Graphics Language, starting with
>> 	"SP6;DI0,1;SR0.70,1.90;SC0,800,0,576;PA;PU20,0;LBDSA 60"
>> 	with "SP3;SC-864"
>> test_msa_run_32r5eb.sh:
>> 	ASCII text
>> 
>> With best wishes,
>> 
>> Jörg Jenderek
>> --
>> Jörg Jenderek
>> <file-5_44-printer-hpgl_diff.DEFANGED-2093><file-5_44-printer-hpgl_diff_sig.DEFANGED-2094>--
>> File mailing list
>> File at astron.com
>> https://mailman.astron.com/mailman/listinfo/file
>> <sanitizer.log>
>
> [[End of PGP Signed Part]]

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 377 bytes
Desc: not available
URL: <https://mailman.astron.com/pipermail/file/attachments/20230616/6b5f8476/attachment.asc>


More information about the File mailing list