[File] [PATCH] of Magdir/msvc for Borland C++ project *.IDE

Jörg Jenderek joerg.jen.der.ek at gmx.net
Thu Jan 20 17:26:11 UTC 2022

Hash: SHA1

some days ago i handled some libraries with file name extension LIB
done by Magdir/msvc. Now i look at other definition for IDE samples
mentioned in that file.

When running file command version 5.41 on such IDE examples i get an
output like:

libdsk.ide:   MSVC .ide

With --extension option only 3 byte extension ??? is displayed and
with -i option only generic application/octet-stream is shown.

For comparison reason i run the file format identification utility
TrID ( See https://mark0.net/soft-trid-e.html). This describes IDE
examples as "Borland C++ Project definition" by
ide-borland-c.trid.xml (See appended ide-trid-v.txt.gz)

Luckily TrID tool displays correct file name extension IDE for
inspected examples. This list with -v option the related URL pointing
to some information.

The information of TrID points to company page borland.com, but the
company does not exist any more. It is now part of Micro Focus. So
i choose page about Borland on Wikipedia. So that information is now
expressed inside Magdir/msvc by comment lines like:

# URL: 		https://en.wikipedia.org/wiki/Borland
# Reference:	http://mark0.net/download/triddefs_xml.7z
#		defs/i/ide-borland-c.trid.xml

The recognition happens inside Magdir/msvc by line like:
0	string
MSVC .ide

The string part is encoded as octal values. When encoding this in
more human readable ASCII form and comparing it this with trid
definition it becomes clear that the starting magic is a line with
4 ASCII space separated words like "Borland C++ Project File"
followed by Line feed character, a null terminating byte and a
Control-Z character. So this now becomes like:
0	string	Borland\040C++\040Project\040File\012\000\032
MSVC .ide
!:mime	application/x-borland-ide
!:ext	ide
Instead of generic mime type application/octet-stream i show a user
defined one "application/x-borland-ide" and shown file name extension
is 3 byte string "ide".

Now comes problem with used naming "MSVC .ide". No normal user does
understand or know what this means. So i look how others call such
files. When looking on website file-extension.net for IDE extension i
get used description texts like:
	Borland C 4.x IDE project - BCW.EXE
	Borland C++ Project definition
	Borland C++ project
	C++ Project (Borland Software Corporation)
	Integrated Development Environment Configuration File
	Project file
So IDE is apparently the abbreviation for Integrated Development
Environment. That 3 byte word is used as file name extension. That
information is now shown by --extension option. Apparently MSVC is
the abbreviation for "Microsoft Visual C++". The IDE samples are
apparently created by compiler suite from company Borland. That is
completely different from company Microsoft. Maybe that this file
is also used for other programming languages like "C", but in start
magic explicitly "C++" is mentioned. So i finally choose "Borland C++
project" as describing text.

After the start magic comes some bytes which seems to be in most
cases constant. Maybe this is a version . So print this value if
these bytes have an unusual value by line like:
 >27	ubequad	!0x000200B200BABEFA	\b, maybe version %#16.16llx

Furthermore in my expected examples i found DOS file names like
this information also by lines like:
 >35	search/5490	:\\	\b, 1st header file with directory
 >>&-5	pstring/h 	x	"%s"

After applying the above mentioned modifications by patch
file-5.41-msvc-ide.diff then i get a more descriptive output with
more details like:

PLAYMIDI.IDE: Borland C++ project,
	      1st header file with directory
libdsk.ide:   Borland C++ project, #
	      1st header file with directory

With best wishes
Jörg Jenderek
- --
Jörg Jenderek

Comment: Using GnuPG with Thunderbird - https://www.enigmail.net/

-------------- next part --------------
File mailing list
File at astron.com

-------------- next part --------------
A non-text attachment was scrubbed...
Name: ide-trid-v.txt.gz
Type: application/x-gzip
Size: 464 bytes
Desc: not available
URL: <https://mailman.astron.com/pipermail/file/attachments/20220120/08fb3bb1/attachment.bin>
-------------- next part --------------
--- file-5.41/magic/Magdir/msvc.old	2020-05-31 12:34:40.000000000 +0200
+++ file-5.41/magic/Magdir/msvc	2022-01-20 18:13:29.911576000 +0100
@@ -13,4 +13,19 @@
 # .ide
+# URL: 		https://en.wikipedia.org/wiki/Borland
+# Reference:	http://mark0.net/download/triddefs_xml.7z/defs/i/ide-borland-c.trid.xml
+# Update:	Joerg Jenderek
+# Note:		called by TrID "Borland C++ Project definition"
 #too long 0	string	\102\157\162\154\141\156\144\040\103\053\053\040\120\162\157\152\145\143\164\040\106\151\154\145\012\000\032\000\002\000\262\000\272\276\372\316	MSVC .ide
-0	string	\102\157\162\154\141\156\144\040\103\053\053\040\120\162\157	MSVC .ide
+# ./msvc (1.10) of file (version 5.41) labeled the entry as "MSVC .ide"
+0	string	Borland\040C++\040Project\040File\012\000\032			Borland C++ project
+#!:mime	application/octet-stream
+!:mime	application/x-borland-ide
+# Integrated Development Environment
+!:ext	ide
+# maybe version part like: 000200B200BABEFA
+>27	ubequad	!0x000200B200BABEFA						\b, maybe version %#16.16llx
+# look for DOS drive letter
+>35	search/5490	:\\							\b, 1st header file with directory
+>>&-5	pstring/h	x							"%s"
-------------- next part --------------
A non-text attachment was scrubbed...
Name: file-5.41-msvc-ide.diff.sig
Type: application/octet-stream
Size: 866 bytes
Desc: not available
URL: <https://mailman.astron.com/pipermail/file/attachments/20220120/08fb3bb1/attachment.obj>

More information about the File mailing list