~ubuntu-branches/ubuntu/trusty/libwpd/trusty

« back to all changes in this revision

Viewing changes to src/lib/WPDocument.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Rene Engelhard
  • Date: 2006-07-15 11:58:12 UTC
  • mfrom: (1.1.5 upstream)
  • Revision ID: james.westby@ubuntu.com-20060715115812-v18efmdayby4clau
Tags: 0.8.6-1
* New upstream release
* swap maintainer/uploader

Show diffs side-by-side

added added

removed removed

Lines of Context:
97
97
                header = WPXHeader::constructHeader(document);
98
98
                if (header)
99
99
                {
100
 
                        switch (header->getMajorVersion())
 
100
                        switch (header->getFileType())
101
101
                        {
102
 
                                case 0x00: // WP5
103
 
                                case 0x02: // WP6
104
 
                                case 0x03: // WP Mac 3.0-3.5
105
 
                                case 0x04: // WP Mac 3.5e
106
 
                                        confidence = WPD_CONFIDENCE_EXCELLENT;
 
102
                                case 0x0a: // WordPerfect File
 
103
                                        switch (header->getMajorVersion())
 
104
                                        {
 
105
                                                case 0x00: // WP5
 
106
                                                case 0x02: // WP6+
 
107
                                                        confidence = WPD_CONFIDENCE_EXCELLENT;
 
108
                                                        break;
 
109
                                                default:
 
110
                                                        // unhandled file format
 
111
                                                        confidence = WPD_CONFIDENCE_NONE;
 
112
                                                        break;
 
113
                                        }
 
114
                                        break;
 
115
                                case 0x2c: // WP Mac File
 
116
                                        switch (header->getMajorVersion())
 
117
                                        {
 
118
                                                case 0x02: // WP Mac 2.x
 
119
                                                case 0x03: // WP Mac 3.0-3.5
 
120
                                                case 0x04: // WP Mac 3.5e
 
121
                                                        confidence = WPD_CONFIDENCE_EXCELLENT;
 
122
                                                        break;
 
123
                                                default:
 
124
                                                        // unhandled file format
 
125
                                                        confidence = WPD_CONFIDENCE_NONE;
 
126
                                                        break;
 
127
                                        }
107
128
                                        break;
108
129
                                default:
109
 
                                        // unhandled file format
 
130
                                        // unhandled file type
110
131
                                        confidence = WPD_CONFIDENCE_NONE;
111
132
                                        break;
112
 
                        }
 
133
                        }                                               
113
134
                        DELETEP(header);
114
135
                }
115
136
                else
182
203
 
183
204
                if (header)
