Commit 22b3af5746686ab74383cf9ad634a2d98785abae

Authored by Christian Herdtweck
1 parent 6e545fc8

ftguess: Make FType_Word super class of word types

This was a TODO which kept FileTypeGuesser.is_word from working properly.
Showing 1 changed file with 12 additions and 8 deletions
oletools/ftguess.py
... ... @@ -477,9 +477,7 @@ class FType_Word(FType_Base):
477 477 name = 'MS Word (generic)'
478 478 longname = 'MS Word Document or Template (generic)'
479 479  
480   -# TODO: all word FTypes should inherit from FType_Word
481   -
482   -class FType_Word97(FType_OLE_CLSID_Base):
  480 +class FType_Word97(FType_OLE_CLSID_Base, FType_Word):
483 481 application = APP.MSWORD
484 482 filetype = FTYPE.WORD97
485 483 name = 'MS Word 97 Document'
... ... @@ -492,7 +490,7 @@ class FType_Word97(FType_OLE_CLSID_Base):
492 490 may_contain_ole = True
493 491 # TODO: if no CLSID, check stream 'WordDocument'
494 492  
495   -class FType_Word6(FType_OLE_CLSID_Base):
  493 +class FType_Word6(FType_OLE_CLSID_Base, FType_Word):
496 494 application = APP.MSWORD
497 495 filetype = FTYPE.WORD6
498 496 name = 'MS Word 6 Document'
... ... @@ -503,28 +501,34 @@ class FType_Word6(FType_OLE_CLSID_Base):
503 501 PUID = 'fmt/39'
504 502 may_contain_ole = True
505 503  
506   -class FType_Word2007(FType_Generic_OpenXML):
  504 +class FType_Word2007_Base(FType_Generic_OpenXML, FType_Word):
  505 + application = APP.MSWORD
  506 + name = 'MS Word 2007+ File'
  507 + longname = 'MS Word 2007+ File (.doc?)'
  508 +
  509 +
  510 +class FType_Word2007(FType_Word2007_Base):
507 511 application = APP.MSWORD
508 512 filetype = FTYPE.WORD2007_DOCX
509 513 name = 'MS Word 2007+ Document'
510 514 longname = 'MS Word 2007+ Document (.docx)'
511 515 extensions = ['docx']
512 516  
513   -class FType_Word2007_Macro(FType_Generic_OpenXML):
  517 +class FType_Word2007_Macro(FType_Word2007_Base):
514 518 application = APP.MSWORD
515 519 filetype = FTYPE.WORD2007_DOCM
516 520 name = 'MS Word 2007+ Macro-Enabled Document'
517 521 longname = 'MS Word 2007+ Macro-Enabled Document (.docm)'
518 522 extensions = ['docm']
519 523  
520   -class FType_Word2007_Template(FType_Generic_OpenXML):
  524 +class FType_Word2007_Template(FType_Word2007_Base):
521 525 application = APP.MSWORD
522 526 filetype = FTYPE.WORD2007_DOTX
523 527 name = 'MS Word 2007+ Template'
524 528 longname = 'MS Word 2007+ Template (.dotx)'
525 529 extensions = ['dotx']
526 530  
527   -class FType_Word2007_Template_Macro(FType_Generic_OpenXML):
  531 +class FType_Word2007_Template_Macro(FType_Word2007_Base):
528 532 application = APP.MSWORD
529 533 filetype = FTYPE.WORD2007_DOTM
530 534 name = 'MS Word 2007+ Macro-Enabled Template'
... ...