From 9cd3ccffd5372dfde3af478e3f832f18db4be3f1 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sat, 6 Apr 2013 13:14:41 +0200 Subject: tagging tags --- yhttpd-0.7.1/src/tool/dir.cpp | 66 +++++++++++++++++++ yhttpd-0.7.1/src/tool/dir.h | 33 ++++++++++ yhttpd-0.7.1/src/tool/tool.cpp | 145 +++++++++++++++++++++++++++++++++++++++++ yhttpd-0.7.1/src/tool/tool.h | 97 +++++++++++++++++++++++++++ 4 files changed, 341 insertions(+) create mode 100644 yhttpd-0.7.1/src/tool/dir.cpp create mode 100644 yhttpd-0.7.1/src/tool/dir.h create mode 100644 yhttpd-0.7.1/src/tool/tool.cpp create mode 100644 yhttpd-0.7.1/src/tool/tool.h (limited to 'yhttpd-0.7.1/src/tool') diff --git a/yhttpd-0.7.1/src/tool/dir.cpp b/yhttpd-0.7.1/src/tool/dir.cpp new file mode 100644 index 0000000..392112a --- /dev/null +++ b/yhttpd-0.7.1/src/tool/dir.cpp @@ -0,0 +1,66 @@ +#ifndef DIR_CPP +#define DIR_CPP + +#include "dir.h" + +using namespace std; + +dir::dir() +{ + b_open = false; +} + +dir::~dir() +{ + dir_vec.clear(); + close_dir(); +} + +bool +dir::open_dir( char *c_dir ) +{ + string s_dir( c_dir ); + return open_dir( s_dir ); +} + +bool +dir::open_dir( string &s_dir ) +{ + if ( b_open ) + return false; + + dp = opendir( s_dir.c_str() ); + + if ( dp == NULL ) + return false; // Could not open dir. + + b_open = true; + + return true; // Could open dir with success. +} + +void +dir::close_dir() +{ + if ( b_open && dp != NULL ) + { + closedir( dp ); + b_open = false; + } +} + +void +dir::read_dir() +{ + if ( dp != NULL ) + while( ep = readdir( dp ) ) + dir_vec.push_back( string( ep->d_name ) ); +} + +vector +dir::get_dir_vec() +{ + return dir_vec; +} + +#endif diff --git a/yhttpd-0.7.1/src/tool/dir.h b/yhttpd-0.7.1/src/tool/dir.h new file mode 100644 index 0000000..cff265f --- /dev/null +++ b/yhttpd-0.7.1/src/tool/dir.h @@ -0,0 +1,33 @@ + +#ifndef DIR_H +#define DIR_H + +#include +#include +#include +#include +#include +#include "../incl.h" + +using namespace std; + +class dir +{ +private: + bool b_open; + DIR *dp; + struct dirent *ep; + vector dir_vec; + +public: + dir(); + ~dir(); + + bool open_dir( char *c_dir ); + bool open_dir( string &s_dir ); + void close_dir(); + void read_dir(); + vector get_dir_vec(); +}; + +#endif diff --git a/yhttpd-0.7.1/src/tool/tool.cpp b/yhttpd-0.7.1/src/tool/tool.cpp new file mode 100644 index 0000000..e2ef9ae --- /dev/null +++ b/yhttpd-0.7.1/src/tool/tool.cpp @@ -0,0 +1,145 @@ +#ifndef TOOL_CPP +#define TOOL_CPP + +#include +#include +#include +#include +#include +#include +#include + +#include "tool.h" + +list +tool::split_string(string s_string, string s_split) { + list list_ret; + unsigned i_pos, i_len = s_split.length(); + + while ( (i_pos = s_string.find(s_split)) != string::npos ) + { + list_ret.push_back( s_string.substr(0, i_pos) ); + s_string = s_string.substr( i_pos + i_len ); + } + + list_ret.push_back( s_string ); + + return list_ret; +} + +string +tool::trim( string s_str ) +{ + if(s_str.empty()) + return ""; + + char c_cur = s_str[0]; + auto int pos=0; + + // left trim + while (c_cur==' '|| c_cur == '\n' || c_cur == '\r') + { + s_str.erase(pos,1); + c_cur = s_str[++pos]; + } + + // right trim + pos=s_str.size(); + c_cur = s_str[s_str.size()]; + + while (c_cur==' ' || c_cur == '\n' || c_cur == '\0' || c_cur == '\r') + { + s_str.erase(pos,1); + c_cur = s_str[--pos]; + } + + return s_str; +} + +char* +tool::clean_char( char* c_str ) +{ + // Ralf: + char *c_pos; + for (c_pos = c_str; *c_pos != '\0'; ++c_pos) + if ( iscntrl(*c_pos) ) *c_pos = ' '; + return c_str; +} + +string +tool::replace( string s_string, string s_search, string s_replace ) +{ + unsigned int i_pos[2]; + + for ( i_pos[0] = s_string.find( s_search ); + i_pos[0] != string::npos; + i_pos[0] = s_string.find( s_search, i_pos[1] ) ) + { + s_string.replace( i_pos[0], s_search.length(), s_replace ); + i_pos[1] = i_pos[0] + s_replace.length(); + } + + return s_string; +} + +string +tool::get_extension( string s_file ) +{ + int pos = s_file.find_last_of("."); + if(pos != string::npos) + { + string s_ext=s_file.substr(pos+1, s_file.size()-(pos+1)); + for(int i = 0;i + +using namespace std; + +class tool +{ +public: + static list split_string(string s_string, string s_split); + + static bool is_alpha_numeric( string &s_digit ) + { + const char *digit = s_digit.c_str(); + int i_len = strlen( digit ); + + for( int i=0; i= '0' && *digit <='9') + { + result = (result * 10) + (*digit - '0'); + digit++; + } + + // Check that there were no non-digits at end. + if (*digit != 0) + { + return -1; + } + + return result; + } + static void strip_html( string *s_str) + { + auto int i_pos; + if((i_pos=s_str->find("<",0))==string::npos) + return; + while(true) + { + s_str->replace(i_pos,1,"<"); + if((i_pos=s_str->find("<",0))==string::npos) + return; + } + } + + static string get_extension( string s_file ); + static string to_lower( string s ) + { + string s_tmp(""); + for(int i=0;i < s.size() ;i++) + s_tmp=s_tmp+(char)tolower(s.at(i)); + return s_tmp; + } + + static string shell_command( string s_command, method m_method ); + + static string yhttpd_version() + { + return string(VERSION) + "-" + string(BRANCH) + " Build " + int2string(BUILDNR); + } +}; + +#endif -- cgit v1.2.3