184
205
                {
185
 
                        switch (header->getMajorVersion())
 
206
                        switch (header->getFileType())
186
207
                        {
187
 
                                case 0x00: // WP5
188
 
                                        WPD_DEBUG_MSG(("WordPerfect: Using the WP5 parser.\n"));
189
 
                                        parser = new WP5Parser(document, header);
190
 
                                        parser->parse(listenerImpl);
191
 
                                        break;
192
 
                                case 0x02: // WP6
193
 
                                        WPD_DEBUG_MSG(("WordPerfect: Using the WP6 parser.\n"));
194
 
                                        parser = new WP6Parser(document, header);
195
 
                                        parser->parse(listenerImpl);
196
 
                                        break;
197
 
                                case 0x03: // WP Mac 3.0-3.5
198
 
                                case 0x04: // WP Mac 3.5e
199
 
                                        WPD_DEBUG_MSG(("WordPerfect: Using the WP3 parser.\n"));
200
 
                                        parser = new WP3Parser(document, header);
201
 
                                        parser->parse(listenerImpl);
 
208
                                case 0x0a: // WordPerfect File
 
209
                                        switch (header->getMajorVersion())
 
210
                                        {
 
211
                                                case 0x00: // WP5
 
212
                                                        WPD_DEBUG_MSG(("WordPerfect: Using the WP5 parser.\n"));
 
213
                                                        parser = new WP5Parser(document, header);
 
214
                                                        parser->parse(listenerImpl);
 
215
                                                        break;
 
216
                                                case 0x02: // WP6
 
217
                                                        WPD_DEBUG_MSG(("WordPerfect: Using the WP6 parser.\n"));
 
218
                                                        parser = new WP6Parser(document, header);
 
219
                                                        parser->parse(listenerImpl);
 
220
                                                        break;
 
221
                                                default:
 
222
                                                        // unhandled file format
 
223
                                                        WPD_DEBUG_MSG(("WordPerfect: Unsupported file format.\n"));
 
224
                                                        break;
 
225
                                        }
 
226
                                        break;
 
227
                                case 0x2c: // WP Mac File
 
228
                                        switch (header->getMajorVersion())
 
229
                                        {
 
230
                                                case 0x02: // WP Mac 2.x
 
231
                                                case 0x03: // WP Mac 3.0-3.5
 
232
                                                case 0x04: // WP Mac 3.5e
 
233
                                                        WPD_DEBUG_MSG(("WordPerfect: Using the WP3 parser.\n"));
 
234
                                                        parser = new WP3Parser(document, header);
 
235
                                                        parser->parse(listenerImpl);
 
236
                                                        break;
 
237
                                                default:
 
238
                                                        // unhandled file format
 
239
                                                        WPD_DEBUG_MSG(("WordPerfect: Unsupported file format.\n"));
 
240
                                                        break;
 
241
                                        }
202
242
                                        break;
203
243
                                default:
204
244
                                        // unhandled file format
205
 
                                        WPD_DEBUG_MSG(("WordPerfect: Unsupported file format.\n"));
 
245
                                        WPD_DEBUG_MSG(("WordPerfect: Unsupported file type.\n"));
206
246
                                        break;
207
247
                        }
208
248
 
216
256
                        // a file in the WP4.2 format.
217
257
                        int confidence = WP42Heuristics::isWP42FileFormat(document, false /* FIXME: allow for partial content */);
218
258
 
219
 
                        if (confidence == WPD_CONFIDENCE_GOOD || confidence == WPD_CONFIDENCE_EXCELLENT)
 
259
                        if (confidence != WPD_CONFIDENCE_NONE)
220
260
                        {
221
261
                                WPD_DEBUG_MSG(("WordPerfect: Mostly likely the file format is WP4.2.\n\n"));
222
262
                                WPD_DEBUG_MSG(("WordPerfect: Using the WP4.2 parser.\n\n"));
256
296
 
257
297
        return error;
258
298
}
259
 
 
260
 
/*
261
 
 
262
 
TOTALLY BROKEN, DO NOT USE!!!
263
 
I MEAN IT!
264
 
 
265
 
void WPDocument::parse(WPXInputStream *input, WPXHLListenerImpl *listenerImpl, WPXFileType fileType)
266
 
{
267
 
        WPXParser *parser = NULL;
268
 
        WPXHeader *header = NULL;
269
 
 
270
 
        try
271
 
        {
272
 
                switch (fileType)
273
 
                {
274
 
                        case WP42_DOCUMENT:
275
 
                                WPD_DEBUG_MSG(("WordPerfect: Using the WP42 parser.\n"));
276
 
                                parser = new WP42Parser(input);
277
 
                                parser->parse(listenerImpl);
278
 
                                DELETEP(parser);
279
 
                                break;
280
 
                        case WP5_DOCUMENT:
281
 
                                WPD_DEBUG_MSG(("WordPerfect: Using the WP5 parser.\n"));
282
 
                                header = new WPXHeader(input);
283
 
                                parser = new WP5Parser(input, header);
284
 
                                parser->parse(listenerImpl);
285
 
                                DELETEP(parser);
286
 
                                DELETEP(header);
287
 
                                break;
288
 
                        case WP6_DOCUMENT:
289
 
                                WPD_DEBUG_MSG(("WordPerfect: Using the WP6 parser.\n"));
290
 
                                header = new WPXHeader(input);
291
 
                                parser = new WP6Parser(input, header);
292
 
                                parser->parse(listenerImpl);
293
 
                                DELETEP(parser);
294
 
                                DELETEP(header);
295
 
                                break;
296
 
                        default:
297
 
                                // unhandled file format
298
 
                                WPD_DEBUG_MSG(("WordPerfect: Unsupported file format.\n"));
299
 
                                break;
300
 
                }
301
 
        }
302
 
        catch (NoFileHeaderException)
303
 
        {
304
 
                // should not happen
305
 
                DELETEP(parser);
306
 
                DELETEP(header);
307
 
                throw NoFileHeaderException();
308
 
        }
309
 
        catch (FileException)
310
 
        {
311
 
                DELETEP(parser);
312
 
                DELETEP(header);
313
 
                throw FileException();
314
 
        }
315
 
}
316
 
 
317
 
*/
318
 
 
319
 
 
320
 
/*
321
 
TOTALLY BROKEN - MIGHT BE NICE TO HAVE
322
 
 
323
 
WPXFileType WPDocument::WPXParser::getFileType(WPXInputStream *input)
324
 
{
325
 
 
326
 
}*/