# WhatIs.library Copyright by Sylvain Rougier and Pierre Carrette
# send donnation bug/report to :
# Sylvain Rougier
# 39 rue carnot
# 86000 Poitiers
# France
#
# For commercial use, ask written permision.
# For non-comercial use, you can redistribute whatis.library package
#

# "# " = Comment

# example definition:
TYPE "Src Ada"    # you define a new type, its IDString (curently 9
                  # char max) is "Src Ada", this is the string that
                  # will be returned by WhatIs.library and you can see it in
                  # BrowserII when you put the "Show file type", it
                  # is also the way you identify this FileType.

SUBTYPE "Text" # OPT:  the file MUST be prior of the type "Text",
               # this  means  that if the file is not of the type
               # test,  WhatIs.library  think  it is not the type
               # "Src Ada"

INSERTAFTER "Script" # OPT:  You want that the type "Src Ada"
                     # was  put after the type "Script", it not
                     # an alpha order but an arbitrary FileType
                     # order, you can see this order when you
                     # choose "Sort by file type" in BrowserII

ICONNAME "Def_Src"   # OPT:  this the name of the default icon
                     # file  name, in case the file you
                     # examine haven't, this is only the
                     # file   name   (   returned   by
                     # GetIconName()) whitout any path,
                     # it  is  to  the  appli-prog  to
                     # search   it  in  the  apropiate
                     # directory.     (commnly    the
                     # "ENV:Sys/" directory)

# now come the decription of the file, if ANY condition below is
# not reach, the WhatIs.library say it is not this filetype.
# Exepte for OPNAMEPATTERN which is use for light WhatIs() (only
# based on the file name)

NAMEPATTERN "#?.ada" # OPT:  if the filename don't match to this
                     # pattern, it not of this FileType
                     # it is exclusive whith OPTNAMEPATTERN

#  OPTNAMEPATTERN "#?.ada" # OPT:  same thing than NAMEPATTERN but it
                           # use ONLY if no DEEP scan is
                           # available ( light WhatIs() ), in
                           # any other scan ( for instance
                           # DEEP scan), it is IGNORED

# now come the DEEP desciption, it is the heart of reconised
# process.  You can specify number in decimal ( begining whith
# nothing), in hex ( begining whith "$"), in binary (begining
# whith "%"), or in string (begining whith '"')
#  All  the search ( and acces) are in the first few byte of file (
# currently 484)
#  all  this  contion  are  optional.  and is considered as TRUE if
# light WhatIs

COMPAREBYTE 12 $ABADCAFE   # test if the file contain the byte $AB
                           # $AD $CA $FE at offset 12

COMPAREBYTE $23 "Hello" #  test  if  the file contain the string
                        #  "Hello"  (  i.e the byte $48 $65
                        # $6c $6f) at offset $23 ( decimal 35)

# in version 2 of WhatIs.library ( only unde KS2.x) you have a case
# modifier, this means "A" is different of "a".

SEARCHBYTE "Good" #  search  in  the  first  few  byte  of file (
                  #  currently  480  first  byte)  the string
                  # "Good"

SEARCHBYTE $DEADBEEF #  search the byte $DE $AD $BE $EF (in this
                     #  order  and  in succetion) in the file

SEARCHPATTERN "ST-??:"  # search if the pattern "ST-??:" are present
                        # in the file.
ENDTYPE  # this mark the end of this FileType definition
#######################################################################

TYPE "Icn Disk"
   SUBTYPE "Icon"
   INSERTAFTER "Icon"
   OPTNAMEPATTERN "Disk.info"
   COMPAREBYTE $30 $01
ENDTYPE

TYPE "Icn Dwr"
   SUBTYPE "Icon"
   INSERTAFTER "Icn Disk"
   COMPAREBYTE $30 $02
ENDTYPE

TYPE "Icn Tool"
   SUBTYPE "Icon"
   INSERTAFTER "Icn Dwr"
   COMPAREBYTE $30 $03
ENDTYPE

TYPE "Icn Prj"
   SUBTYPE "Icon"
   INSERTAFTER "Icn Tool"
   COMPAREBYTE $30 $04
ENDTYPE

