mirror of
https://github.com/simon987/sist2.git
synced 2025-12-13 15:29:04 +00:00
Add .doc support
This commit is contained in:
@@ -5,6 +5,7 @@ project(sist2 C)
|
|||||||
|
|
||||||
option(SIST_DEBUG "Build a debug executable" on)
|
option(SIST_DEBUG "Build a debug executable" on)
|
||||||
|
|
||||||
|
set(BUILD_TESTS on)
|
||||||
add_subdirectory(third-party/libscan)
|
add_subdirectory(third-party/libscan)
|
||||||
set(ARGPARSE_SHARED off)
|
set(ARGPARSE_SHARED off)
|
||||||
add_subdirectory(third-party/argparse)
|
add_subdirectory(third-party/argparse)
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
#include "libscan/text/text.h"
|
#include "libscan/text/text.h"
|
||||||
#include "libscan/mobi/scan_mobi.h"
|
#include "libscan/mobi/scan_mobi.h"
|
||||||
#include "libscan/raw/raw.h"
|
#include "libscan/raw/raw.h"
|
||||||
|
#include "libscan/msdoc/msdoc.h"
|
||||||
#include "src/io/store.h"
|
#include "src/io/store.h"
|
||||||
|
|
||||||
#include <glib.h>
|
#include <glib.h>
|
||||||
@@ -48,6 +49,7 @@ typedef struct {
|
|||||||
scan_text_ctx_t text_ctx;
|
scan_text_ctx_t text_ctx;
|
||||||
scan_mobi_ctx_t mobi_ctx;
|
scan_mobi_ctx_t mobi_ctx;
|
||||||
scan_raw_ctx_t raw_ctx;
|
scan_raw_ctx_t raw_ctx;
|
||||||
|
scan_msdoc_ctx_t msdoc_ctx;
|
||||||
} ScanCtx_t;
|
} ScanCtx_t;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|||||||
@@ -149,6 +149,14 @@ void initialize_scan_context(scan_args_t *args) {
|
|||||||
ScanCtx.text_ctx.log = _log;
|
ScanCtx.text_ctx.log = _log;
|
||||||
ScanCtx.text_ctx.logf = _logf;
|
ScanCtx.text_ctx.logf = _logf;
|
||||||
|
|
||||||
|
// MSDOC
|
||||||
|
ScanCtx.msdoc_ctx.tn_size = args->size;
|
||||||
|
ScanCtx.msdoc_ctx.content_size = args->content_size;
|
||||||
|
ScanCtx.msdoc_ctx.log = _log;
|
||||||
|
ScanCtx.msdoc_ctx.logf = _logf;
|
||||||
|
ScanCtx.msdoc_ctx.store = _store;
|
||||||
|
ScanCtx.msdoc_ctx.msdoc_mime = mime_get_mime_by_string(ScanCtx.mime_table, "application/msword");
|
||||||
|
|
||||||
ScanCtx.threads = args->threads;
|
ScanCtx.threads = args->threads;
|
||||||
ScanCtx.depth = args->depth;
|
ScanCtx.depth = args->depth;
|
||||||
|
|
||||||
|
|||||||
@@ -162,6 +162,8 @@ void parse(void *arg) {
|
|||||||
parse_sidecar(&job->vfile, &doc);
|
parse_sidecar(&job->vfile, &doc);
|
||||||
CLOSE_FILE(job->vfile)
|
CLOSE_FILE(job->vfile)
|
||||||
return;
|
return;
|
||||||
|
} else if (is_msdoc(&ScanCtx.msdoc_ctx, doc.mime)) {
|
||||||
|
parse_msdoc(&ScanCtx.msdoc_ctx, &job->vfile, &doc);
|
||||||
}
|
}
|
||||||
|
|
||||||
abort:
|
abort:
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
2
third-party/argparse
vendored
2
third-party/argparse
vendored
Submodule third-party/argparse updated: 4ed6099cb3...d94b1bce15
2
third-party/libscan
vendored
2
third-party/libscan
vendored
Submodule third-party/libscan updated: 101fbbfbf0...070186fea0
Reference in New Issue
Block a user