1 /* 2 * conv.h --- header file for conv, the encoding module of websh3 3 * nca-073-9 4 * 5 * Copyright (c) 1996-2000 by Netcetera AG. 6 * Copyright (c) 2001 by Apache Software Foundation. 7 * All rights reserved. 8 * 9 * See the file "license.terms" for information on usage and 10 * redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES. 11 * 12 * @(#) $Id: conv.h 322102 2001-10-25 17:50:15Z davidw $ 13 * 14 */ 15 16 #include <tcl.h> 17 #include "webutl.h" 18 #include "hashutl.h" 19 20 #ifndef CONV_H 21 #define CONV_H 22 /* -------------------------------------------------------------------------- 23 * Commands 24 * ------------------------------------------------------------------------*/ 25 26 /* ---------------------------------------------------------------------------- 27 * SubCommands 28 * ------------------------------------------------------------------------- */ 29 30 /* ---------------------------------------------------------------------------- 31 * Switches 32 * Params 33 * ------------------------------------------------------------------------- */ 34 #define WEB_CONV_HTMLIFY_SWITCH_NUMERIC "-numeric" 35 36 /* -------------------------------------------------------------------------- 37 * Registered Data (SetAssocData) 38 * ------------------------------------------------------------------------*/ 39 #define WEB_CONV_ASSOC_DATA "web::conv" 40 41 /* -------------------------------------------------------------------------- 42 * Internas 43 * ------------------------------------------------------------------------*/ 44 45 46 #define WEBENC_LATIN_TABLE_LENGTH 256 47 48 /* ---------------------------------------------------------------------------- 49 * internal data 50 * ------------------------------------------------------------------------- */ 51 typedef struct ConvData 52 { 53 int need[WEBENC_LATIN_TABLE_LENGTH]; 54 Tcl_Obj *ute[WEBENC_LATIN_TABLE_LENGTH]; /* ">" --> "gt" */ 55 Tcl_HashTable *etu; /* "gt" --> ">" */ 56 } 57 ConvData; 58 ConvData *createConvData(); 59 void destroyConvData(ClientData clientData, Tcl_Interp * interp); 60 61 /* ---------------------------------------------------------------------------- 62 * Tcl interface 63 * ------------------------------------------------------------------------- */ 64 int conv_Init(Tcl_Interp * interp); 65 66 int Web_Htmlify(ClientData clientData, 67 Tcl_Interp * interp, int objc, Tcl_Obj * CONST objv[]); 68 69 int Web_UriEncode(ClientData clientData, 70 Tcl_Interp * interp, int objc, Tcl_Obj * CONST objv[]); 71 int Web_UriDecode(ClientData clientData, 72 Tcl_Interp * interp, int objc, Tcl_Obj * CONST objv[]); 73 74 int Web_DeHtmlify(ClientData clientData, 75 Tcl_Interp * interp, int objc, Tcl_Obj * CONST objv[]); 76 77 void htmlifyAppendNum(Tcl_Obj * tclo, int num); 78 79 Tcl_Obj *webHtmlify(ConvData * convData, Tcl_Obj * in, int useNumeric); 80 int webDeHtmlify(ConvData * convData, Tcl_Obj * in, Tcl_Obj * out); 81 82 Tcl_Obj *uriEncode(Tcl_Obj * inString); 83 Tcl_Obj *uriDecode(Tcl_Obj * inString); 84 85 86 /* ---------------------------------------------------------------------------- 87 * prototypes 88 * ------------------------------------------------------------------------- */ 89 int removeHtmlComments(Tcl_Interp * interp, Tcl_Obj * in, Tcl_Obj * res); 90 int removeShortHtmlComments(Tcl_Obj * in, Tcl_Obj * res); 91 int removeHtmlTags(Tcl_Obj * in, Tcl_Obj * res); 92 int convertHtmlEntities(ConvData * convData, Tcl_Obj * in, Tcl_Obj * res); 93 Tcl_UniChar getNumericEntity(Tcl_UniChar ** str, int len); 94 int Web_Html_RemoveComments(ClientData clientData, 95 Tcl_Interp * interp, 96 int objc, Tcl_Obj * CONST objv[]); 97 98 #endif 99