From e22e27785de7576cca4191d0bec12f89021e08d2 Mon Sep 17 00:00:00 2001 From: sje Date: Sun, 1 Jul 2007 11:21:46 +0000 Subject: code for text formatting git-svn-id: https://server.scottellis.com.au/svn/mim_plugs@230 4f64403b-2f21-0410-a795-97e2b3489a10 --- MySpace/formatting.cpp | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 MySpace/formatting.cpp (limited to 'MySpace/formatting.cpp') diff --git a/MySpace/formatting.cpp b/MySpace/formatting.cpp new file mode 100644 index 0000000..d2604fe --- /dev/null +++ b/MySpace/formatting.cpp @@ -0,0 +1,59 @@ +#include "common.h" +#include "formatting.h" + +void entitize(char *buff, int size) { + char *tmp = new char[size]; + + int in = 0, out = 0; + while(buff[in]) { + switch(buff[in]) { + case '\"': in++; strncpy(tmp + out, """, size - out); out += 6; break; + case '&': in++; strncpy(tmp + out, "&", size - out); out += 5; break; + case '\'': in++; strncpy(tmp + out, "'", size - out); out += 6; break; + case '<': in++; strncpy(tmp + out, "<", size - out); out += 4; break; + case '>': in++; strncpy(tmp + out, ">", size - out); out += 4; break; + default: + tmp[out++] = buff[in++]; + } + } + tmp[out] = 0; + + strncpy(buff, tmp, size); + delete tmp; + buff[size - 1] = 0; +} + +void unentitize(char *buff) { + int in = 0, out = 0; + while(buff[in]) { + if(buff[in] == '&') { + if(strcmp(buff + in, """) == 0) { + buff[out++] = '\"'; in += 6; + } else if(strcmp(buff + in, "&") == 0) { + buff[out++] = '&'; in += 5; + } else if(strcmp(buff + in, "'") == 0) { + buff[out++] = '\''; in += 6; + } else if(strcmp(buff + in, "<") == 0) { + buff[out++] = '<'; in += 4; + } else if(strcmp(buff + in, ">") == 0) { + buff[out++] = '>'; in += 4; + } else + buff[out++] = buff[in++]; + } else + buff[out++] = buff[in++]; + } + buff[out] = 0; +} + +void strip_tags(char *buff) { + int in = 0, out = 0; + while(buff[in]) { + if(buff[in] == '<') { + while(buff[in] && buff[in] != '>') in++; + in++; + } else + buff[out++] = buff[in++]; + } + buff[out] = 0; +} + -- cgit v1.2.3