/* xls2xml: Converts from Microsoft Excel files to XML. Copyright 1999 Roberto Arturo Tena Sanchez This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* Roberto Arturo Tena Sanchez */ #include #include #include #include #include #include /* BOOLERR - Cell Value, Boolean or Error */ int p205 (void) { xmlNodePtr cell; assert_return (xls2xml, parameters->record.opcode == 0x205, 19); test (parameters->record.size >= 8, 15); assert_return (xls2xml, parameters->this_cells != NULL, 19); if (*(parameters->record.info + 7)) { /* error value */ switch (*(parameters->record.info + 6)) { case 0x00: cell = xmlNewChild (parameters->this_cells, NULL, (unsigned char *)"cell", (unsigned char *)"=#NULL!"); break; case 0x07: cell = xmlNewChild (parameters->this_cells, NULL, (unsigned char *)"cell", (unsigned char *)"=#DIV/0!"); break; case 0x0F: cell = xmlNewChild (parameters->this_cells, NULL, (unsigned char *)"cell", (unsigned char *)"=#VALUE!"); break; case 0x17: cell = xmlNewChild (parameters->this_cells, NULL, (unsigned char *)"cell", (unsigned char *)"=#REF!"); break; case 0x1D: cell = xmlNewChild (parameters->this_cells, NULL, (unsigned char *)"cell", (unsigned char *)"=#NAME?"); break; case 0x24: cell = xmlNewChild (parameters->this_cells, NULL, (unsigned char *)"cell", (unsigned char *)"=#NUM!"); break; case 0x2A: cell = xmlNewChild (parameters->this_cells, NULL, (unsigned char *)"cell", (unsigned char *)"=#N/A"); break; default: verbose ("Warning: 205: error value unknown"); return 0; } } else /* boolean value */ if (*(parameters->record.info + 6)) cell = xmlNewChild (parameters->this_cells, NULL, (unsigned char *)"cell", (unsigned char *)"=#TRUE"); else cell = xmlNewChild (parameters->this_cells, NULL, (unsigned char *)"cell", (unsigned char *)"=#FALSE"); test (cell != NULL, 10); test_call (create_cell_coord (cell, fil_sreadU16 (parameters->record.info), fil_sreadU16 (parameters->record.info+2)), int); return 0; }