TYPE "Icn Trsh"
   SUBTYPE "Icon"
   INSERTAFTER "Icn Prj"
   COMPAREBYTE $30 $05
ENDTYPE

TYPE "PPLoadSeg"
   INSERTAFTER "PP40 Exe"
   COMPAREBYTE 0 "PPLS"
ENDTYPE

TYPE "PPLibHead"
   INSERTAFTER "PP40 Exe"
   COMPAREBYTE $78 $FE864CDF7FFF4E75
ENDTYPE

TYPE "ImpLS"   # executable imploded whith Imploder-Library root to alow crunche of amiga device/fonts/library
   SUBTYPE     "Exe"
   INSERTAFTER "PPLoadSeg"
   SEARCHBYTE  "explode.library"
ENDTYPE

#TYPE "ImpLS Lib"  # library imploded whith Imploder-Library root to alow crunche of amiga device/fonts/library
#   SUBTYPE     "ImpLS"
#   INSERTAFTER "ImpLS"
#   NAMEPATTERN "#?.library#?"
#ENDTYPE

TYPE "Library"
   SUBTYPE     "Exe"
   INSERTAFTER "ImpLS"
   NAMEPATTERN "#?.library#?"
ENDTYPE

TYPE "Doc"
   SUBTYPE     "Text"
   INSERTAFTER "Text"
   ICONNAME    "Def_ASCII"
   NAMEPATTERN "#?.doc"
ENDTYPE

TYPE "Source C"
   SUBTYPE     "Text"
   ICONNAME    "Def_C"
   NAMEPATTERN "#?.c"
ENDTYPE

TYPE "Include C"
   SUBTYPE     "Text"
   ICONNAME    "Def_H"
   NAMEPATTERN "#?.h"
ENDTYPE

TYPE "Asm"
   SUBTYPE "Text"
   ICONNAME "Def_Asm"
   NAMEPATTERN "#?.(a|s|asm)"
ENDTYPE

TYPE "Incld Asm"
   SUBTYPE "Text"
   ICONNAME "Def_I"
   NAMEPATTERN "#?.i"
ENDTYPE

TYPE "Rexx"
   SUBTYPE "Text"
   ICONNAME "Def_Rexx"
   NAMEPATTERN "#?.rexx"
   COMPAREBYTE 0 "/*"
ENDTYPE

TYPE "Tex"
   SUBTYPE "Text"
   ICONNAME "Def_Tex"
   NAMEPATTERN "#?.Tex"
ENDTYPE

TYPE "PS"
   SUBTYPE "Text"
   ICONNAME "Def_PostScript"
   NAMEPATTERN "#?.ps"
   SEARCHBYTE "Adobe"
ENDTYPE

TYPE "TexInfo"                   # TexInfo
   SUBTYPE "Text"
   ICONNAME "Def_TexInfo"
   NAMEPATTERN "#?.texinfo#?"
   COMPAREBYTE 0 /input
ENDTYPE

TYPE "Guide1"
   SUBTYPE "Text"
   ICONNAME "Def_AmigaGuide"
   OPTNAMEPATTERN "#?.Guide"
   SEARCHBYTE "@database"
ENDTYPE

TYPE "Guide2"
   SUBTYPE "Text"
   ICONNAME "Def_AmigaGuide"
   OPTNAMEPATTERN "#?.Guide"
   SEARCHBYTE "@Database"
ENDTYPE

TYPE "Guide3"
   SUBTYPE "Text"
   ICONNAME "Def_AmigaGuide"
   OPTNAMEPATTERN "#?.Guide"
   SEARCHBYTE "@DATABASE"
ENDTYPE

TYPE "Guide4"
   SUBTYPE "Text"
   ICONNAME "Def_AmigaGuide"
   OPTNAMEPATTERN "#?.Guide"
   SEARCHBYTE "@node"
ENDTYPE

TYPE "ZRexx"
   SUBTYPE "Text"
   ICONNAME "Def_Rexx"
   NAMEPATTERN "#?.zrx"
ENDTYPE

TYPE "MSRexx"                       # MathScript Rexx Scripts
   SUBTYPE "Text"
   ICONNAME "Def_Rexx"
   NAMEPATTERN "#?.ms"
ENDTYPE

