diff -r 59758314f811 -r d4524d6a4472 Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/propmod_8c_source.html --- a/Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/propmod_8c_source.html Fri Jun 11 15:24:34 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,126 +0,0 @@ - - - - -TB9.2 Example Applications: examples/PIPS/antiword/src/propmod.c Source File - - - - - -

examples/PIPS/antiword/src/propmod.c

00001 /*
-00002  * propmod.c
-00003  * Copyright (C) 2001-2003 A.J. van Os; Released under GPL
-00004  *
-00005  * Description:
-00006  * Build, read and destroy a list (array) of Word property modifiers
-00007  */
-00008 
-00009 #include <stdio.h>
-00010 #include <string.h>
-00011 #include "antiword.h"
-00012 
-00013 #if defined(DEBUG)
-00014 #define ELEMENTS_TO_ADD  3
-00015 #else
-00016 #define ELEMENTS_TO_ADD 30
-00017 #endif /* DEBUG */
-00018 
-00019 /* Variables needed to write the property modifier list */
-00020 static UCHAR    **ppAnchor = NULL;
-00021 static size_t   tNextFree = 0;
-00022 static size_t   tMaxElements = 0;
-00023 
-00024 
-00025 /*
-00026  * vDestroyPropModList - destroy the property modifier list
-00027  */
-00028 void
-00029 vDestroyPropModList(void)
-00030 {
-00031         size_t  tIndex;
-00032 
-00033         DBG_MSG("vDestroyPropModList");
-00034 
-00035         /* Free all the elements of the list */
-00036         for (tIndex = 0; tIndex < tNextFree; tIndex++) {
-00037                 ppAnchor[tIndex] = xfree(ppAnchor[tIndex]);
-00038         }
-00039         /* Free the list itself */
-00040         ppAnchor = xfree(ppAnchor);
-00041         /* Reset all control variables */
-00042         tNextFree = 0;
-00043         tMaxElements = 0;
-00044 } /* end of vDestroyPropModList */
-00045 
-00046 /*
-00047  * vAdd2PropModList - add an element to the property modifier list
-00048  */
-00049 void
-00050 vAdd2PropModList(const UCHAR *aucPropMod)
-00051 {
-00052         size_t  tSize, tLen;
-00053 
-00054         fail(aucPropMod == NULL);
-00055 
-00056         NO_DBG_MSG("vAdd2PropModList");
-00057 
-00058         if (tNextFree >= tMaxElements) {
-00059                 tMaxElements += ELEMENTS_TO_ADD;
-00060                 tSize = tMaxElements * sizeof(UCHAR **);
-00061                 ppAnchor = xrealloc(ppAnchor, tSize);
-00062         }
-00063         NO_DBG_DEC(tNextFree);
-00064 
-00065         tLen = 2 + (size_t)usGetWord(0, aucPropMod);
-00066         NO_DBG_HEX(tLen);
-00067         NO_DBG_PRINT_BLOCK(pucPropMod, tLen);
-00068         ppAnchor[tNextFree] = xmalloc(tLen);
-00069         memcpy(ppAnchor[tNextFree], aucPropMod, tLen);
-00070         tNextFree++;
-00071 } /* end of vAdd2PropModList */
-00072 
-00073 /*
-00074  * aucReadPropModListItem - get an item of the property modifier list
-00075  */
-00076 const UCHAR *
-00077 aucReadPropModListItem(USHORT usPropMod)
-00078 {
-00079         static UCHAR    aucBuffer[4];
-00080         size_t  tIndex;
-00081 
-00082         if (usPropMod == IGNORE_PROPMOD) {
-00083                 /* This Properties Modifier must be ignored */
-00084                 return NULL;
-00085         }
-00086 
-00087         if (!odd(usPropMod)) {
-00088                 /* Variant 1: The information is in the input ifself */
-00089                 aucBuffer[0] = 2;
-00090                 aucBuffer[1] = 0;
-00091                 aucBuffer[2] = (UCHAR)((usPropMod & 0x00fe) >> 1);
-00092                 aucBuffer[3] = (UCHAR)((usPropMod & 0xff00) >> 8);
-00093                 return aucBuffer;
-00094         }
-00095 
-00096         if (ppAnchor == NULL) {
-00097                 /* No information available */
-00098                 return NULL;
-00099         }
-00100 
-00101         /* Variant 2: The input contains an index */
-00102         tIndex = (size_t)(usPropMod >> 1);
-00103         if (tIndex >= tNextFree) {
-00104                 DBG_HEX(usPropMod);
-00105                 DBG_DEC(tIndex);
-00106                 DBG_DEC(tNextFree);
-00107                 return NULL;
-00108         }
-00109         return ppAnchor[tIndex];
-00110 } /* end of aucGetPropModListItem */
-
-
Generated by  - -doxygen 1.6.2
- -