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,9 +477,7 @@ class FType_Word(FType_Base):
477 name = 'MS Word (generic)' 477 name = 'MS Word (generic)'
478 longname = 'MS Word Document or Template (generic)' 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 application = APP.MSWORD 481 application = APP.MSWORD
484 filetype = FTYPE.WORD97 482 filetype = FTYPE.WORD97
485 name = 'MS Word 97 Document' 483 name = 'MS Word 97 Document'
@@ -492,7 +490,7 @@ class FType_Word97(FType_OLE_CLSID_Base): @@ -492,7 +490,7 @@ class FType_Word97(FType_OLE_CLSID_Base):
492 may_contain_ole = True 490 may_contain_ole = True
493 # TODO: if no CLSID, check stream 'WordDocument' 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 application = APP.MSWORD 494 application = APP.MSWORD
497 filetype = FTYPE.WORD6 495 filetype = FTYPE.WORD6
498 name = 'MS Word 6 Document' 496 name = 'MS Word 6 Document'
@@ -503,28 +501,34 @@ class FType_Word6(FType_OLE_CLSID_Base): @@ -503,28 +501,34 @@ class FType_Word6(FType_OLE_CLSID_Base):
503 PUID = 'fmt/39' 501 PUID = 'fmt/39'
504 may_contain_ole = True 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 application = APP.MSWORD 511 application = APP.MSWORD
508 filetype = FTYPE.WORD2007_DOCX 512 filetype = FTYPE.WORD2007_DOCX
509 name = 'MS Word 2007+ Document' 513 name = 'MS Word 2007+ Document'
510 longname = 'MS Word 2007+ Document (.docx)' 514 longname = 'MS Word 2007+ Document (.docx)'
511 extensions = ['docx'] 515 extensions = ['docx']
512 516
513 -class FType_Word2007_Macro(FType_Generic_OpenXML): 517 +class FType_Word2007_Macro(FType_Word2007_Base):
514 application = APP.MSWORD 518 application = APP.MSWORD
515 filetype = FTYPE.WORD2007_DOCM 519 filetype = FTYPE.WORD2007_DOCM
516 name = 'MS Word 2007+ Macro-Enabled Document' 520 name = 'MS Word 2007+ Macro-Enabled Document'
517 longname = 'MS Word 2007+ Macro-Enabled Document (.docm)' 521 longname = 'MS Word 2007+ Macro-Enabled Document (.docm)'
518 extensions = ['docm'] 522 extensions = ['docm']
519 523
520 -class FType_Word2007_Template(FType_Generic_OpenXML): 524 +class FType_Word2007_Template(FType_Word2007_Base):
521 application = APP.MSWORD 525 application = APP.MSWORD
522 filetype = FTYPE.WORD2007_DOTX 526 filetype = FTYPE.WORD2007_DOTX
523 name = 'MS Word 2007+ Template' 527 name = 'MS Word 2007+ Template'
524 longname = 'MS Word 2007+ Template (.dotx)' 528 longname = 'MS Word 2007+ Template (.dotx)'
525 extensions = ['dotx'] 529 extensions = ['dotx']
526 530
527 -class FType_Word2007_Template_Macro(FType_Generic_OpenXML): 531 +class FType_Word2007_Template_Macro(FType_Word2007_Base):
528 application = APP.MSWORD 532 application = APP.MSWORD
529 filetype = FTYPE.WORD2007_DOTM 533 filetype = FTYPE.WORD2007_DOTM
530 name = 'MS Word 2007+ Macro-Enabled Template' 534 name = 'MS Word 2007+ Macro-Enabled Template'