TYPE "HTML"                         # Mosaic HTML
   SUBTYPE "Text"
   ICONNAME "Def_HTML"
   NAMEPATTERN "#?.html"
ENDTYPE

TYPE "SCOPT"                        # SAS/C Options
   SUBTYPE "Text"
   ICONNAME "Def_SCOptions"
   NAMEPATTERN "#?scoptions#?"
ENDTYPE

TYPE "ABasic"                       # AmigaBasic
   ICONNAME "Def_BASIC"
   NAMEPATTERN "#?.bas"
ENDTYPE

TYPE "MakeFile"                     # MakeFile
   SUBTYPE "Text"
   ICONNAME "Def_MakeFile"
   NAMEPATTERN "#?makefile#?|#?lmkfile#?"
ENDTYPE

TYPE "ReadMe"                       # ReadMe's
   SUBTYPE "Text"
   ICONNAME "Def_ASCII"
   NAMEPATTERN "#?Read#?Me#?"
ENDTYPE

TYPE "Rev"                          # .rev (Revision no.) Files
   SUBTYPE "Text"
   ICONNAME "Def_Rev"
   NAMEPATTERN "#?.rev#?"
ENDTYPE

TYPE "DOSScript"                    # AmigaDOS Script
   SUBTYPE "Text"
   ICONNAME "Def_DOSScript"
   SEARCHBYTE ".key"
ENDTYPE

TYPE "MSFormula"                    # MathScript Formula
   ICONNAME "Def_FML8"
   NAMEPATTERN "#?.fml"
   COMPAREBYTE 0 MS
ENDTYPE

TYPE "PP Doc"                       # PowerPacked Data
   SUBTYPE "PP Data"
   ICONNAME "Def_ASCII"
   COMPAREBYTE 0 "PP20"
ENDTYPE

TYPE "SFX"                          # Self extracting LHA/LZH file
   SUBTYPE "Exe"
   INSERTAFTER "LHArc"
   ICONNAME "Def_SFX"
   OPTNAMEPATTERN "#?.run"
   COMPAREBYTE 44 "SFX"
ENDTYPE
   
TYPE "TeX Font"
   ICONNAME "Def_TeXFont"
   COMPAREBYTE 0 $F7593647
ENDTYPE

TYPE "TeX DVI"
   ICONNAME "Def_TeXDVI"
   OPTNAMEPATTERN "#?.dvi"
   COMPAREBYTE 0 $F7020183
ENDTYPE

TYPE "DMS"
   ICONNAME "Def_DMS"
   OPTNAMEPATTERN "#?.dms"
   COMPAREBYTE 0 "DMS!"
ENDTYPE

TYPE "Warp"
   ICONNAME "Def_Warp"
   OPTNAMEPATTERN "#?.wrp"
   COMPAREBYTE 0 "Warp"
ENDTYPE

TYPE "Zoom"
   ICONNAME "Def_Zoom"
   OPTNAMEPATTERN "#?.zoom"
   COMPAREBYTE 0 "ZOOM"
ENDTYPE

TYPE "ZIP"
   ICONNAME "Def_Zip"
   OPTNAMEPATTERN "#?.zip"
   COMPAREBYTE 0 $504B0304
ENDTYPE

TYPE "MEd Song"
   ICONNAME "Def_MedSong"
   OPTNAMEPATTERN "#?.med"
   COMPAREBYTE 0 $4d454404
   # "MED" $04
ENDTYPE

TYPE "MEDMOD"
   ICONNAME "Def_Med"
   OPTNAMEPATTERN "#?.med"
   COMPAREBYTE 0 "MMD1"
ENDTYPE

TYPE "JPEG"
   ICONNAME "Def_JPEG"
   OPTNAMEPATTERN "#?.(jpeg|jpg)"
   COMPAREBYTE 0 $FFD8FFE0
ENDTYPE

TYPE "PCX"
   ICONNAME "Def_PCX"
   OPTNAMEPATTERN "#?.pcx#?"
   COMPAREBYTE 0 $0a0501
ENDTYPE

TYPE "GIF"
   ICONNAME "Def_GIF"
   NAMEPATTERN "#?.gif"
   COMPAREBYTE 0 "GIF8"
   COMPAREBYTE 5 "a"
