File: wvVersion.c

package info (click to toggle)
abiword 0.7.7-1
  • links: PTS
  • area: main
  • in suites: potato
  • size: 20,604 kB
  • ctags: 18,358
  • sloc: cpp: 88,791; ansic: 66,296; sh: 7,777; makefile: 3,397; xml: 687; perl: 361; awk: 273; sed: 36; csh: 28
file content (96 lines) | stat: -rw-r--r-- 1,560 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include "config.h"
#include "wv.h"
/*
Released under GPL, written by Caolan.McNamara@ul.ie.

Copyright (C) 1998,1999 
	Caolan McNamara

Real Life: Caolan McNamara           *  Doing: MSc in HCI
Work: Caolan.McNamara@ul.ie          *  Phone: +353-86-8790257
URL: http://skynet.csn.ul.ie/~caolan *  Sig: an oblique strategy
How would you have done it?
*/

/*
returns 1 for not an ole doc
2 ole but not word doc
-1 for an error of some unknown kind
0 on success
*/

void usage( void )
	{
	printf("Usage: wvVersion filename.doc\n");
	exit(-1);
	}

int main(int argc,char **argv)
	{
	FILE *input;
	int ret;
	wvParseStruct ps;

	wvInitError();

	if (argc < 2) 
		usage();

	input = fopen(argv[1],"rb");
	if (!input)
		{
		fprintf(stderr,"Failed to open %s: %s\n",argv[1],strerror(errno));
		return(-1);
		}

	ret = wvInitParser(&ps,input);

	if (ret == -1)
		{
		fprintf(stderr,"%s couldn't be opened as any known word document\n",argv[1]);
		return(-1);
		}

	ret = wvQuerySupported(&ps.fib,NULL);

	printf("Version: ");
	switch(ret&0x7fff)
		{
		case WORD8:
			printf("word8");
			break;
		case WORD7:
			printf("word7");
			break;
		case WORD6:
			printf("word6");
			break;
		case WORD5:
			printf("word5");
			break;
		case WORD2:
			printf("word2 (maybe)");
			break;
		}

	printf(",Encrypted: ");
	if (ret & 0x8000)
		printf("Yes\n");
	else
		printf("No\n");

	if (ret)
		{
		/*
		wvError(("startup error\n"));
		*/
		wvOLEFree();
		return(-1);
		}
	wvOLEFree();
	return(ret);
	}