head 1.1; branch 1.1.1; access; symbols FILE5_48:1.1.1.3 netbsd-11-0-RC4:1.1.1.2 netbsd-11-0-RC3:1.1.1.2 netbsd-11-0-RC2:1.1.1.2 netbsd-11-0-RC1:1.1.1.2 perseant-exfatfs-base-20250801:1.1.1.2 netbsd-11:1.1.1.2.0.60 netbsd-11-base:1.1.1.2 netbsd-10-1-RELEASE:1.1.1.2 perseant-exfatfs-base-20240630:1.1.1.2 perseant-exfatfs:1.1.1.2.0.58 perseant-exfatfs-base:1.1.1.2 netbsd-8-3-RELEASE:1.1.1.2 netbsd-9-4-RELEASE:1.1.1.2 netbsd-10-0-RELEASE:1.1.1.2 netbsd-10-0-RC6:1.1.1.2 netbsd-10-0-RC5:1.1.1.2 netbsd-10-0-RC4:1.1.1.2 netbsd-10-0-RC3:1.1.1.2 netbsd-10-0-RC2:1.1.1.2 netbsd-10-0-RC1:1.1.1.2 FILE5_45:1.1.1.2 netbsd-10:1.1.1.2.0.56 netbsd-10-base:1.1.1.2 FILE5_43:1.1.1.2 netbsd-9-3-RELEASE:1.1.1.2 cjep_sun2x-base1:1.1.1.2 cjep_sun2x:1.1.1.2.0.54 cjep_sun2x-base:1.1.1.2 cjep_staticlib_x-base1:1.1.1.2 netbsd-9-2-RELEASE:1.1.1.2 cjep_staticlib_x:1.1.1.2.0.52 cjep_staticlib_x-base:1.1.1.2 FILE5_40:1.1.1.2 netbsd-9-1-RELEASE:1.1.1.2 FILE5_39:1.1.1.2 phil-wifi-20200421:1.1.1.2 phil-wifi-20200411:1.1.1.2 is-mlppp:1.1.1.2.0.50 is-mlppp-base:1.1.1.2 phil-wifi-20200406:1.1.1.2 netbsd-8-2-RELEASE:1.1.1.2 netbsd-9-0-RELEASE:1.1.1.2 netbsd-9-0-RC2:1.1.1.2 FILE5_38:1.1.1.2 netbsd-9-0-RC1:1.1.1.2 phil-wifi-20191119:1.1.1.2 netbsd-9:1.1.1.2.0.48 netbsd-9-base:1.1.1.2 phil-wifi-20190609:1.1.1.2 netbsd-8-1-RELEASE:1.1.1.2 FILE5_37:1.1.1.2 netbsd-8-1-RC1:1.1.1.2 pgoyette-compat-merge-20190127:1.1.1.2 pgoyette-compat-20190127:1.1.1.2 pgoyette-compat-20190118:1.1.1.2 pgoyette-compat-1226:1.1.1.2 pgoyette-compat-1126:1.1.1.2 pgoyette-compat-1020:1.1.1.2 FILE5_35:1.1.1.2 pgoyette-compat-0930:1.1.1.2 pgoyette-compat-0906:1.1.1.2 netbsd-7-2-RELEASE:1.1.1.2 pgoyette-compat-0728:1.1.1.2 netbsd-8-0-RELEASE:1.1.1.2 phil-wifi:1.1.1.2.0.46 phil-wifi-base:1.1.1.2 pgoyette-compat-0625:1.1.1.2 netbsd-8-0-RC2:1.1.1.2 pgoyette-compat-0521:1.1.1.2 pgoyette-compat-0502:1.1.1.2 pgoyette-compat-0422:1.1.1.2 netbsd-8-0-RC1:1.1.1.2 FILE5_33:1.1.1.2 pgoyette-compat-0415:1.1.1.2 pgoyette-compat-0407:1.1.1.2 pgoyette-compat-0330:1.1.1.2 pgoyette-compat-0322:1.1.1.2 pgoyette-compat-0315:1.1.1.2 netbsd-7-1-2-RELEASE:1.1.1.2 pgoyette-compat:1.1.1.2.0.44 pgoyette-compat-base:1.1.1.2 netbsd-7-1-1-RELEASE:1.1.1.2 matt-nb8-mediatek:1.1.1.2.0.42 matt-nb8-mediatek-base:1.1.1.2 FILE5_32:1.1.1.2 perseant-stdc-iso10646:1.1.1.2.0.40 perseant-stdc-iso10646-base:1.1.1.2 netbsd-8:1.1.1.2.0.38 netbsd-8-base:1.1.1.2 FILE5_31:1.1.1.2 prg-localcount2-base3:1.1.1.2 prg-localcount2-base2:1.1.1.2 prg-localcount2-base1:1.1.1.2 prg-localcount2:1.1.1.2.0.36 prg-localcount2-base:1.1.1.2 pgoyette-localcount-20170426:1.1.1.2 bouyer-socketcan-base1:1.1.1.2 pgoyette-localcount-20170320:1.1.1.2 netbsd-7-1:1.1.1.2.0.34 netbsd-7-1-RELEASE:1.1.1.2 netbsd-7-1-RC2:1.1.1.2 FILE5_30:1.1.1.2 netbsd-7-nhusb-base-20170116:1.1.1.2 bouyer-socketcan:1.1.1.2.0.32 bouyer-socketcan-base:1.1.1.2 pgoyette-localcount-20170107:1.1.1.2 netbsd-7-1-RC1:1.1.1.2 pgoyette-localcount-20161104:1.1.1.2 netbsd-7-0-2-RELEASE:1.1.1.2 localcount-20160914:1.1.1.2 netbsd-7-nhusb:1.1.1.2.0.30 netbsd-7-nhusb-base:1.1.1.2 pgoyette-localcount-20160806:1.1.1.2 pgoyette-localcount-20160726:1.1.1.2 pgoyette-localcount:1.1.1.2.0.28 pgoyette-localcount-base:1.1.1.2 netbsd-7-0-1-RELEASE:1.1.1.2 netbsd-7-0:1.1.1.2.0.26 netbsd-7-0-RELEASE:1.1.1.2 netbsd-7-0-RC3:1.1.1.2 netbsd-7-0-RC2:1.1.1.2 netbsd-7-0-RC1:1.1.1.2 FILE5_22:1.1.1.2 FILE5_20:1.1.1.2 netbsd-6-0-6-RELEASE:1.1.1.2 netbsd-6-1-5-RELEASE:1.1.1.2 netbsd-7:1.1.1.2.0.24 netbsd-7-base:1.1.1.2 FILE5_19:1.1.1.2 yamt-pagecache-base9:1.1.1.2 yamt-pagecache-tag8:1.1.1.2 netbsd-6-1-4-RELEASE:1.1.1.2 netbsd-6-0-5-RELEASE:1.1.1.2 tls-earlyentropy:1.1.1.2.0.22 tls-earlyentropy-base:1.1.1.2 riastradh-xf86-video-intel-2-7-1-pre-2-21-15:1.1.1.2 riastradh-drm2-base3:1.1.1.2 netbsd-6-1-3-RELEASE:1.1.1.2 netbsd-6-0-4-RELEASE:1.1.1.2 FILE5_16:1.1.1.2 netbsd-6-1-2-RELEASE:1.1.1.2 netbsd-6-0-3-RELEASE:1.1.1.2 netbsd-6-1-1-RELEASE:1.1.1.2 riastradh-drm2-base2:1.1.1.2 riastradh-drm2-base1:1.1.1.2 riastradh-drm2:1.1.1.2.0.14 riastradh-drm2-base:1.1.1.2 netbsd-6-1:1.1.1.2.0.20 netbsd-6-0-2-RELEASE:1.1.1.2 netbsd-6-1-RELEASE:1.1.1.2 khorben-n900:1.1.1.2.0.18 netbsd-6-1-RC4:1.1.1.2 netbsd-6-1-RC3:1.1.1.2 agc-symver:1.1.1.2.0.16 agc-symver-base:1.1.1.2 FILE5_14:1.1.1.2 netbsd-6-1-RC2:1.1.1.2 netbsd-6-1-RC1:1.1.1.2 yamt-pagecache-base8:1.1.1.2 FILE_5_12:1.1.1.2 netbsd-6-0-1-RELEASE:1.1.1.2 yamt-pagecache-base7:1.1.1.2 matt-nb6-plus-nbase:1.1.1.2 yamt-pagecache-base6:1.1.1.2 netbsd-6-0:1.1.1.2.0.12 netbsd-6-0-RELEASE:1.1.1.2 netbsd-6-0-RC2:1.1.1.2 tls-maxphys:1.1.1.2.0.10 tls-maxphys-base:1.1.1.2 matt-nb6-plus:1.1.1.2.0.8 matt-nb6-plus-base:1.1.1.2 netbsd-6-0-RC1:1.1.1.2 yamt-pagecache-base5:1.1.1.2 yamt-pagecache-base4:1.1.1.2 FILE5_11:1.1.1.2 netbsd-6:1.1.1.2.0.6 netbsd-6-base:1.1.1.2 yamt-pagecache-base3:1.1.1.2 yamt-pagecache-base2:1.1.1.2 yamt-pagecache:1.1.1.2.0.4 yamt-pagecache-base:1.1.1.2 FILE5_09:1.1.1.2 cherry-xenmp:1.1.1.2.0.2 cherry-xenmp-base:1.1.1.2 FILE5_07:1.1.1.2 bouyer-quota2-nbase:1.1.1.1 bouyer-quota2:1.1.1.1.0.4 bouyer-quota2-base:1.1.1.1 matt-mips64-premerge-20101231:1.1.1.1 matt-premerge-20091211:1.1.1.1 jym-xensuspend-base:1.1.1.1 jym-xensuspend:1.1.1.1.0.2 jym-xensuspend-nbase:1.1.1.1 FILE5_03:1.1.1.1 CHRISTOS:1.1.1; locks; strict; comment @# @; 1.1 date 2009.05.08.16.35.09; author christos; state Exp; branches 1.1.1.1; next ; 1.1.1.1 date 2009.05.08.16.35.09; author christos; state Exp; branches 1.1.1.1.2.1; next 1.1.1.2; 1.1.1.2 date 2011.05.12.20.47.02; author christos; state Exp; branches; next 1.1.1.3; 1.1.1.3 date 2026.06.10.15.59.14; author christos; state Exp; branches; next ; commitid 3UWc0DrzTz7bHgJG; 1.1.1.1.2.1 date 2009.05.08.16.35.09; author jym; state dead; branches; next 1.1.1.1.2.2; 1.1.1.1.2.2 date 2009.05.13.18.51.56; author jym; state Exp; branches; next ; desc @@ 1.1 log @Initial revision @ text @ #------------------------------------------------------------------------------ # ispell: file(1) magic for ispell # # Ispell 3.0 has a magic of 0x9601 and ispell 3.1 has 0x9602. This magic # will match 0x9600 through 0x9603 in *both* little endian and big endian. # (No other current magic entries collide.) # # Updated by Daniel Quinlan (quinlan@@yggdrasil.com) # 0 leshort&0xFFFC 0x9600 little endian ispell >0 byte 0 hash file (?), >0 byte 1 3.0 hash file, >0 byte 2 3.1 hash file, >0 byte 3 hash file (?), >2 leshort 0x00 8-bit, no capitalization, 26 flags >2 leshort 0x01 7-bit, no capitalization, 26 flags >2 leshort 0x02 8-bit, capitalization, 26 flags >2 leshort 0x03 7-bit, capitalization, 26 flags >2 leshort 0x04 8-bit, no capitalization, 52 flags >2 leshort 0x05 7-bit, no capitalization, 52 flags >2 leshort 0x06 8-bit, capitalization, 52 flags >2 leshort 0x07 7-bit, capitalization, 52 flags >2 leshort 0x08 8-bit, no capitalization, 128 flags >2 leshort 0x09 7-bit, no capitalization, 128 flags >2 leshort 0x0A 8-bit, capitalization, 128 flags >2 leshort 0x0B 7-bit, capitalization, 128 flags >2 leshort 0x0C 8-bit, no capitalization, 256 flags >2 leshort 0x0D 7-bit, no capitalization, 256 flags >2 leshort 0x0E 8-bit, capitalization, 256 flags >2 leshort 0x0F 7-bit, capitalization, 256 flags >4 leshort >0 and %d string characters 0 beshort&0xFFFC 0x9600 big endian ispell >1 byte 0 hash file (?), >1 byte 1 3.0 hash file, >1 byte 2 3.1 hash file, >1 byte 3 hash file (?), >2 beshort 0x00 8-bit, no capitalization, 26 flags >2 beshort 0x01 7-bit, no capitalization, 26 flags >2 beshort 0x02 8-bit, capitalization, 26 flags >2 beshort 0x03 7-bit, capitalization, 26 flags >2 beshort 0x04 8-bit, no capitalization, 52 flags >2 beshort 0x05 7-bit, no capitalization, 52 flags >2 beshort 0x06 8-bit, capitalization, 52 flags >2 beshort 0x07 7-bit, capitalization, 52 flags >2 beshort 0x08 8-bit, no capitalization, 128 flags >2 beshort 0x09 7-bit, no capitalization, 128 flags >2 beshort 0x0A 8-bit, capitalization, 128 flags >2 beshort 0x0B 7-bit, capitalization, 128 flags >2 beshort 0x0C 8-bit, no capitalization, 256 flags >2 beshort 0x0D 7-bit, no capitalization, 256 flags >2 beshort 0x0E 8-bit, capitalization, 256 flags >2 beshort 0x0F 7-bit, capitalization, 256 flags >4 beshort >0 and %d string characters # ispell 4.0 hash files kromJx # Ispell 4.0 0 string ISPL ispell >4 long x hash file version %d, >8 long x lexletters %d, >12 long x lexsize %d, >16 long x hashsize %d, >20 long x stblsize %d @ 1.1.1.1 log @from ftp.astron.com @ text @@ 1.1.1.2 log @from ftp.astron.com. - many security related fixes - no MAXPATHLEN limits - fixed missing text specification on ascii magic - new ``pascal'' style string formats - whitespace comparison fix - more magic @ text @a2 1 # $File: ispell,v 1.8 2009/09/19 16:28:10 christos Exp $ @ 1.1.1.3 log @Import file-5.48 (previous was file-5.45) 2026-05-07 11:32 Christos Zoulas * release 5.48 2026-05-11 15:55 Christos Zoulas * add landlock support (valoq) 2026-04-19 15:55 Christos Zoulas * add BE/LE GUID 2026-04-17 11:05 Christos Zoulas * multiple fixes to prevent integer overflow in 32 bits (kerwin) 2026-04-15 12:40 Christos Zoulas * PR/745: streamout: Don't flush when trying to set negative offsets on pipes, just continue, fixes 'cat file.zip | file -' * PR/753: vmihalko: Fix race is magic_getpath() 2026-03-11 15:14 Christos Zoulas * PR/728: Anton Monroe: Reinstate regex/c 2026-02-26 11:32 Christos Zoulas * release 5.47 2026-02-04 09:54 Christos Zoulas * Better multi-compound document identification by following the order of the directories entries. (Thomas Ledoux) 2026-01-19 14:00 Christos Zoulas * if stat fails, don't attempt to restore times (Steven Grubb) 2025-05-28 15:20 Christos Zoulas * PR/622: Odd_Bloke: Handle negative offsets in file_buffer(), when fd is not available. 2025-05-28 12:50 Christos Zoulas * PR/655: jsummers: Obey str_flags in strings like we do for search and regex * PR/659: Pitzl: Apply MAGIC_CONTINUE to annotations; i.e. print only the first, unless -k is specified. 2024-12-19 14:44 Christos Zoulas * PR/592: allow + in format strings * PR/592: signed operations should be done in signed context 2024-12-05 13:50 Christos Zoulas * PR/578: jsummers: Don't crash on cygwin when tm_mon == -1 * PR/579: net147: Fix stack overrun. 2024-11-27 14:44 Christos Zoulas * release 5.46 * Add OFFPOSITIVE 2024-11-25 13:56 Christos Zoulas * avoid leaking symbols in libmagic 2024-11-10 13:56 Christos Zoulas * PR/562: jsummers: Search/regex offsets are absolute to the beginning of the file, so adjust them by subtracting the offset that the "use" starts so that we don't double-count it. 2024-11-09 19:30 Christos Zoulas * PR/543: matshch: bump nbuf so we can get the flags into the buffer. 2024-11-02 14:34 Christos Zoulas * Add Android elf notes (enh) 2023-12-29 12:55 Christos Zoulas * Add limit for number of magic warnings allowed 2023-07-29 12:55 Christos Zoulas * check regex bounds (found by clusterfuzz) @ text @d3 2 a4 2 # $File: ispell,v 1.11 2026/04/16 18:06:17 christos Exp $ # ispell: file(1) magic for ispell, MySpell, Hunspell and aspell a63 187 # Summary: affixes defition text files for Ispell/MySpell/Hunspell # From: Joerg Jenderek # URL: https://www.openoffice.org/lingucomponent/affix.readme # https://man.archlinux.org/man/hunspell.5.en # Reference: http://mark0.net/download/triddefs_xml.7z/defs/a/affix.trid.xml # Note: called "Affix file" by TrID # variant starting with comment character 0 ubyte 0x23 # look for SET character command followed by whitespace (seems to be often 1 space character) like in: # /usr/share/calibre/dictionaries/en-GB/en-GB.aff >0 search/60459 SET\040 # skip scripts like /bin/affixcompress /bin/setupcon /bin/imdbpy2sql.py by checking for valid character SET argument # character SET argument like: UTF-8 >>&0 string UTF-8 >>>0 use spell-aff # character SET argument like: ISO8859-1 - ISO8859-10 ISO8859-13 - ISO8859-15 >>&0 string ISO8859- >>>0 use spell-aff # character SET argument for Russian with Cyrillic alphabet like: KOI8-R KOI8-U # no russian support until war against ukraine >>&0 string KOI8- #>>>0 use spell-aff # character SET argument for languages with Cyrillic alphabet like: cp1251 # no cyrillic support until russia war against ukraine >>&0 string cp1251 #>>>0 use spell-aff # character SET argument for Indian Script Code for Information Interchange (ISCII) like: ISCII-DEVANAGARI >>&0 string ISCII- # no example found >>>0 use spell-aff # not "real" affix rule files but found as tests unit inside thunderbird sources like: # 1463589.aff 1695964.aff 2970240.aff >0 default x # look for suffix SFX command followed by whitespace like in: # 1695964.aff >>0 search/164 SFX\040 >>>0 use spell-aff # if not real Hunspell/MySpell affix look for ispell variant >>0 default x # URL: https://manpages.debian.org/testing/ispell/ispell.5.en.html # look for ispell declaration like in: /usr/lib/ispell/espanol.aff >>>0 search/8251 defstringtype # defstringtype declaration start with unique name (like "list" "lat" "utf8" "iso" "nroff" often like formatter name) # followed by formatter name (like "nroff" "tex") # followed by suffix list (like ".mm" ".ms" ".me" ".man" ".NeXT" ".txt" ".list") #>>>>&1 string x DECLARATION=%s >>>>0 use spell-aff # ispell variant without declaration like in: /usr/lib/ispell/bulgarian.aff /usr/lib/ispell/russian.aff # XXX: too weak #>>>0 default x # skip /etc/nilfs_cleanerd.conf by looking for ispell suffix section #>>>>0 search/3233 suffixes\n #>>>>>0 use spell-aff # variant starting with empty line and comment character at the beginning of 2nd line like in: /usr/lib/ispell/polish.aff 0 ubeshort 0x0a23 # skip /etc/discover-modprobe.conf by looking for ispell declaration >2 search/3118 defstringtype >>0 use spell-aff # starting with UTF-8 Byte Order Mark (BOM) https://en.wikipedia.org/wiki/Byte_order_mark 0 string \xEF\xBB\xBF # starting with UTF-8 Byte Order Mark (BOM) followed by comment starting character >3 string \x23 # starting with UTF-8 BOM and with SET character command followed by whitespace # like in: /opt/Wolfram/WolframEngine/13.1/SystemFiles/Components/SpellingData/SpellingDictionaries/lt.aff # look for character SET command used in MySpell and Hunspell >3 search/9883 SET\040 >>0 use spell-aff # look for FLAG type command used in MySpell and Hunspell 0 string FLAG # followed by space character like in # /opt/Wolfram/WolframEngine/13.1/SystemFiles/Components/SpellingData/SpellingDictionaries/en_US.aff >4 ubyte 0x20 >>0 use spell-aff # or followed by tabulator character like in # /opt/Wolfram/WolframEngine/13.1/SystemFiles/Components/SpellingData/SpellingDictionaries/ar.aff >4 ubyte 0x09 >>0 use spell-aff # starting with character SET command used in MySpell and Hunspell like in: org/languagetool/resource/sv/hunspell/sv_SE.aff 0 string SET\040 >0 use spell-aff # starting with language code LANG used in MySpell and Hunspell like in: /usr/share/hunspell/tr_TR.aff 0 string LANG\040 >0 use spell-aff # starting with affix flag command AF used in MySpell and Hunspell like in: /usr/lib/thunderbird/extensions/langpack-hu@@thunderbird.mozilla.org/dictionaries/hu.aff 0 string AF\040 # look for number of flag vector aliases >3 regex [0-9]{1,4} >>0 use spell-aff # display information (encoding,language,...) about affixes rules text for Ispell/MySpell/Hunspell 0 name spell-aff >1 ubeshort x affix definition #!:mime text/plain !:mime text/x-affix !:ext aff # GRR: need extra test so that default clause works >0 ubyte x # look for ispell declaration >>0 search/8251 defstringtype for Ispell # ispell variant without declaration >>0 default x # look for ispell suffixes command >>>0 search/3233 suffixes # skip "suffixes used to create first part of a compound" by checking for flag argument like in: languagetool\resource\sv\hunspell\sv_SE.aff >>>>&0 search/2 flag for Ispell >>>>&0 default x for MySpell/Hunspell # without suffixes keyword >>>0 default x for MySpell/Hunspell # look for language code command used in MySpell and Hunspell # like in: /usr/share/hunspell/de_AT.aff /usr/share/hunspell/it_IT.aff /usr/share/hunspell/tr_TR.aff /usr/lib/firefox/browser/extensions/langpack-hu@@firefox.mozilla.org/dictionaries/hu.aff >>0 search/1117643 LANG\040 \b, language # language code argument like: de_DE hu_HU it_IT mn_MN tr_TR >>>&0 string x %s # look for character SET command used in MySpell and Hunspell >>0 search/1117729 SET # skip SETTINGS like in /usr/lib/ispell/ngerman.aff # SET command followed often by space character (0x20) or tabulator (0x09) like in # /opt/Wolfram/WolframEngine/13.1/SystemFiles/Components/SpellingData/SpellingDictionaries/ar.aff >>>&0 ubyte&0xD6 =0x00 # skip SSET # schosS in /usr/lib/ispell/ogerman.aff >>>>&0 ubyte >0x48 \b, # character SET argument like: cp1251 ISCII-DEVANAGAR ISO8859-1 - ISO8859-10 ISO8859-13 - ISO8859-15 KOI8-R KOI8-U UTF-8 >>>>>&-1 string x "%s" encoded # for control reasons show first non empty lines for ASCII or ISO-8859 text variant >1 ubeshort !0xBBBF # 1st line starting with 0x0A like in /usr/src/dicts/sjp-ispell-pl-20140213/polish.aff >>0 ubyte =0x0A >>>1 ubyte !0x0A \b, 2nd line >>>>&-1 string x "%s" # 3rd line starting with 0x0A like in polish.aff >>>>>&1 ubyte =0x0A >>>>>>&0 string x \b, 4th line "%s" # 1st line starting with ASCII text like: # this is the affix file of the de_DE Hunspell dictionary >>0 ubyte !0x0A >>>0 string x \b, 1st line "%s" >>>>&1 ubyte >0x1F \b, 2nd line >>>>>&-1 string x "%s" # 2nd line starting with 0x0A like in /usr/lib/ispell/bulgarian.aff >>>>&1 ubyte =0x0A \b, 3rd line >>>>>&0 string x "%s" # for control reasons show first lines for variant starting with ByteOrderMark (BOM=\xEF\xBB\xBF) >1 ubeshort =0xBBBF \b, with BOM >>3 string x \b, 1st line "%s" >>>&1 ubyte >0x1F \b, 2nd line >>>>&-1 string x "%s" # From: Joerg Jenderek # URL: https://en.wikipedia.org/wiki/GNU_Aspell # https://manpages.ubuntu.com/manpages/trusty/en/man8/aspell-autobuildhash.8.html # Reference: http://mark0.net/download/triddefs_xml.7z/defs/r/rws-aspell.trid.xml # https://ftp.gnu.org/gnu/aspell/aspell-0.60.8.tar.gz # aspell-0.60.8/modules/speller/default/data.cpp # aspell-0.60.8/modules/speller/default/readonly_ws.cpp # Note: called "aspell dictionary" by TrID 0 string aspell\040default\040speller\040rowl aspell dictionary #!:mime application/octet-stream !:mime application/x-aspell-dictionary !:ext rws # version like: 1.10 1.4 >28 string x \b, version %s # u32int endian_check; 12345678=00BC614Eh #>64 ulelong x \b, endian_check=%u >>64 ulelong 12345678 \b, little endian # not tested >>64 ubelong 12345678 \b, big endian # older aspell version not like 0.60.8 >>64 default x \b, old # URL: https://en.wikipedia.org/wiki/GNU_Aspell # Reference http://aspell.net/man-html/Format-of-the-Personal-and-Replacement-Dictionaries.html # personal_ws-1.1 lang num [encoding] 0 string personal_ aspell personal # Reference: http://mark0.net/download/triddefs_xml.7z/defs/p/pws-aspell.trid.xml # Note: called "aspell Personal dictionary" by TrID >9 string ws- dictionary #!:mime text/plain !:mime text/x-aspell-dictionary # like: ~/.aspell.en.pws ~/.aspell.de_DE.pws ~/.aspell.it.pws !:ext pws # Reference: http://mark0.net/download/triddefs_xml.7z/defs/p/prepl-aspell.trid.xml # Note: called "aspell Personal Replacement dictionary" by TrID # personal_repl-1.1 lang num [encoding] >9 string repl- replacement dictionary #!:mime text/plain !:mime text/x-aspell-dictionary # like: ~/.aspell.en.prepl ~/.aspell.de_DE.prepl ~/.aspell.it.prepl !:ext prepl @ 1.1.1.1.2.1 log @file ispell was added on branch jym-xensuspend on 2009-05-13 18:51:56 +0000 @ text @d1 62 @ 1.1.1.1.2.2 log @Sync with HEAD. Second commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html @ text @a0 62 #------------------------------------------------------------------------------ # ispell: file(1) magic for ispell # # Ispell 3.0 has a magic of 0x9601 and ispell 3.1 has 0x9602. This magic # will match 0x9600 through 0x9603 in *both* little endian and big endian. # (No other current magic entries collide.) # # Updated by Daniel Quinlan (quinlan@@yggdrasil.com) # 0 leshort&0xFFFC 0x9600 little endian ispell >0 byte 0 hash file (?), >0 byte 1 3.0 hash file, >0 byte 2 3.1 hash file, >0 byte 3 hash file (?), >2 leshort 0x00 8-bit, no capitalization, 26 flags >2 leshort 0x01 7-bit, no capitalization, 26 flags >2 leshort 0x02 8-bit, capitalization, 26 flags >2 leshort 0x03 7-bit, capitalization, 26 flags >2 leshort 0x04 8-bit, no capitalization, 52 flags >2 leshort 0x05 7-bit, no capitalization, 52 flags >2 leshort 0x06 8-bit, capitalization, 52 flags >2 leshort 0x07 7-bit, capitalization, 52 flags >2 leshort 0x08 8-bit, no capitalization, 128 flags >2 leshort 0x09 7-bit, no capitalization, 128 flags >2 leshort 0x0A 8-bit, capitalization, 128 flags >2 leshort 0x0B 7-bit, capitalization, 128 flags >2 leshort 0x0C 8-bit, no capitalization, 256 flags >2 leshort 0x0D 7-bit, no capitalization, 256 flags >2 leshort 0x0E 8-bit, capitalization, 256 flags >2 leshort 0x0F 7-bit, capitalization, 256 flags >4 leshort >0 and %d string characters 0 beshort&0xFFFC 0x9600 big endian ispell >1 byte 0 hash file (?), >1 byte 1 3.0 hash file, >1 byte 2 3.1 hash file, >1 byte 3 hash file (?), >2 beshort 0x00 8-bit, no capitalization, 26 flags >2 beshort 0x01 7-bit, no capitalization, 26 flags >2 beshort 0x02 8-bit, capitalization, 26 flags >2 beshort 0x03 7-bit, capitalization, 26 flags >2 beshort 0x04 8-bit, no capitalization, 52 flags >2 beshort 0x05 7-bit, no capitalization, 52 flags >2 beshort 0x06 8-bit, capitalization, 52 flags >2 beshort 0x07 7-bit, capitalization, 52 flags >2 beshort 0x08 8-bit, no capitalization, 128 flags >2 beshort 0x09 7-bit, no capitalization, 128 flags >2 beshort 0x0A 8-bit, capitalization, 128 flags >2 beshort 0x0B 7-bit, capitalization, 128 flags >2 beshort 0x0C 8-bit, no capitalization, 256 flags >2 beshort 0x0D 7-bit, no capitalization, 256 flags >2 beshort 0x0E 8-bit, capitalization, 256 flags >2 beshort 0x0F 7-bit, capitalization, 256 flags >4 beshort >0 and %d string characters # ispell 4.0 hash files kromJx # Ispell 4.0 0 string ISPL ispell >4 long x hash file version %d, >8 long x lexletters %d, >12 long x lexsize %d, >16 long x hashsize %d, >20 long x stblsize %d @