ENDTYPE

TYPE "BMP"
   ICONNAME "Def_BMP"
   OPTNAMEPATTERN "#?.bmp#?"
   COMPAREBYTE 0 "BM"
   COMPAREBYTE 6 $00000000
ENDTYPE

TYPE "BMP 1Bit"
   SUBTYPE "BMP"
   ICONNAME "Def_BMP"
   COMPAREBYTE $1c $01
ENDTYPE

TYPE "BMP 4Bit"
   SUBTYPE "BMP"
   ICONNAME "Def_BMP"
   COMPAREBYTE $1c $04
ENDTYPE

TYPE "BMP 8Bit"
   SUBTYPE "BMP"
   ICONNAME "Def_BMP"
   COMPAREBYTE $1c $08
ENDTYPE

TYPE "TARGA"
   ICONNAME "Def_Targa"
   OPTNAMEPATTERN "#?.tga#?"
   COMPAREBYTE 0 $00000A0000000000000000008002E001
ENDTYPE

TYPE "TIFF"
   ICONNAME "Def_TIFF"
   OPTNAMEPATTERN "#?.tif#?"
   COMPAREBYTE 0 "MM"
ENDTYPE

TYPE "TIFF Gray"
   ICONNAME "Def_TIFF"
   OPTNAMEPATTERN "#?.tif#?"
   COMPAREBYTE 0 $49492A00
ENDTYPE

TYPE "SUNRASTER"
   ICONNAME "Def_SunRaster"
   COMPAREBYTE 0 $59A66A95
ENDTYPE

TYPE "Wav"
   ICONNAME "Def_Wav"
   OPTNAMEPATTERN "#?.wav#?"
   COMPAREBYTE 0 "RIFF"
   COMPAREBYTE 8 "WAVE"
ENDTYPE

TYPE "MaxiPlan"
   ICONNAME "Def_MaxiPlan"
   COMPAREBYTE 0 $474c424c
ENDTYPE

TYPE "Imagine"
   SUBTYPE "IFF"
   INSERTAFTER "FTXT"
   ICONNAME "Def_Imagine"
   COMPAREBYTE 8 "TDDD"
ENDTYPE

TYPE "CDAF"                # Compressed Data Archive File
   SUBTYPE "IFF"
   ICONNAME "Def_CDAF"
   COMPAREBYTE 8 "CDAF"
ENDTYPE

TYPE "Shrink"
   SUBTYPE "CDAF"
   ICONNAME "Def_Shrink"
   OPTNAMEPATTERN "#?.shr"
   COMPAREBYTE 20 "shrinkFILE"   # 20 is offset of archiver name
ENDTYPE

TYPE "Caligari"
   ICONNAME "Def_Caligari"
   COMPAREBYTE 0 "CALB"
ENDTYPE

TYPE "BAD IFF"
   SEARCHBYTE "FORM"
ENDTYPE

TYPE "Vista DEM"
   ICONNAME "Def_VistaDEM"
   OPTNAMEPATTERN "#?.DEM#?"
   COMPAREBYTE 0 "Vista DEM File"
ENDTYPE

TYPE "PP MEdMOD"
   SUBTYPE "PP Data"
   INSERTAFTER "MEd MOD"
   ICONNAME "Def_MEDModule"
   NAMEPATTERN "#?.(med|med.pp|mmd|mmd.pp)"
ENDTYPE

TYPE "GZip"
   ICONNAME "Def_GZip"
   COMPAREBYTE 0 $1F8B0800
ENDTYPE

TYPE "PBMFont"                      # PBM Font
   SUBTYPE "Text"
   ICONNAME "Def_PBMFont"
   NAMEPATTERN "#?.pbm"
   COMPAREBYTE 0 $50340A
ENDTYPE

TYPE "PPM"                          # PPM Graphics File
   SUBTYPE "Text"
   ICONNAME "Def_PPM"
   NAMEPATTERN "#?.ppm"
   COMPAREBYTE 0 $50330A
ENDTYPE

#TYPE "ASCII"
#   SUBTYPE "Text"
#   ICONNAME "Def_ASCII"
#   NAMEPATTERN "#?"
#ENDTYPE

