diff --git a/.gitignore b/.gitignore index dc00fe4..eba4d96 100644 --- a/.gitignore +++ b/.gitignore @@ -2,5 +2,6 @@ /nowide_standalone /.vscode /.vs +/doc/html # Don't ignore Jamfiles, also in subfolders !Jamfile.* diff --git a/doc/html/annotated.html b/doc/html/annotated.html deleted file mode 100644 index 5fd43e3..0000000 --- a/doc/html/annotated.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - -Boost.Nowide: Class List - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - -
-
-
-
Class List
-
-
-
Here are the classes, structs, unions and interfaces with brief descriptions:
-
[detail level 123]
- - - - - - - - - - - - -
 Nboost
 NnowideThis namespace includes implementation of the standard library functios such that they accept UTF-8 strings on Windows. On other platforms it is just an alias of std namespace (i.e. not on Windows)
 CargsArgs is a class that fixes standard main() function arguments and changes them to UTF-8 under Microsoft Windows
 Cbasic_filebufThis forward declaration defined the basic_filebuf type
 Cbasic_filebuf< char >This is implementation of std::filebuf
 Cbasic_fstreamSame as std::basic_fstream<char> but accepts UTF-8 strings under Windows
 Cbasic_ifstreamSame as std::basic_ifstream<char> but accepts UTF-8 strings under Windows
 Cbasic_ofstreamSame as std::basic_ofstream<char> but accepts UTF-8 strings under Windows
 Cbasic_stackstringA class that allows to create a temporary wide or narrow UTF strings from wide or narrow UTF source
 Cutf8_codecvt
 Cutf8_codecvt< CharType, 2 >
 Cutf8_codecvt< CharType, 4 >
-
-
- - - - diff --git a/doc/html/args_8hpp_source.html b/doc/html/args_8hpp_source.html deleted file mode 100644 index e9e5e93..0000000 --- a/doc/html/args_8hpp_source.html +++ /dev/null @@ -1,210 +0,0 @@ - - - - - - -Boost.Nowide: boost/nowide/args.hpp Source File - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - - -
-
-
-
args.hpp
-
-
-
1 //
-
2 // Copyright (c) 2012 Artyom Beilis (Tonkikh)
-
3 //
-
4 // Distributed under the Boost Software License, Version 1.0. (See
-
5 // accompanying file LICENSE_1_0.txt or copy at
-
6 // http://www.boost.org/LICENSE_1_0.txt)
-
7 //
-
8 #ifndef BOOST_NOWIDE_ARGS_HPP_INCLUDED
-
9 #define BOOST_NOWIDE_ARGS_HPP_INCLUDED
-
10 
-
11 #include <boost/config.hpp>
-
12 #include <boost/nowide/stackstring.hpp>
-
13 #include <vector>
-
14 #ifdef BOOST_WINDOWS
-
15 #include <boost/nowide/windows.hpp>
-
16 #endif
-
17 
-
18 namespace boost {
-
19 namespace nowide {
-
20  #if !defined(BOOST_WINDOWS) && !defined(BOOST_NOWIDE_DOXYGEN)
-
21  class args {
-
22  public:
-
23  args(int &,char **&) {}
-
24  args(int &,char **&,char **&){}
-
25  ~args() {}
-
26  };
-
27 
-
28  #else
-
29 
-
42  class args {
-
43  public:
-
44 
-
48  args(int &argc,char **&argv) :
-
49  old_argc_(argc),
-
50  old_argv_(argv),
-
51  old_env_(0),
-
52  old_argc_ptr_(&argc),
-
53  old_argv_ptr_(&argv),
-
54  old_env_ptr_(0)
-
55  {
-
56  fix_args(argc,argv);
-
57  }
-
61  args(int &argc,char **&argv,char **&en) :
-
62  old_argc_(argc),
-
63  old_argv_(argv),
-
64  old_env_(en),
-
65  old_argc_ptr_(&argc),
-
66  old_argv_ptr_(&argv),
-
67  old_env_ptr_(&en)
-
68  {
-
69  fix_args(argc,argv);
-
70  fix_env(en);
-
71  }
- -
76  {
-
77  if(old_argc_ptr_)
-
78  *old_argc_ptr_ = old_argc_;
-
79  if(old_argv_ptr_)
-
80  *old_argv_ptr_ = old_argv_;
-
81  if(old_env_ptr_)
-
82  *old_env_ptr_ = old_env_;
-
83  }
-
84  private:
-
85  void fix_args(int &argc,char **&argv)
-
86  {
-
87  int wargc;
-
88  wchar_t **wargv = CommandLineToArgvW(GetCommandLineW(),&wargc);
-
89  if(!wargv) {
-
90  argc = 0;
-
91  static char *dummy = 0;
-
92  argv = &dummy;
-
93  return;
-
94  }
-
95  try{
-
96  args_.resize(wargc+1,0);
-
97  arg_values_.resize(wargc);
-
98  for(int i=0;i<wargc;i++) {
-
99  if(!arg_values_[i].convert(wargv[i])) {
-
100  wargc = i;
-
101  break;
-
102  }
-
103  args_[i] = arg_values_[i].c_str();
-
104  }
-
105  argc = wargc;
-
106  argv = &args_[0];
-
107  }
-
108  catch(...) {
-
109  LocalFree(wargv);
-
110  throw;
-
111  }
-
112  LocalFree(wargv);
-
113  }
-
114  void fix_env(char **&en)
-
115  {
-
116  static char *dummy = 0;
-
117  en = &dummy;
-
118  wchar_t *wstrings = GetEnvironmentStringsW();
-
119  if(!wstrings)
-
120  return;
-
121  try {
-
122  wchar_t *wstrings_end = 0;
-
123  int count = 0;
-
124  for(wstrings_end = wstrings;*wstrings_end;wstrings_end+=wcslen(wstrings_end)+1)
-
125  count++;
-
126  if(env_.convert(wstrings,wstrings_end)) {
-
127  envp_.resize(count+1,0);
-
128  char *p=env_.c_str();
-
129  int pos = 0;
-
130  for(int i=0;i<count;i++) {
-
131  if(*p!='=')
-
132  envp_[pos++] = p;
-
133  p+=strlen(p)+1;
-
134  }
-
135  en = &envp_[0];
-
136  }
-
137  }
-
138  catch(...) {
-
139  FreeEnvironmentStringsW(wstrings);
-
140  throw;
-
141  }
-
142  FreeEnvironmentStringsW(wstrings);
-
143 
-
144  }
-
145 
-
146  std::vector<char *> args_;
-
147  std::vector<short_stackstring> arg_values_;
-
148  stackstring env_;
-
149  std::vector<char *> envp_;
-
150 
-
151  int old_argc_;
-
152  char **old_argv_;
-
153  char **old_env_;
-
154 
-
155  int *old_argc_ptr_;
-
156  char ***old_argv_ptr_;
-
157  char ***old_env_ptr_;
-
158  };
-
159 
-
160  #endif
-
161 
-
162 } // nowide
-
163 } // namespace boost
-
164 #endif
-
165 
-
167 // vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
-
args(int &argc, char **&argv, char **&en)
Definition: args.hpp:61
-
args is a class that fixes standard main() function arguments and changes them to UTF-8 under Microso...
Definition: args.hpp:42
-
args(int &argc, char **&argv)
Definition: args.hpp:48
-
basic_stackstring< char, wchar_t, 256 > stackstring
Definition: stackstring.hpp:138
-
~args()
Definition: args.hpp:75
-
- - - - diff --git a/doc/html/bc_s.png b/doc/html/bc_s.png deleted file mode 100644 index 224b29a..0000000 Binary files a/doc/html/bc_s.png and /dev/null differ diff --git a/doc/html/bdwn.png b/doc/html/bdwn.png deleted file mode 100644 index 940a0b9..0000000 Binary files a/doc/html/bdwn.png and /dev/null differ diff --git a/doc/html/cenv_8hpp_source.html b/doc/html/cenv_8hpp_source.html deleted file mode 100644 index 8bbcc21..0000000 --- a/doc/html/cenv_8hpp_source.html +++ /dev/null @@ -1,175 +0,0 @@ - - - - - - -Boost.Nowide: boost/nowide/cenv.hpp Source File - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - - -
-
-
-
cenv.hpp
-
-
-
1 //
-
2 // Copyright (c) 2012 Artyom Beilis (Tonkikh)
-
3 //
-
4 // Distributed under the Boost Software License, Version 1.0. (See
-
5 // accompanying file LICENSE_1_0.txt or copy at
-
6 // http://www.boost.org/LICENSE_1_0.txt)
-
7 //
-
8 #ifndef BOOST_NOWIDE_CENV_H_INCLUDED
-
9 #define BOOST_NOWIDE_CENV_H_INCLUDED
-
10 
-
11 #include <string>
-
12 #include <stdexcept>
-
13 #include <stdlib.h>
-
14 #include <boost/config.hpp>
-
15 #include <boost/nowide/stackstring.hpp>
-
16 #include <vector>
-
17 
-
18 #ifdef BOOST_WINDOWS
-
19 #include <boost/nowide/windows.hpp>
-
20 #endif
-
21 
-
22 namespace boost {
-
23 namespace nowide {
-
24  #if !defined(BOOST_WINDOWS) && !defined(BOOST_NOWIDE_DOXYGEN)
-
25  using ::getenv;
-
26  using ::setenv;
-
27  using ::unsetenv;
-
28  using ::putenv;
-
29  #else
-
30  inline char *getenv(char const *key)
-
36  {
-
37  static stackstring value;
-
38 
-
39  wshort_stackstring name;
-
40  if(!name.convert(key))
-
41  return 0;
-
42 
-
43  static const size_t buf_size = 64;
-
44  wchar_t buf[buf_size];
-
45  std::vector<wchar_t> tmp;
-
46  wchar_t *ptr = buf;
-
47  size_t n = GetEnvironmentVariableW(name.c_str(),buf,buf_size);
-
48  if(n == 0 && GetLastError() == 203) // ERROR_ENVVAR_NOT_FOUND
-
49  return 0;
-
50  if(n >= buf_size) {
-
51  tmp.resize(n+1,L'\0');
-
52  n = GetEnvironmentVariableW(name.c_str(),&tmp[0],static_cast<unsigned>(tmp.size() - 1));
-
53  // The size may have changed
-
54  if(n >= tmp.size() - 1)
-
55  return 0;
-
56  ptr = &tmp[0];
-
57  }
-
58  if(!value.convert(ptr))
-
59  return 0;
-
60  return value.c_str();
-
61  }
-
68  inline int setenv(char const *key,char const *value,int override)
-
69  {
-
70  wshort_stackstring name;
-
71  if(!name.convert(key))
-
72  return -1;
-
73  if(!override) {
-
74  wchar_t unused[2];
-
75  if(!(GetEnvironmentVariableW(name.c_str(),unused,2)==0 && GetLastError() == 203)) // ERROR_ENVVAR_NOT_FOUND
-
76  return 0;
-
77  }
-
78  wstackstring wval;
-
79  if(!wval.convert(value))
-
80  return -1;
-
81  if(SetEnvironmentVariableW(name.c_str(),wval.c_str()))
-
82  return 0;
-
83  return -1;
-
84  }
-
88  inline int unsetenv(char const *key)
-
89  {
-
90  wshort_stackstring name;
-
91  if(!name.convert(key))
-
92  return -1;
-
93  if(SetEnvironmentVariableW(name.c_str(),0))
-
94  return 0;
-
95  return -1;
-
96  }
-
100  inline int putenv(char *string)
-
101  {
-
102  char const *key = string;
-
103  char const *key_end = string;
-
104  while(*key_end!='=' && key_end!='\0')
-
105  key_end++;
-
106  if(*key_end == '\0')
-
107  return -1;
-
108  wshort_stackstring wkey;
-
109  if(!wkey.convert(key,key_end))
-
110  return -1;
-
111 
-
112  wstackstring wvalue;
-
113  if(!wvalue.convert(key_end+1))
-
114  return -1;
-
115 
-
116  if(SetEnvironmentVariableW(wkey.c_str(),wvalue.c_str()))
-
117  return 0;
-
118  return -1;
-
119  }
-
120  #endif
-
121 } // nowide
-
122 } // namespace boost
-
123 
-
124 #endif
-
125 // vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
-
basic_stackstring< wchar_t, char, 16 > wshort_stackstring
Definition: stackstring.hpp:142
-
int setenv(char const *key, char const *value, int override)
UTF-8 aware setenv, key - the variable name, value is a new UTF-8 value,.
Definition: cenv.hpp:68
-
int putenv(char *string)
UTF-8 aware putenv implementation, expects string in format KEY=VALUE.
Definition: cenv.hpp:100
-
int unsetenv(char const *key)
Remove enviroment variable key.
Definition: cenv.hpp:88
-
char * getenv(char const *key)
UTF-8 aware getenv. Returns 0 if the variable is not set.
Definition: cenv.hpp:35
-
basic_stackstring< char, wchar_t, 256 > stackstring
Definition: stackstring.hpp:138
-
A class that allows to create a temporary wide or narrow UTF strings from wide or narrow UTF source...
Definition: stackstring.hpp:25
-
- - - - diff --git a/doc/html/classboost_1_1nowide_1_1args-members.html b/doc/html/classboost_1_1nowide_1_1args-members.html deleted file mode 100644 index 506d751..0000000 --- a/doc/html/classboost_1_1nowide_1_1args-members.html +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - -Boost.Nowide: Member List - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - - -
-
-
-
boost::nowide::args Member List
-
-
- -

This is the complete list of members for boost::nowide::args, including all inherited members.

- - - - -
args(int &argc, char **&argv)boost::nowide::argsinline
args(int &argc, char **&argv, char **&en)boost::nowide::argsinline
~args()boost::nowide::argsinline
- - - - diff --git a/doc/html/classboost_1_1nowide_1_1args.html b/doc/html/classboost_1_1nowide_1_1args.html deleted file mode 100644 index 35d9fd9..0000000 --- a/doc/html/classboost_1_1nowide_1_1args.html +++ /dev/null @@ -1,189 +0,0 @@ - - - - - - -Boost.Nowide: boost::nowide::args Class Reference - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - - -
-
-
-Public Member Functions | -List of all members
-
-
boost::nowide::args Class Reference
-
-
- -

args is a class that fixes standard main() function arguments and changes them to UTF-8 under Microsoft Windows. - More...

- -

#include <boost/nowide/args.hpp>

- - - - - - - - -

-Public Member Functions

 args (int &argc, char **&argv)
 
 args (int &argc, char **&argv, char **&en)
 
 ~args ()
 
-

Detailed Description

-

args is a class that fixes standard main() function arguments and changes them to UTF-8 under Microsoft Windows.

-

The class uses GetCommandLineW(), CommandLineToArgvW() and GetEnvironmentStringsW() in order to obtain the information. It does not relates to actual values of argc,argv and env under Windows.

-

It restores the original values in its destructor

-
Note
the class owns the memory of the newly allocated strings
-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
boost::nowide::args::args (int & argc,
char **& argv 
)
-
-inline
-
-

Fix command line agruments

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
boost::nowide::args::args (int & argc,
char **& argv,
char **& en 
)
-
-inline
-
-

Fix command line agruments and environment

- -
-
- -
-
- - - - - -
- - - - - - - -
boost::nowide::args::~args ()
-
-inline
-
-

Restore original argc,argv,env values, if changed

- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/doc/html/classboost_1_1nowide_1_1basic__filebuf.html b/doc/html/classboost_1_1nowide_1_1basic__filebuf.html deleted file mode 100644 index a1c88a8..0000000 --- a/doc/html/classboost_1_1nowide_1_1basic__filebuf.html +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - -Boost.Nowide: boost::nowide::basic_filebuf< CharType, Traits > Class Template Reference - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - - -
-
-
-
boost::nowide::basic_filebuf< CharType, Traits > Class Template Reference
-
-
- -

This forward declaration defined the basic_filebuf type. - More...

- -

#include <boost/nowide/filebuf.hpp>

-

Detailed Description

-

template<typename CharType, typename Traits = std::char_traits<CharType>>
-class boost::nowide::basic_filebuf< CharType, Traits >

- -

This forward declaration defined the basic_filebuf type.

-

it is implemented and specialized for CharType = char, it behaves implements std::filebuf over standard C I/O

-

The documentation for this class was generated from the following file: -
- - - - diff --git a/doc/html/classboost_1_1nowide_1_1basic__filebuf_3_01char_01_4-members.html b/doc/html/classboost_1_1nowide_1_1basic__filebuf_3_01char_01_4-members.html deleted file mode 100644 index eb46713..0000000 --- a/doc/html/classboost_1_1nowide_1_1basic__filebuf_3_01char_01_4-members.html +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - -Boost.Nowide: Member List - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - - -
-
-
-
boost::nowide::basic_filebuf< char > Member List
-
-
- -

This is the complete list of members for boost::nowide::basic_filebuf< char >, including all inherited members.

- - - - - - - - - - - - - - -
basic_filebuf()boost::nowide::basic_filebuf< char >inline
close()boost::nowide::basic_filebuf< char >inline
is_open() const boost::nowide::basic_filebuf< char >inline
open(std::string const &s, std::ios_base::openmode mode)boost::nowide::basic_filebuf< char >inline
open(char const *s, std::ios_base::openmode mode)boost::nowide::basic_filebuf< char >inline
overflow(int c) (defined in boost::nowide::basic_filebuf< char >)boost::nowide::basic_filebuf< char >inlineprotected
pbackfail(int) (defined in boost::nowide::basic_filebuf< char >)boost::nowide::basic_filebuf< char >inlineprotected
seekoff(std::streamoff off, std::ios_base::seekdir seekdir, std::ios_base::openmode) (defined in boost::nowide::basic_filebuf< char >)boost::nowide::basic_filebuf< char >inlineprotected
seekpos(std::streampos off, std::ios_base::openmode m) (defined in boost::nowide::basic_filebuf< char >)boost::nowide::basic_filebuf< char >inlineprotected
setbuf(char *s, std::streamsize n) (defined in boost::nowide::basic_filebuf< char >)boost::nowide::basic_filebuf< char >inlineprotectedvirtual
sync() (defined in boost::nowide::basic_filebuf< char >)boost::nowide::basic_filebuf< char >inlineprotected
underflow() (defined in boost::nowide::basic_filebuf< char >)boost::nowide::basic_filebuf< char >inlineprotected
~basic_filebuf() (defined in boost::nowide::basic_filebuf< char >)boost::nowide::basic_filebuf< char >inlinevirtual
- - - - diff --git a/doc/html/classboost_1_1nowide_1_1basic__filebuf_3_01char_01_4.html b/doc/html/classboost_1_1nowide_1_1basic__filebuf_3_01char_01_4.html deleted file mode 100644 index 67ee1b2..0000000 --- a/doc/html/classboost_1_1nowide_1_1basic__filebuf_3_01char_01_4.html +++ /dev/null @@ -1,270 +0,0 @@ - - - - - - -Boost.Nowide: boost::nowide::basic_filebuf< char > Class Template Reference - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - - -
-
-
-Public Member Functions | -Protected Member Functions | -List of all members
-
-
boost::nowide::basic_filebuf< char > Class Template Reference
-
-
- -

This is implementation of std::filebuf. - More...

- -

#include <boost/nowide/filebuf.hpp>

-
-Inheritance diagram for boost::nowide::basic_filebuf< char >:
-
-
- - - -
- - - - - - - - - - - - -

-Public Member Functions

 basic_filebuf ()
 
basic_filebufopen (std::string const &s, std::ios_base::openmode mode)
 
basic_filebufopen (char const *s, std::ios_base::openmode mode)
 
basic_filebufclose ()
 
bool is_open () const
 
- - - - - - - - - - - - - - - -

-Protected Member Functions

-virtual std::streambuf * setbuf (char *s, std::streamsize n)
 
-int overflow (int c)
 
-int sync ()
 
-int underflow ()
 
-int pbackfail (int)
 
-std::streampos seekoff (std::streamoff off, std::ios_base::seekdir seekdir, std::ios_base::openmode)
 
-std::streampos seekpos (std::streampos off, std::ios_base::openmode m)
 
-

Detailed Description

-

template<>
-class boost::nowide::basic_filebuf< char >

- -

This is implementation of std::filebuf.

-

it is implemented and specialized for CharType = char, it behaves implements std::filebuf over standard C I/O

-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - -
boost::nowide::basic_filebuf< char >::basic_filebuf ()
-
-inline
-
-

Creates new filebuf

- -
-
-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
basic_filebuf* boost::nowide::basic_filebuf< char >::close ()
-
-inline
-
-

Same as std::filebuf::close()

- -
-
- -
-
- - - - - -
- - - - - - - -
bool boost::nowide::basic_filebuf< char >::is_open () const
-
-inline
-
-

Same as std::filebuf::is_open()

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
basic_filebuf* boost::nowide::basic_filebuf< char >::open (std::string const & s,
std::ios_base::openmode mode 
)
-
-inline
-
-

Same as std::filebuf::open but s is UTF-8 string

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
basic_filebuf* boost::nowide::basic_filebuf< char >::open (char const * s,
std::ios_base::openmode mode 
)
-
-inline
-
-

Same as std::filebuf::open but s is UTF-8 string

- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/doc/html/classboost_1_1nowide_1_1basic__filebuf_3_01char_01_4.png b/doc/html/classboost_1_1nowide_1_1basic__filebuf_3_01char_01_4.png deleted file mode 100644 index c844df5..0000000 Binary files a/doc/html/classboost_1_1nowide_1_1basic__filebuf_3_01char_01_4.png and /dev/null differ diff --git a/doc/html/classboost_1_1nowide_1_1basic__fstream-members.html b/doc/html/classboost_1_1nowide_1_1basic__fstream-members.html deleted file mode 100644 index 85b6cb8..0000000 --- a/doc/html/classboost_1_1nowide_1_1basic__fstream-members.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - -Boost.Nowide: Member List - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - - -
-
-
-
boost::nowide::basic_fstream< CharType, Traits > Member List
-
-
- -

This is the complete list of members for boost::nowide::basic_fstream< CharType, Traits >, including all inherited members.

- - - - - - - - - - - - - -
basic_fstream() (defined in boost::nowide::basic_fstream< CharType, Traits >)boost::nowide::basic_fstream< CharType, Traits >inline
basic_fstream(char const *file_name, std::ios_base::openmode mode=std::ios_base::out|std::ios_base::in) (defined in boost::nowide::basic_fstream< CharType, Traits >)boost::nowide::basic_fstream< CharType, Traits >inlineexplicit
basic_fstream(std::string const &file_name, std::ios_base::openmode mode=std::ios_base::out|std::ios_base::in) (defined in boost::nowide::basic_fstream< CharType, Traits >)boost::nowide::basic_fstream< CharType, Traits >inlineexplicit
close() (defined in boost::nowide::basic_fstream< CharType, Traits >)boost::nowide::basic_fstream< CharType, Traits >inline
internal_buffer_type typedef (defined in boost::nowide::basic_fstream< CharType, Traits >)boost::nowide::basic_fstream< CharType, Traits >
internal_stream_type typedef (defined in boost::nowide::basic_fstream< CharType, Traits >)boost::nowide::basic_fstream< CharType, Traits >
is_open() (defined in boost::nowide::basic_fstream< CharType, Traits >)boost::nowide::basic_fstream< CharType, Traits >inline
is_open() const (defined in boost::nowide::basic_fstream< CharType, Traits >)boost::nowide::basic_fstream< CharType, Traits >inline
open(std::string const &file_name, std::ios_base::openmode mode=std::ios_base::out|std::ios_base::out) (defined in boost::nowide::basic_fstream< CharType, Traits >)boost::nowide::basic_fstream< CharType, Traits >inline
open(char const *file_name, std::ios_base::openmode mode=std::ios_base::out|std::ios_base::out) (defined in boost::nowide::basic_fstream< CharType, Traits >)boost::nowide::basic_fstream< CharType, Traits >inline
rdbuf() const (defined in boost::nowide::basic_fstream< CharType, Traits >)boost::nowide::basic_fstream< CharType, Traits >inline
~basic_fstream() (defined in boost::nowide::basic_fstream< CharType, Traits >)boost::nowide::basic_fstream< CharType, Traits >inline
- - - - diff --git a/doc/html/classboost_1_1nowide_1_1basic__fstream.html b/doc/html/classboost_1_1nowide_1_1basic__fstream.html deleted file mode 100644 index dbe7b6c..0000000 --- a/doc/html/classboost_1_1nowide_1_1basic__fstream.html +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - -Boost.Nowide: boost::nowide::basic_fstream< CharType, Traits > Class Template Reference - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - - -
-
-
-Public Types | -Public Member Functions | -List of all members
-
-
boost::nowide::basic_fstream< CharType, Traits > Class Template Reference
-
-
- -

Same as std::basic_fstream<char> but accepts UTF-8 strings under Windows. - More...

- -

#include <boost/nowide/fstream.hpp>

-
-Inheritance diagram for boost::nowide::basic_fstream< CharType, Traits >:
-
-
- - - -
- - - - - - -

-Public Types

-typedef basic_filebuf
-< CharType, Traits > 
internal_buffer_type
 
-typedef std::basic_iostream
-< CharType, Traits > 
internal_stream_type
 
- - - - - - - - - - - - - - - - - -

-Public Member Functions

basic_fstream (char const *file_name, std::ios_base::openmode mode=std::ios_base::out|std::ios_base::in)
 
basic_fstream (std::string const &file_name, std::ios_base::openmode mode=std::ios_base::out|std::ios_base::in)
 
-void open (std::string const &file_name, std::ios_base::openmode mode=std::ios_base::out|std::ios_base::out)
 
-void open (char const *file_name, std::ios_base::openmode mode=std::ios_base::out|std::ios_base::out)
 
-bool is_open ()
 
-bool is_open () const
 
-void close ()
 
-internal_buffer_typerdbuf () const
 
-

Detailed Description

-

template<typename CharType, typename Traits = std::char_traits<CharType>>
-class boost::nowide::basic_fstream< CharType, Traits >

- -

Same as std::basic_fstream<char> but accepts UTF-8 strings under Windows.

-

The documentation for this class was generated from the following file: -
- - - - diff --git a/doc/html/classboost_1_1nowide_1_1basic__fstream.png b/doc/html/classboost_1_1nowide_1_1basic__fstream.png deleted file mode 100644 index cb346f2..0000000 Binary files a/doc/html/classboost_1_1nowide_1_1basic__fstream.png and /dev/null differ diff --git a/doc/html/classboost_1_1nowide_1_1basic__ifstream-members.html b/doc/html/classboost_1_1nowide_1_1basic__ifstream-members.html deleted file mode 100644 index b9e9f46..0000000 --- a/doc/html/classboost_1_1nowide_1_1basic__ifstream-members.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - -Boost.Nowide: Member List - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - - -
-
-
-
boost::nowide::basic_ifstream< CharType, Traits > Member List
-
-
- -

This is the complete list of members for boost::nowide::basic_ifstream< CharType, Traits >, including all inherited members.

- - - - - - - - - - - - - -
basic_ifstream() (defined in boost::nowide::basic_ifstream< CharType, Traits >)boost::nowide::basic_ifstream< CharType, Traits >inline
basic_ifstream(char const *file_name, std::ios_base::openmode mode=std::ios_base::in) (defined in boost::nowide::basic_ifstream< CharType, Traits >)boost::nowide::basic_ifstream< CharType, Traits >inlineexplicit
basic_ifstream(std::string const &file_name, std::ios_base::openmode mode=std::ios_base::in) (defined in boost::nowide::basic_ifstream< CharType, Traits >)boost::nowide::basic_ifstream< CharType, Traits >inlineexplicit
close() (defined in boost::nowide::basic_ifstream< CharType, Traits >)boost::nowide::basic_ifstream< CharType, Traits >inline
internal_buffer_type typedef (defined in boost::nowide::basic_ifstream< CharType, Traits >)boost::nowide::basic_ifstream< CharType, Traits >
internal_stream_type typedef (defined in boost::nowide::basic_ifstream< CharType, Traits >)boost::nowide::basic_ifstream< CharType, Traits >
is_open() (defined in boost::nowide::basic_ifstream< CharType, Traits >)boost::nowide::basic_ifstream< CharType, Traits >inline
is_open() const (defined in boost::nowide::basic_ifstream< CharType, Traits >)boost::nowide::basic_ifstream< CharType, Traits >inline
open(std::string const &file_name, std::ios_base::openmode mode=std::ios_base::in) (defined in boost::nowide::basic_ifstream< CharType, Traits >)boost::nowide::basic_ifstream< CharType, Traits >inline
open(char const *file_name, std::ios_base::openmode mode=std::ios_base::in) (defined in boost::nowide::basic_ifstream< CharType, Traits >)boost::nowide::basic_ifstream< CharType, Traits >inline
rdbuf() const (defined in boost::nowide::basic_ifstream< CharType, Traits >)boost::nowide::basic_ifstream< CharType, Traits >inline
~basic_ifstream() (defined in boost::nowide::basic_ifstream< CharType, Traits >)boost::nowide::basic_ifstream< CharType, Traits >inline
- - - - diff --git a/doc/html/classboost_1_1nowide_1_1basic__ifstream.html b/doc/html/classboost_1_1nowide_1_1basic__ifstream.html deleted file mode 100644 index e5442de..0000000 --- a/doc/html/classboost_1_1nowide_1_1basic__ifstream.html +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - -Boost.Nowide: boost::nowide::basic_ifstream< CharType, Traits > Class Template Reference - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - - -
-
-
-Public Types | -Public Member Functions | -List of all members
-
-
boost::nowide::basic_ifstream< CharType, Traits > Class Template Reference
-
-
- -

Same as std::basic_ifstream<char> but accepts UTF-8 strings under Windows. - More...

- -

#include <boost/nowide/fstream.hpp>

-
-Inheritance diagram for boost::nowide::basic_ifstream< CharType, Traits >:
-
-
- - - -
- - - - - - -

-Public Types

-typedef basic_filebuf
-< CharType, Traits > 
internal_buffer_type
 
-typedef std::basic_istream
-< CharType, Traits > 
internal_stream_type
 
- - - - - - - - - - - - - - - - - -

-Public Member Functions

basic_ifstream (char const *file_name, std::ios_base::openmode mode=std::ios_base::in)
 
basic_ifstream (std::string const &file_name, std::ios_base::openmode mode=std::ios_base::in)
 
-void open (std::string const &file_name, std::ios_base::openmode mode=std::ios_base::in)
 
-void open (char const *file_name, std::ios_base::openmode mode=std::ios_base::in)
 
-bool is_open ()
 
-bool is_open () const
 
-void close ()
 
-internal_buffer_typerdbuf () const
 
-

Detailed Description

-

template<typename CharType, typename Traits = std::char_traits<CharType>>
-class boost::nowide::basic_ifstream< CharType, Traits >

- -

Same as std::basic_ifstream<char> but accepts UTF-8 strings under Windows.

-

The documentation for this class was generated from the following file: -
- - - - diff --git a/doc/html/classboost_1_1nowide_1_1basic__ifstream.png b/doc/html/classboost_1_1nowide_1_1basic__ifstream.png deleted file mode 100644 index f86a978..0000000 Binary files a/doc/html/classboost_1_1nowide_1_1basic__ifstream.png and /dev/null differ diff --git a/doc/html/classboost_1_1nowide_1_1basic__ofstream-members.html b/doc/html/classboost_1_1nowide_1_1basic__ofstream-members.html deleted file mode 100644 index f19173e..0000000 --- a/doc/html/classboost_1_1nowide_1_1basic__ofstream-members.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - -Boost.Nowide: Member List - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - - -
-
-
-
boost::nowide::basic_ofstream< CharType, Traits > Member List
-
-
- -

This is the complete list of members for boost::nowide::basic_ofstream< CharType, Traits >, including all inherited members.

- - - - - - - - - - - - - -
basic_ofstream() (defined in boost::nowide::basic_ofstream< CharType, Traits >)boost::nowide::basic_ofstream< CharType, Traits >inline
basic_ofstream(char const *file_name, std::ios_base::openmode mode=std::ios_base::out) (defined in boost::nowide::basic_ofstream< CharType, Traits >)boost::nowide::basic_ofstream< CharType, Traits >inlineexplicit
basic_ofstream(std::string const &file_name, std::ios_base::openmode mode=std::ios_base::out) (defined in boost::nowide::basic_ofstream< CharType, Traits >)boost::nowide::basic_ofstream< CharType, Traits >inlineexplicit
close() (defined in boost::nowide::basic_ofstream< CharType, Traits >)boost::nowide::basic_ofstream< CharType, Traits >inline
internal_buffer_type typedef (defined in boost::nowide::basic_ofstream< CharType, Traits >)boost::nowide::basic_ofstream< CharType, Traits >
internal_stream_type typedef (defined in boost::nowide::basic_ofstream< CharType, Traits >)boost::nowide::basic_ofstream< CharType, Traits >
is_open() (defined in boost::nowide::basic_ofstream< CharType, Traits >)boost::nowide::basic_ofstream< CharType, Traits >inline
is_open() const (defined in boost::nowide::basic_ofstream< CharType, Traits >)boost::nowide::basic_ofstream< CharType, Traits >inline
open(std::string const &file_name, std::ios_base::openmode mode=std::ios_base::out) (defined in boost::nowide::basic_ofstream< CharType, Traits >)boost::nowide::basic_ofstream< CharType, Traits >inline
open(char const *file_name, std::ios_base::openmode mode=std::ios_base::out) (defined in boost::nowide::basic_ofstream< CharType, Traits >)boost::nowide::basic_ofstream< CharType, Traits >inline
rdbuf() const (defined in boost::nowide::basic_ofstream< CharType, Traits >)boost::nowide::basic_ofstream< CharType, Traits >inline
~basic_ofstream() (defined in boost::nowide::basic_ofstream< CharType, Traits >)boost::nowide::basic_ofstream< CharType, Traits >inline
- - - - diff --git a/doc/html/classboost_1_1nowide_1_1basic__ofstream.html b/doc/html/classboost_1_1nowide_1_1basic__ofstream.html deleted file mode 100644 index 4340c16..0000000 --- a/doc/html/classboost_1_1nowide_1_1basic__ofstream.html +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - -Boost.Nowide: boost::nowide::basic_ofstream< CharType, Traits > Class Template Reference - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - - -
-
-
-Public Types | -Public Member Functions | -List of all members
-
-
boost::nowide::basic_ofstream< CharType, Traits > Class Template Reference
-
-
- -

Same as std::basic_ofstream<char> but accepts UTF-8 strings under Windows. - More...

- -

#include <boost/nowide/fstream.hpp>

-
-Inheritance diagram for boost::nowide::basic_ofstream< CharType, Traits >:
-
-
- - - -
- - - - - - -

-Public Types

-typedef basic_filebuf
-< CharType, Traits > 
internal_buffer_type
 
-typedef std::basic_ostream
-< CharType, Traits > 
internal_stream_type
 
- - - - - - - - - - - - - - - - - -

-Public Member Functions

basic_ofstream (char const *file_name, std::ios_base::openmode mode=std::ios_base::out)
 
basic_ofstream (std::string const &file_name, std::ios_base::openmode mode=std::ios_base::out)
 
-void open (std::string const &file_name, std::ios_base::openmode mode=std::ios_base::out)
 
-void open (char const *file_name, std::ios_base::openmode mode=std::ios_base::out)
 
-bool is_open ()
 
-bool is_open () const
 
-void close ()
 
-internal_buffer_typerdbuf () const
 
-

Detailed Description

-

template<typename CharType, typename Traits = std::char_traits<CharType>>
-class boost::nowide::basic_ofstream< CharType, Traits >

- -

Same as std::basic_ofstream<char> but accepts UTF-8 strings under Windows.

-

The documentation for this class was generated from the following file: -
- - - - diff --git a/doc/html/classboost_1_1nowide_1_1basic__ofstream.png b/doc/html/classboost_1_1nowide_1_1basic__ofstream.png deleted file mode 100644 index 34151de..0000000 Binary files a/doc/html/classboost_1_1nowide_1_1basic__ofstream.png and /dev/null differ diff --git a/doc/html/classboost_1_1nowide_1_1basic__stackstring-members.html b/doc/html/classboost_1_1nowide_1_1basic__stackstring-members.html deleted file mode 100644 index 1623e61..0000000 --- a/doc/html/classboost_1_1nowide_1_1basic__stackstring-members.html +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - -Boost.Nowide: Member List - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - - -
-
-
-
boost::nowide::basic_stackstring< CharOut, CharIn, BufferSize > Member List
-
-
- -

This is the complete list of members for boost::nowide::basic_stackstring< CharOut, CharIn, BufferSize >, including all inherited members.

- - - - - - - - - - - - - - -
basic_stackstring(basic_stackstring const &other) (defined in boost::nowide::basic_stackstring< CharOut, CharIn, BufferSize >)boost::nowide::basic_stackstring< CharOut, CharIn, BufferSize >inline
basic_stackstring() (defined in boost::nowide::basic_stackstring< CharOut, CharIn, BufferSize >)boost::nowide::basic_stackstring< CharOut, CharIn, BufferSize >inline
buffer_size (defined in boost::nowide::basic_stackstring< CharOut, CharIn, BufferSize >)boost::nowide::basic_stackstring< CharOut, CharIn, BufferSize >static
c_str() (defined in boost::nowide::basic_stackstring< CharOut, CharIn, BufferSize >)boost::nowide::basic_stackstring< CharOut, CharIn, BufferSize >inline
c_str() const (defined in boost::nowide::basic_stackstring< CharOut, CharIn, BufferSize >)boost::nowide::basic_stackstring< CharOut, CharIn, BufferSize >inline
clear() (defined in boost::nowide::basic_stackstring< CharOut, CharIn, BufferSize >)boost::nowide::basic_stackstring< CharOut, CharIn, BufferSize >inline
convert(input_char const *input) (defined in boost::nowide::basic_stackstring< CharOut, CharIn, BufferSize >)boost::nowide::basic_stackstring< CharOut, CharIn, BufferSize >inline
convert(input_char const *begin, input_char const *end) (defined in boost::nowide::basic_stackstring< CharOut, CharIn, BufferSize >)boost::nowide::basic_stackstring< CharOut, CharIn, BufferSize >inline
input_char typedef (defined in boost::nowide::basic_stackstring< CharOut, CharIn, BufferSize >)boost::nowide::basic_stackstring< CharOut, CharIn, BufferSize >
operator=(basic_stackstring const &other) (defined in boost::nowide::basic_stackstring< CharOut, CharIn, BufferSize >)boost::nowide::basic_stackstring< CharOut, CharIn, BufferSize >inline
output_char typedef (defined in boost::nowide::basic_stackstring< CharOut, CharIn, BufferSize >)boost::nowide::basic_stackstring< CharOut, CharIn, BufferSize >
swap(basic_stackstring &other) (defined in boost::nowide::basic_stackstring< CharOut, CharIn, BufferSize >)boost::nowide::basic_stackstring< CharOut, CharIn, BufferSize >inline
~basic_stackstring() (defined in boost::nowide::basic_stackstring< CharOut, CharIn, BufferSize >)boost::nowide::basic_stackstring< CharOut, CharIn, BufferSize >inline
- - - - diff --git a/doc/html/classboost_1_1nowide_1_1basic__stackstring.html b/doc/html/classboost_1_1nowide_1_1basic__stackstring.html deleted file mode 100644 index d0b28fc..0000000 --- a/doc/html/classboost_1_1nowide_1_1basic__stackstring.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - -Boost.Nowide: boost::nowide::basic_stackstring< CharOut, CharIn, BufferSize > Class Template Reference - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - - -
-
-
-Public Types | -Public Member Functions | -Static Public Attributes | -List of all members
-
-
boost::nowide::basic_stackstring< CharOut, CharIn, BufferSize > Class Template Reference
-
-
- -

A class that allows to create a temporary wide or narrow UTF strings from wide or narrow UTF source. - More...

- -

#include <boost/nowide/stackstring.hpp>

- - - - - - -

-Public Types

-typedef CharOut output_char
 
-typedef CharIn input_char
 
- - - - - - - - - - - - - - - - - -

-Public Member Functions

basic_stackstring (basic_stackstring const &other)
 
-void swap (basic_stackstring &other)
 
-basic_stackstringoperator= (basic_stackstring const &other)
 
-bool convert (input_char const *input)
 
-bool convert (input_char const *begin, input_char const *end)
 
-output_char * c_str ()
 
-output_char const * c_str () const
 
-void clear ()
 
- - - -

-Static Public Attributes

-static const size_t buffer_size = BufferSize
 
-

Detailed Description

-

template<typename CharOut = wchar_t, typename CharIn = char, size_t BufferSize = 256>
-class boost::nowide::basic_stackstring< CharOut, CharIn, BufferSize >

- -

A class that allows to create a temporary wide or narrow UTF strings from wide or narrow UTF source.

-

It uses on stack buffer of the string is short enough and allocated a buffer on the heap if the size of the buffer is too small

-

The documentation for this class was generated from the following file: -
- - - - diff --git a/doc/html/classboost_1_1nowide_1_1utf8__codecvt.html b/doc/html/classboost_1_1nowide_1_1utf8__codecvt.html deleted file mode 100644 index 28b6c04..0000000 --- a/doc/html/classboost_1_1nowide_1_1utf8__codecvt.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - -Boost.Nowide: boost::nowide::utf8_codecvt< CharType, CharSize > Class Template Reference - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - - -
-
-
-
boost::nowide::utf8_codecvt< CharType, CharSize > Class Template Reference
-
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/doc/html/classboost_1_1nowide_1_1utf8__codecvt_3_01CharType_00_012_01_4-members.html b/doc/html/classboost_1_1nowide_1_1utf8__codecvt_3_01CharType_00_012_01_4-members.html deleted file mode 100644 index 4ee1c79..0000000 --- a/doc/html/classboost_1_1nowide_1_1utf8__codecvt_3_01CharType_00_012_01_4-members.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - -Boost.Nowide: Member List - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - - -
-
-
-
boost::nowide::utf8_codecvt< CharType, 2 > Member List
-
-
- -

This is the complete list of members for boost::nowide::utf8_codecvt< CharType, 2 >, including all inherited members.

- - - - - - - - - - -
do_always_noconv() const (defined in boost::nowide::utf8_codecvt< CharType, 2 >)boost::nowide::utf8_codecvt< CharType, 2 >inlineprotectedvirtual
do_encoding() const (defined in boost::nowide::utf8_codecvt< CharType, 2 >)boost::nowide::utf8_codecvt< CharType, 2 >inlineprotectedvirtual
do_in(std::mbstate_t &std_state, char const *from, char const *from_end, char const *&from_next, uchar *to, uchar *to_end, uchar *&to_next) const (defined in boost::nowide::utf8_codecvt< CharType, 2 >)boost::nowide::utf8_codecvt< CharType, 2 >inlineprotectedvirtual
do_length(std::mbstate_t &std_state, char const *from, char const *from_end, size_t max) const (defined in boost::nowide::utf8_codecvt< CharType, 2 >)boost::nowide::utf8_codecvt< CharType, 2 >inlineprotectedvirtual
do_max_length() const (defined in boost::nowide::utf8_codecvt< CharType, 2 >)boost::nowide::utf8_codecvt< CharType, 2 >inlineprotectedvirtual
do_out(std::mbstate_t &std_state, uchar const *from, uchar const *from_end, uchar const *&from_next, char *to, char *to_end, char *&to_next) const (defined in boost::nowide::utf8_codecvt< CharType, 2 >)boost::nowide::utf8_codecvt< CharType, 2 >inlineprotectedvirtual
do_unshift(std::mbstate_t &s, char *from, char *, char *&next) const (defined in boost::nowide::utf8_codecvt< CharType, 2 >)boost::nowide::utf8_codecvt< CharType, 2 >inlineprotectedvirtual
uchar typedef (defined in boost::nowide::utf8_codecvt< CharType, 2 >)boost::nowide::utf8_codecvt< CharType, 2 >protected
utf8_codecvt(size_t refs=0) (defined in boost::nowide::utf8_codecvt< CharType, 2 >)boost::nowide::utf8_codecvt< CharType, 2 >inline
- - - - diff --git a/doc/html/classboost_1_1nowide_1_1utf8__codecvt_3_01CharType_00_012_01_4.html b/doc/html/classboost_1_1nowide_1_1utf8__codecvt_3_01CharType_00_012_01_4.html deleted file mode 100644 index 343d528..0000000 --- a/doc/html/classboost_1_1nowide_1_1utf8__codecvt_3_01CharType_00_012_01_4.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - -Boost.Nowide: boost::nowide::utf8_codecvt< CharType, 2 > Class Template Reference - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - - -
-
-
-Public Member Functions | -Protected Types | -Protected Member Functions | -List of all members
-
-
boost::nowide::utf8_codecvt< CharType, 2 > Class Template Reference
-
-
-
-Inheritance diagram for boost::nowide::utf8_codecvt< CharType, 2 >:
-
-
- - - -
- - - - -

-Public Member Functions

utf8_codecvt (size_t refs=0)
 
- - - -

-Protected Types

-typedef CharType uchar
 
- - - - - - - - - - - - - - - -

-Protected Member Functions

-virtual std::codecvt_base::result do_unshift (std::mbstate_t &s, char *from, char *, char *&next) const
 
-virtual int do_encoding () const throw ()
 
-virtual int do_max_length () const throw ()
 
-virtual bool do_always_noconv () const throw ()
 
-virtual int do_length (std::mbstate_t &std_state, char const *from, char const *from_end, size_t max) const
 
-virtual std::codecvt_base::result do_in (std::mbstate_t &std_state, char const *from, char const *from_end, char const *&from_next, uchar *to, uchar *to_end, uchar *&to_next) const
 
-virtual std::codecvt_base::result do_out (std::mbstate_t &std_state, uchar const *from, uchar const *from_end, uchar const *&from_next, char *to, char *to_end, char *&to_next) const
 
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/doc/html/classboost_1_1nowide_1_1utf8__codecvt_3_01CharType_00_012_01_4.png b/doc/html/classboost_1_1nowide_1_1utf8__codecvt_3_01CharType_00_012_01_4.png deleted file mode 100644 index 11f4564..0000000 Binary files a/doc/html/classboost_1_1nowide_1_1utf8__codecvt_3_01CharType_00_012_01_4.png and /dev/null differ diff --git a/doc/html/classboost_1_1nowide_1_1utf8__codecvt_3_01CharType_00_014_01_4-members.html b/doc/html/classboost_1_1nowide_1_1utf8__codecvt_3_01CharType_00_014_01_4-members.html deleted file mode 100644 index f662e15..0000000 --- a/doc/html/classboost_1_1nowide_1_1utf8__codecvt_3_01CharType_00_014_01_4-members.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - -Boost.Nowide: Member List - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - - -
-
-
-
boost::nowide::utf8_codecvt< CharType, 4 > Member List
-
-
- -

This is the complete list of members for boost::nowide::utf8_codecvt< CharType, 4 >, including all inherited members.

- - - - - - - - - - -
do_always_noconv() const (defined in boost::nowide::utf8_codecvt< CharType, 4 >)boost::nowide::utf8_codecvt< CharType, 4 >inlineprotectedvirtual
do_encoding() const (defined in boost::nowide::utf8_codecvt< CharType, 4 >)boost::nowide::utf8_codecvt< CharType, 4 >inlineprotectedvirtual
do_in(std::mbstate_t &, char const *from, char const *from_end, char const *&from_next, uchar *to, uchar *to_end, uchar *&to_next) const (defined in boost::nowide::utf8_codecvt< CharType, 4 >)boost::nowide::utf8_codecvt< CharType, 4 >inlineprotectedvirtual
do_length(std::mbstate_t &, char const *from, char const *from_end, size_t max) const (defined in boost::nowide::utf8_codecvt< CharType, 4 >)boost::nowide::utf8_codecvt< CharType, 4 >inlineprotectedvirtual
do_max_length() const (defined in boost::nowide::utf8_codecvt< CharType, 4 >)boost::nowide::utf8_codecvt< CharType, 4 >inlineprotectedvirtual
do_out(std::mbstate_t &std_state, uchar const *from, uchar const *from_end, uchar const *&from_next, char *to, char *to_end, char *&to_next) const (defined in boost::nowide::utf8_codecvt< CharType, 4 >)boost::nowide::utf8_codecvt< CharType, 4 >inlineprotectedvirtual
do_unshift(std::mbstate_t &, char *from, char *, char *&next) const (defined in boost::nowide::utf8_codecvt< CharType, 4 >)boost::nowide::utf8_codecvt< CharType, 4 >inlineprotectedvirtual
uchar typedef (defined in boost::nowide::utf8_codecvt< CharType, 4 >)boost::nowide::utf8_codecvt< CharType, 4 >protected
utf8_codecvt(size_t refs=0) (defined in boost::nowide::utf8_codecvt< CharType, 4 >)boost::nowide::utf8_codecvt< CharType, 4 >inline
- - - - diff --git a/doc/html/classboost_1_1nowide_1_1utf8__codecvt_3_01CharType_00_014_01_4.html b/doc/html/classboost_1_1nowide_1_1utf8__codecvt_3_01CharType_00_014_01_4.html deleted file mode 100644 index 54ce3bc..0000000 --- a/doc/html/classboost_1_1nowide_1_1utf8__codecvt_3_01CharType_00_014_01_4.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - -Boost.Nowide: boost::nowide::utf8_codecvt< CharType, 4 > Class Template Reference - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - - -
-
-
-Public Member Functions | -Protected Types | -Protected Member Functions | -List of all members
-
-
boost::nowide::utf8_codecvt< CharType, 4 > Class Template Reference
-
-
-
-Inheritance diagram for boost::nowide::utf8_codecvt< CharType, 4 >:
-
-
- - - -
- - - - -

-Public Member Functions

utf8_codecvt (size_t refs=0)
 
- - - -

-Protected Types

-typedef CharType uchar
 
- - - - - - - - - - - - - - - -

-Protected Member Functions

-virtual std::codecvt_base::result do_unshift (std::mbstate_t &, char *from, char *, char *&next) const
 
-virtual int do_encoding () const throw ()
 
-virtual int do_max_length () const throw ()
 
-virtual bool do_always_noconv () const throw ()
 
-virtual int do_length (std::mbstate_t &, char const *from, char const *from_end, size_t max) const
 
-virtual std::codecvt_base::result do_in (std::mbstate_t &, char const *from, char const *from_end, char const *&from_next, uchar *to, uchar *to_end, uchar *&to_next) const
 
-virtual std::codecvt_base::result do_out (std::mbstate_t &std_state, uchar const *from, uchar const *from_end, uchar const *&from_next, char *to, char *to_end, char *&to_next) const
 
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/doc/html/classboost_1_1nowide_1_1utf8__codecvt_3_01CharType_00_014_01_4.png b/doc/html/classboost_1_1nowide_1_1utf8__codecvt_3_01CharType_00_014_01_4.png deleted file mode 100644 index 5ce57a6..0000000 Binary files a/doc/html/classboost_1_1nowide_1_1utf8__codecvt_3_01CharType_00_014_01_4.png and /dev/null differ diff --git a/doc/html/classes.html b/doc/html/classes.html deleted file mode 100644 index a7f7ed1..0000000 --- a/doc/html/classes.html +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - -Boost.Nowide: Class Index - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - -
-
-
-
Class Index
-
-
-
A | B | U
- - - - - - - - -
  a  
-
basic_filebuf< char > (boost::nowide)   basic_stackstring (boost::nowide)   utf8_codecvt< CharType, 2 > (boost::nowide)   
basic_fstream (boost::nowide)   
  u  
-
utf8_codecvt< CharType, 4 > (boost::nowide)   
args (boost::nowide)   basic_ifstream (boost::nowide)   
  b  
-
basic_ofstream (boost::nowide)   utf8_codecvt (boost::nowide)   
basic_filebuf (boost::nowide)   
-
A | B | U
-
- - - - diff --git a/doc/html/closed.png b/doc/html/closed.png deleted file mode 100644 index 98cc2c9..0000000 Binary files a/doc/html/closed.png and /dev/null differ diff --git a/doc/html/config_8hpp_source.html b/doc/html/config_8hpp_source.html deleted file mode 100644 index a966395..0000000 --- a/doc/html/config_8hpp_source.html +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - -Boost.Nowide: boost/nowide/config.hpp Source File - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - - -
-
-
-
config.hpp
-
-
-
1 //
-
2 // Copyright (c) 2012 Artyom Beilis (Tonkikh)
-
3 //
-
4 // Distributed under the Boost Software License, Version 1.0. (See
-
5 // accompanying file LICENSE_1_0.txt or copy at
-
6 // http://www.boost.org/LICENSE_1_0.txt)
-
7 //
-
8 #ifndef BOOST_NOWIDE_CONFIG_HPP_INCLUDED
-
9 #define BOOST_NOWIDE_CONFIG_HPP_INCLUDED
-
10 
-
11 #include <boost/config.hpp>
-
12 
-
13 #ifndef BOOST_SYMBOL_VISIBLE
-
14 # define BOOST_SYMBOL_VISIBLE
-
15 #endif
-
16 
-
17 #ifdef BOOST_HAS_DECLSPEC
-
18 # if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_NOWIDE_DYN_LINK)
-
19 # ifdef BOOST_NOWIDE_SOURCE
-
20 # define BOOST_NOWIDE_DECL BOOST_SYMBOL_EXPORT
-
21 # else
-
22 # define BOOST_NOWIDE_DECL BOOST_SYMBOL_IMPORT
-
23 # endif // BOOST_NOWIDE_SOURCE
-
24 # endif // DYN_LINK
-
25 #endif // BOOST_HAS_DECLSPEC
-
26 
-
27 #ifndef BOOST_NOWIDE_DECL
-
28 # define BOOST_NOWIDE_DECL
-
29 #endif
-
30 
-
31 //
-
32 // Automatically link to the correct build variant where possible.
-
33 //
-
34 #if !defined(BOOST_ALL_NO_LIB) && !defined(BOOST_NOWIDE_NO_LIB) && !defined(BOOST_NOWIDE_SOURCE)
-
35 //
-
36 // Set the name of our library, this will get undef'ed by auto_link.hpp
-
37 // once it's done with it:
-
38 //
-
39 #define BOOST_LIB_NAME boost_nowide
-
40 //
-
41 // If we're importing code from a dll, then tell auto_link.hpp about it:
-
42 //
-
43 #if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_NOWIDE_DYN_LINK)
-
44 # define BOOST_DYN_LINK
-
45 #endif
-
46 //
-
47 // And include the header that does the work:
-
48 //
-
49 #include <boost/config/auto_link.hpp>
-
50 #endif // auto-linking disabled
-
51 
-
52 
-
53 #endif // boost/nowide/config.hpp
-
54 // vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
-
- - - - diff --git a/doc/html/convert_8hpp_source.html b/doc/html/convert_8hpp_source.html deleted file mode 100644 index 13e5a73..0000000 --- a/doc/html/convert_8hpp_source.html +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - -Boost.Nowide: boost/nowide/convert.hpp Source File - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - - -
-
-
-
convert.hpp
-
-
-
1 //
-
2 // Copyright (c) 2012 Artyom Beilis (Tonkikh)
-
3 //
-
4 // Distributed under the Boost Software License, Version 1.0. (See
-
5 // accompanying file LICENSE_1_0.txt or copy at
-
6 // http://www.boost.org/LICENSE_1_0.txt)
-
7 //
-
8 #ifndef BOOST_NOWIDE_CONVERT_H_INCLUDED
-
9 #define BOOST_NOWIDE_CONVERT_H_INCLUDED
-
10 
-
11 #include <string>
-
12 #include <boost/locale/encoding_utf.hpp>
-
13 
-
14 namespace boost {
-
15 namespace nowide {
-
25  template<typename CharOut,typename CharIn>
-
26  CharOut *basic_convert(CharOut *buffer,size_t buffer_size,CharIn const *source_begin,CharIn const *source_end)
-
27  {
-
28  CharOut *rv = buffer;
-
29  if(buffer_size == 0)
-
30  return 0;
-
31  buffer_size --;
-
32  while(source_begin!=source_end) {
-
33  using namespace boost::locale::utf;
-
34  code_point c = utf_traits<CharIn>::template decode<CharIn const *>(source_begin,source_end);
-
35  if(c==illegal || c==incomplete) {
-
36  rv = 0;
-
37  break;
-
38  }
-
39  size_t width = utf_traits<CharOut>::width(c);
-
40  if(buffer_size < width) {
-
41  rv=0;
-
42  break;
-
43  }
-
44  buffer = utf_traits<CharOut>::template encode<CharOut *>(c,buffer);
-
45  buffer_size -= width;
-
46  }
-
47  *buffer++ = 0;
-
48  return rv;
-
49  }
-
50 
-
52  namespace details {
-
53  //
-
54  // wcslen defined only in C99... So we will not use it
-
55  //
-
56  template<typename Char>
-
57  Char const *basic_strend(Char const *s)
-
58  {
-
59  while(*s)
-
60  s++;
-
61  return s;
-
62  }
-
63  }
-
65 
-
73  inline char *narrow(char *output,size_t output_size,wchar_t const *source)
-
74  {
-
75  return basic_convert(output,output_size,source,details::basic_strend(source));
-
76  }
-
84  inline char *narrow(char *output,size_t output_size,wchar_t const *begin,wchar_t const *end)
-
85  {
-
86  return basic_convert(output,output_size,begin,end);
-
87  }
-
95  inline wchar_t *widen(wchar_t *output,size_t output_size,char const *source)
-
96  {
-
97  return basic_convert(output,output_size,source,details::basic_strend(source));
-
98  }
-
106  inline wchar_t *widen(wchar_t *output,size_t output_size,char const *begin,char const *end)
-
107  {
-
108  return basic_convert(output,output_size,begin,end);
-
109  }
-
110 
-
111 
-
117  inline std::string narrow(wchar_t const *s)
-
118  {
-
119  return boost::locale::conv::utf_to_utf<char>(s);
-
120  }
-
126  inline std::wstring widen(char const *s)
-
127  {
-
128  return boost::locale::conv::utf_to_utf<wchar_t>(s);
-
129  }
-
135  inline std::string narrow(std::wstring const &s)
-
136  {
-
137  return boost::locale::conv::utf_to_utf<char>(s);
-
138  }
-
144  inline std::wstring widen(std::string const &s)
-
145  {
-
146  return boost::locale::conv::utf_to_utf<wchar_t>(s);
-
147  }
-
148 
-
149 } // nowide
-
150 } // namespace boost
-
151 
-
152 #endif
-
153 // vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
-
char * narrow(char *output, size_t output_size, wchar_t const *source)
Definition: convert.hpp:73
-
wchar_t * widen(wchar_t *output, size_t output_size, char const *source)
Definition: convert.hpp:95
-
CharOut * basic_convert(CharOut *buffer, size_t buffer_size, CharIn const *source_begin, CharIn const *source_end)
Template function that converts a buffer of UTF sequences in range [source_begin,source_end) to the o...
Definition: convert.hpp:26
-
- - - - diff --git a/doc/html/cstdio_8hpp_source.html b/doc/html/cstdio_8hpp_source.html deleted file mode 100644 index 4d23440..0000000 --- a/doc/html/cstdio_8hpp_source.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - -Boost.Nowide: boost/nowide/cstdio.hpp Source File - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - - -
-
-
-
cstdio.hpp
-
-
-
1 //
-
2 // Copyright (c) 2012 Artyom Beilis (Tonkikh)
-
3 //
-
4 // Distributed under the Boost Software License, Version 1.0. (See
-
5 // accompanying file LICENSE_1_0.txt or copy at
-
6 // http://www.boost.org/LICENSE_1_0.txt)
-
7 //
-
8 #ifndef BOOST_NOWIDE_CSTDIO_H_INCLUDED
-
9 #define BOOST_NOWIDE_CSTDIO_H_INCLUDED
-
10 
-
11 #include <cstdio>
-
12 #include <stdio.h>
-
13 #include <boost/config.hpp>
-
14 #include <boost/nowide/convert.hpp>
-
15 #include <boost/nowide/stackstring.hpp>
-
16 #include <errno.h>
-
17 
-
18 #ifdef BOOST_MSVC
-
19 # pragma warning(push)
-
20 # pragma warning(disable : 4996)
-
21 #endif
-
22 
-
23 
-
24 namespace boost {
-
25 namespace nowide {
-
26 #if !defined(BOOST_WINDOWS) && !defined(BOOST_NOWIDE_DOXYGEN)
-
27  using std::fopen;
-
28  using std::freopen;
-
29  using std::remove;
-
30  using std::rename;
-
31 #else
-
32 
-
38 inline FILE *freopen(char const *file_name,char const *mode,FILE *stream)
-
39 {
-
40  wstackstring wname;
-
41  wshort_stackstring wmode;
-
42  if(!wname.convert(file_name) || !wmode.convert(mode)) {
-
43  errno = EINVAL;
-
44  return 0;
-
45  }
-
46  return _wfreopen(wname.c_str(),wmode.c_str(),stream);
-
47 }
-
53 inline FILE *fopen(char const *file_name,char const *mode)
-
54 {
-
55  wstackstring wname;
-
56  wshort_stackstring wmode;
-
57  if(!wname.convert(file_name) || !wmode.convert(mode)) {
-
58  errno = EINVAL;
-
59  return 0;
-
60  }
-
61  return _wfopen(wname.c_str(),wmode.c_str());
-
62 }
-
68 inline int rename(char const *old_name,char const *new_name)
-
69 {
-
70  wstackstring wold,wnew;
-
71  if(!wold.convert(old_name) || !wnew.convert(new_name)) {
-
72  errno = EINVAL;
-
73  return -1;
-
74  }
-
75  return _wrename(wold.c_str(),wnew.c_str());
-
76 }
-
82 inline int remove(char const *name)
-
83 {
-
84  wstackstring wname;
-
85  if(!wname.convert(name)) {
-
86  errno = EINVAL;
-
87  return -1;
-
88  }
-
89  return _wremove(wname.c_str());
-
90 }
-
91 #endif
-
92 } // nowide
-
93 } // namespace boost
-
94 
-
95 #ifdef BOOST_MSVC
-
96 #pragma warning(pop)
-
97 #endif
-
98 
-
99 #endif
-
100 // vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
-
int rename(char const *old_name, char const *new_name)
Same as rename but old_name and new_name are UTF-8 strings.
Definition: cstdio.hpp:68
-
FILE * freopen(char const *file_name, char const *mode, FILE *stream)
Same as freopen but file_name and mode are UTF-8 strings.
Definition: cstdio.hpp:38
-
FILE * fopen(char const *file_name, char const *mode)
Same as fopen but file_name and mode are UTF-8 strings.
Definition: cstdio.hpp:53
-
A class that allows to create a temporary wide or narrow UTF strings from wide or narrow UTF source...
Definition: stackstring.hpp:25
-
- - - - diff --git a/doc/html/cstdlib_8hpp_source.html b/doc/html/cstdlib_8hpp_source.html deleted file mode 100644 index 5dec43b..0000000 --- a/doc/html/cstdlib_8hpp_source.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - -Boost.Nowide: boost/nowide/cstdlib.hpp Source File - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - - -
-
-
-
cstdlib.hpp
-
-
-
1 //
-
2 // Copyright (c) 2012 Artyom Beilis (Tonkikh)
-
3 //
-
4 // Distributed under the Boost Software License, Version 1.0. (See
-
5 // accompanying file LICENSE_1_0.txt or copy at
-
6 // http://www.boost.org/LICENSE_1_0.txt)
-
7 //
-
8 #ifndef BOOST_NOWIDE_CSTDLIB_HPP_INCLUDED
-
9 #define BOOST_NOWIDE_CSTDLIB_HPP_INCLUDED
-
10 
-
11 #include <boost/nowide/cenv.hpp>
-
12 #include <boost/nowide/system.hpp>
-
13 
-
14 #endif
-
15 // vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
-
- - - - diff --git a/doc/html/dir_ab6683690fd4be124cf09c612930f7a9.html b/doc/html/dir_ab6683690fd4be124cf09c612930f7a9.html deleted file mode 100644 index eba98a8..0000000 --- a/doc/html/dir_ab6683690fd4be124cf09c612930f7a9.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - -Boost.Nowide: boost/nowide/integration Directory Reference - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - -
-
-
-
integration Directory Reference
-
-
- - - - -

-Files

file  filesystem.hpp [code]
 
-
- - - - diff --git a/doc/html/dir_c8984f1860c11f62f47abb6761e46c1e.html b/doc/html/dir_c8984f1860c11f62f47abb6761e46c1e.html deleted file mode 100644 index 49813ac..0000000 --- a/doc/html/dir_c8984f1860c11f62f47abb6761e46c1e.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - -Boost.Nowide: boost Directory Reference - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - -
-
-
-
boost Directory Reference
-
-
- - - - -

-Directories

directory  nowide
 
-
- - - - diff --git a/doc/html/dir_cba7cd329d8f45cf06543cd3b730d485.html b/doc/html/dir_cba7cd329d8f45cf06543cd3b730d485.html deleted file mode 100644 index ef79d51..0000000 --- a/doc/html/dir_cba7cd329d8f45cf06543cd3b730d485.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - -Boost.Nowide: boost/nowide Directory Reference - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - -
-
-
-
nowide Directory Reference
-
-
- - - - -

-Directories

directory  integration
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Files

file  args.hpp [code]
 
file  cenv.hpp [code]
 
file  config.hpp [code]
 
file  convert.hpp [code]
 
file  cstdio.hpp [code]
 
file  cstdlib.hpp [code]
 
file  filebuf.hpp [code]
 
file  fstream.hpp [code]
 
file  iostream.hpp [code]
 
file  stackstring.hpp [code]
 
file  system.hpp [code]
 
file  utf8_codecvt.hpp [code]
 
file  windows.hpp [code]
 
-
- - - - diff --git a/doc/html/doxygen.css b/doc/html/doxygen.css deleted file mode 100644 index 0a8f962..0000000 --- a/doc/html/doxygen.css +++ /dev/null @@ -1,1440 +0,0 @@ -/* The standard CSS for doxygen 1.8.7 */ - -body, table, div, p, dl { - font: 400 14px/22px Roboto,sans-serif; -} - -/* @group Heading Levels */ - -h1.groupheader { - font-size: 150%; -} - -.title { - font: 400 14px/28px Roboto,sans-serif; - font-size: 150%; - font-weight: bold; - margin: 10px 2px; -} - -h2.groupheader { - border-bottom: 1px solid #879ECB; - color: #354C7B; - font-size: 150%; - font-weight: normal; - margin-top: 1.75em; - padding-top: 8px; - padding-bottom: 4px; - width: 100%; -} - -h3.groupheader { - font-size: 100%; -} - -h1, h2, h3, h4, h5, h6 { - -webkit-transition: text-shadow 0.5s linear; - -moz-transition: text-shadow 0.5s linear; - -ms-transition: text-shadow 0.5s linear; - -o-transition: text-shadow 0.5s linear; - transition: text-shadow 0.5s linear; - margin-right: 15px; -} - -h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { - text-shadow: 0 0 15px cyan; -} - -dt { - font-weight: bold; -} - -div.multicol { - -moz-column-gap: 1em; - -webkit-column-gap: 1em; - -moz-column-count: 3; - -webkit-column-count: 3; -} - -p.startli, p.startdd { - margin-top: 2px; -} - -p.starttd { - margin-top: 0px; -} - -p.endli { - margin-bottom: 0px; -} - -p.enddd { - margin-bottom: 4px; -} - -p.endtd { - margin-bottom: 2px; -} - -/* @end */ - -caption { - font-weight: bold; -} - -span.legend { - font-size: 70%; - text-align: center; -} - -h3.version { - font-size: 90%; - text-align: center; -} - -div.qindex, div.navtab{ - background-color: #EBEFF6; - border: 1px solid #A3B4D7; - text-align: center; -} - -div.qindex, div.navpath { - width: 100%; - line-height: 140%; -} - -div.navtab { - margin-right: 15px; -} - -/* @group Link Styling */ - -a { - color: #3D578C; - font-weight: normal; - text-decoration: none; -} - -.contents a:visited { - color: #4665A2; -} - -a:hover { - text-decoration: underline; -} - -a.qindex { - font-weight: bold; -} - -a.qindexHL { - font-weight: bold; - background-color: #9CAFD4; - color: #ffffff; - border: 1px double #869DCA; -} - -.contents a.qindexHL:visited { - color: #ffffff; -} - -a.el { - font-weight: bold; -} - -a.elRef { -} - -a.code, a.code:visited, a.line, a.line:visited { - color: #4665A2; -} - -a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { - color: #4665A2; -} - -/* @end */ - -dl.el { - margin-left: -1cm; -} - -pre.fragment { - border: 1px solid #C4CFE5; - background-color: #FBFCFD; - padding: 4px 6px; - margin: 4px 8px 4px 2px; - overflow: auto; - word-wrap: break-word; - font-size: 9pt; - line-height: 125%; - font-family: monospace, fixed; - font-size: 105%; -} - -div.fragment { - padding: 4px 6px; - margin: 4px 8px 4px 2px; - background-color: #FBFCFD; - border: 1px solid #C4CFE5; -} - -div.line { - font-family: monospace, fixed; - font-size: 13px; - min-height: 13px; - line-height: 1.0; - text-wrap: unrestricted; - white-space: -moz-pre-wrap; /* Moz */ - white-space: -pre-wrap; /* Opera 4-6 */ - white-space: -o-pre-wrap; /* Opera 7 */ - white-space: pre-wrap; /* CSS3 */ - word-wrap: break-word; /* IE 5.5+ */ - text-indent: -53px; - padding-left: 53px; - padding-bottom: 0px; - margin: 0px; - -webkit-transition-property: background-color, box-shadow; - -webkit-transition-duration: 0.5s; - -moz-transition-property: background-color, box-shadow; - -moz-transition-duration: 0.5s; - -ms-transition-property: background-color, box-shadow; - -ms-transition-duration: 0.5s; - -o-transition-property: background-color, box-shadow; - -o-transition-duration: 0.5s; - transition-property: background-color, box-shadow; - transition-duration: 0.5s; -} - -div.line.glow { - background-color: cyan; - box-shadow: 0 0 10px cyan; -} - - -span.lineno { - padding-right: 4px; - text-align: right; - border-right: 2px solid #0F0; - background-color: #E8E8E8; - white-space: pre; -} -span.lineno a { - background-color: #D8D8D8; -} - -span.lineno a:hover { - background-color: #C8C8C8; -} - -div.ah { - background-color: black; - font-weight: bold; - color: #ffffff; - margin-bottom: 3px; - margin-top: 3px; - padding: 0.2em; - border: solid thin #333; - border-radius: 0.5em; - -webkit-border-radius: .5em; - -moz-border-radius: .5em; - box-shadow: 2px 2px 3px #999; - -webkit-box-shadow: 2px 2px 3px #999; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; - background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); - background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); -} - -div.groupHeader { - margin-left: 16px; - margin-top: 12px; - font-weight: bold; -} - -div.groupText { - margin-left: 16px; - font-style: italic; -} - -body { - background-color: white; - color: black; - margin: 0; -} - -div.contents { - margin-top: 10px; - margin-left: 12px; - margin-right: 8px; -} - -td.indexkey { - background-color: #EBEFF6; - font-weight: bold; - border: 1px solid #C4CFE5; - margin: 2px 0px 2px 0; - padding: 2px 10px; - white-space: nowrap; - vertical-align: top; -} - -td.indexvalue { - background-color: #EBEFF6; - border: 1px solid #C4CFE5; - padding: 2px 10px; - margin: 2px 0px; -} - -tr.memlist { - background-color: #EEF1F7; -} - -p.formulaDsp { - text-align: center; -} - -img.formulaDsp { - -} - -img.formulaInl { - vertical-align: middle; -} - -div.center { - text-align: center; - margin-top: 0px; - margin-bottom: 0px; - padding: 0px; -} - -div.center img { - border: 0px; -} - -address.footer { - text-align: right; - padding-right: 12px; -} - -img.footer { - border: 0px; - vertical-align: middle; -} - -/* @group Code Colorization */ - -span.keyword { - color: #008000 -} - -span.keywordtype { - color: #604020 -} - -span.keywordflow { - color: #e08000 -} - -span.comment { - color: #800000 -} - -span.preprocessor { - color: #806020 -} - -span.stringliteral { - color: #002080 -} - -span.charliteral { - color: #008080 -} - -span.vhdldigit { - color: #ff00ff -} - -span.vhdlchar { - color: #000000 -} - -span.vhdlkeyword { - color: #700070 -} - -span.vhdllogic { - color: #ff0000 -} - -blockquote { - background-color: #F7F8FB; - border-left: 2px solid #9CAFD4; - margin: 0 24px 0 4px; - padding: 0 12px 0 16px; -} - -/* @end */ - -/* -.search { - color: #003399; - font-weight: bold; -} - -form.search { - margin-bottom: 0px; - margin-top: 0px; -} - -input.search { - font-size: 75%; - color: #000080; - font-weight: normal; - background-color: #e8eef2; -} -*/ - -td.tiny { - font-size: 75%; -} - -.dirtab { - padding: 4px; - border-collapse: collapse; - border: 1px solid #A3B4D7; -} - -th.dirtab { - background: #EBEFF6; - font-weight: bold; -} - -hr { - height: 0px; - border: none; - border-top: 1px solid #4A6AAA; -} - -hr.footer { - height: 1px; -} - -/* @group Member Descriptions */ - -table.memberdecls { - border-spacing: 0px; - padding: 0px; -} - -.memberdecls td, .fieldtable tr { - -webkit-transition-property: background-color, box-shadow; - -webkit-transition-duration: 0.5s; - -moz-transition-property: background-color, box-shadow; - -moz-transition-duration: 0.5s; - -ms-transition-property: background-color, box-shadow; - -ms-transition-duration: 0.5s; - -o-transition-property: background-color, box-shadow; - -o-transition-duration: 0.5s; - transition-property: background-color, box-shadow; - transition-duration: 0.5s; -} - -.memberdecls td.glow, .fieldtable tr.glow { - background-color: cyan; - box-shadow: 0 0 15px cyan; -} - -.mdescLeft, .mdescRight, -.memItemLeft, .memItemRight, -.memTemplItemLeft, .memTemplItemRight, .memTemplParams { - background-color: #F9FAFC; - border: none; - margin: 4px; - padding: 1px 0 0 8px; -} - -.mdescLeft, .mdescRight { - padding: 0px 8px 4px 8px; - color: #555; -} - -.memSeparator { - border-bottom: 1px solid #DEE4F0; - line-height: 1px; - margin: 0px; - padding: 0px; -} - -.memItemLeft, .memTemplItemLeft { - white-space: nowrap; -} - -.memItemRight { - width: 100%; -} - -.memTemplParams { - color: #4665A2; - white-space: nowrap; - font-size: 80%; -} - -/* @end */ - -/* @group Member Details */ - -/* Styles for detailed member documentation */ - -.memtemplate { - font-size: 80%; - color: #4665A2; - font-weight: normal; - margin-left: 9px; -} - -.memnav { - background-color: #EBEFF6; - border: 1px solid #A3B4D7; - text-align: center; - margin: 2px; - margin-right: 15px; - padding: 2px; -} - -.mempage { - width: 100%; -} - -.memitem { - padding: 0; - margin-bottom: 10px; - margin-right: 5px; - -webkit-transition: box-shadow 0.5s linear; - -moz-transition: box-shadow 0.5s linear; - -ms-transition: box-shadow 0.5s linear; - -o-transition: box-shadow 0.5s linear; - transition: box-shadow 0.5s linear; - display: table !important; - width: 100%; -} - -.memitem.glow { - box-shadow: 0 0 15px cyan; -} - -.memname { - font-weight: bold; - margin-left: 6px; -} - -.memname td { - vertical-align: bottom; -} - -.memproto, dl.reflist dt { - border-top: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - padding: 6px 0px 6px 0px; - color: #253555; - font-weight: bold; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - background-image:url('nav_f.png'); - background-repeat:repeat-x; - background-color: #E2E8F2; - /* opera specific markup */ - box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - border-top-right-radius: 4px; - border-top-left-radius: 4px; - /* firefox specific markup */ - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - -moz-border-radius-topright: 4px; - -moz-border-radius-topleft: 4px; - /* webkit specific markup */ - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - -webkit-border-top-right-radius: 4px; - -webkit-border-top-left-radius: 4px; - -} - -.memdoc, dl.reflist dd { - border-bottom: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - padding: 6px 10px 2px 10px; - background-color: #FBFCFD; - border-top-width: 0; - background-image:url('nav_g.png'); - background-repeat:repeat-x; - background-color: #FFFFFF; - /* opera specific markup */ - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; - box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - /* firefox specific markup */ - -moz-border-radius-bottomleft: 4px; - -moz-border-radius-bottomright: 4px; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - /* webkit specific markup */ - -webkit-border-bottom-left-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -} - -dl.reflist dt { - padding: 5px; -} - -dl.reflist dd { - margin: 0px 0px 10px 0px; - padding: 5px; -} - -.paramkey { - text-align: right; -} - -.paramtype { - white-space: nowrap; -} - -.paramname { - color: #602020; - white-space: nowrap; -} -.paramname em { - font-style: normal; -} -.paramname code { - line-height: 14px; -} - -.params, .retval, .exception, .tparams { - margin-left: 0px; - padding-left: 0px; -} - -.params .paramname, .retval .paramname { - font-weight: bold; - vertical-align: top; -} - -.params .paramtype { - font-style: italic; - vertical-align: top; -} - -.params .paramdir { - font-family: "courier new",courier,monospace; - vertical-align: top; -} - -table.mlabels { - border-spacing: 0px; -} - -td.mlabels-left { - width: 100%; - padding: 0px; -} - -td.mlabels-right { - vertical-align: bottom; - padding: 0px; - white-space: nowrap; -} - -span.mlabels { - margin-left: 8px; -} - -span.mlabel { - background-color: #728DC1; - border-top:1px solid #5373B4; - border-left:1px solid #5373B4; - border-right:1px solid #C4CFE5; - border-bottom:1px solid #C4CFE5; - text-shadow: none; - color: white; - margin-right: 4px; - padding: 2px 3px; - border-radius: 3px; - font-size: 7pt; - white-space: nowrap; - vertical-align: middle; -} - - - -/* @end */ - -/* these are for tree view inside a (index) page */ - -div.directory { - margin: 10px 0px; - border-top: 1px solid #9CAFD4; - border-bottom: 1px solid #9CAFD4; - width: 100%; -} - -.directory table { - border-collapse:collapse; -} - -.directory td { - margin: 0px; - padding: 0px; - vertical-align: top; -} - -.directory td.entry { - white-space: nowrap; - padding-right: 6px; - padding-top: 3px; -} - -.directory td.entry a { - outline:none; -} - -.directory td.entry a img { - border: none; -} - -.directory td.desc { - width: 100%; - padding-left: 6px; - padding-right: 6px; - padding-top: 3px; - border-left: 1px solid rgba(0,0,0,0.05); -} - -.directory tr.even { - padding-left: 6px; - background-color: #F7F8FB; -} - -.directory img { - vertical-align: -30%; -} - -.directory .levels { - white-space: nowrap; - width: 100%; - text-align: right; - font-size: 9pt; -} - -.directory .levels span { - cursor: pointer; - padding-left: 2px; - padding-right: 2px; - color: #3D578C; -} - -.arrow { - color: #9CAFD4; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - cursor: pointer; - font-size: 80%; - display: inline-block; - width: 16px; - height: 22px; -} - -.icon { - font-family: Arial, Helvetica; - font-weight: bold; - font-size: 12px; - height: 14px; - width: 16px; - display: inline-block; - background-color: #728DC1; - color: white; - text-align: center; - border-radius: 4px; - margin-left: 2px; - margin-right: 2px; -} - -.icona { - width: 24px; - height: 22px; - display: inline-block; -} - -.iconfopen { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:url('ftv2folderopen.png'); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -.iconfclosed { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:url('ftv2folderclosed.png'); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -.icondoc { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:url('ftv2doc.png'); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -table.directory { - font: 400 14px Roboto,sans-serif; -} - -/* @end */ - -div.dynheader { - margin-top: 8px; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -address { - font-style: normal; - color: #2A3D61; -} - -table.doxtable { - border-collapse:collapse; - margin-top: 4px; - margin-bottom: 4px; -} - -table.doxtable td, table.doxtable th { - border: 1px solid #2D4068; - padding: 3px 7px 2px; -} - -table.doxtable th { - background-color: #374F7F; - color: #FFFFFF; - font-size: 110%; - padding-bottom: 4px; - padding-top: 5px; -} - -table.fieldtable { - /*width: 100%;*/ - margin-bottom: 10px; - border: 1px solid #A8B8D9; - border-spacing: 0px; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - border-radius: 4px; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; - -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); - box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); -} - -.fieldtable td, .fieldtable th { - padding: 3px 7px 2px; -} - -.fieldtable td.fieldtype, .fieldtable td.fieldname { - white-space: nowrap; - border-right: 1px solid #A8B8D9; - border-bottom: 1px solid #A8B8D9; - vertical-align: top; -} - -.fieldtable td.fieldname { - padding-top: 3px; -} - -.fieldtable td.fielddoc { - border-bottom: 1px solid #A8B8D9; - /*width: 100%;*/ -} - -.fieldtable td.fielddoc p:first-child { - margin-top: 0px; -} - -.fieldtable td.fielddoc p:last-child { - margin-bottom: 2px; -} - -.fieldtable tr:last-child td { - border-bottom: none; -} - -.fieldtable th { - background-image:url('nav_f.png'); - background-repeat:repeat-x; - background-color: #E2E8F2; - font-size: 90%; - color: #253555; - padding-bottom: 4px; - padding-top: 5px; - text-align:left; - -moz-border-radius-topleft: 4px; - -moz-border-radius-topright: 4px; - -webkit-border-top-left-radius: 4px; - -webkit-border-top-right-radius: 4px; - border-top-left-radius: 4px; - border-top-right-radius: 4px; - border-bottom: 1px solid #A8B8D9; -} - - -.tabsearch { - top: 0px; - left: 10px; - height: 36px; - background-image: url('tab_b.png'); - z-index: 101; - overflow: hidden; - font-size: 13px; -} - -.navpath ul -{ - font-size: 11px; - background-image:url('tab_b.png'); - background-repeat:repeat-x; - background-position: 0 -5px; - height:30px; - line-height:30px; - color:#8AA0CC; - border:solid 1px #C2CDE4; - overflow:hidden; - margin:0px; - padding:0px; -} - -.navpath li -{ - list-style-type:none; - float:left; - padding-left:10px; - padding-right:15px; - background-image:url('bc_s.png'); - background-repeat:no-repeat; - background-position:right; - color:#364D7C; -} - -.navpath li.navelem a -{ - height:32px; - display:block; - text-decoration: none; - outline: none; - color: #283A5D; - font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - text-decoration: none; -} - -.navpath li.navelem a:hover -{ - color:#6884BD; -} - -.navpath li.footer -{ - list-style-type:none; - float:right; - padding-left:10px; - padding-right:15px; - background-image:none; - background-repeat:no-repeat; - background-position:right; - color:#364D7C; - font-size: 8pt; -} - - -div.summary -{ - float: right; - font-size: 8pt; - padding-right: 5px; - width: 50%; - text-align: right; -} - -div.summary a -{ - white-space: nowrap; -} - -div.ingroups -{ - font-size: 8pt; - width: 50%; - text-align: left; -} - -div.ingroups a -{ - white-space: nowrap; -} - -div.header -{ - background-image:url('nav_h.png'); - background-repeat:repeat-x; - background-color: #F9FAFC; - margin: 0px; - border-bottom: 1px solid #C4CFE5; -} - -div.headertitle -{ - padding: 5px 5px 5px 10px; -} - -dl -{ - padding: 0 0 0 10px; -} - -/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ -dl.section -{ - margin-left: 0px; - padding-left: 0px; -} - -dl.note -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #D0C000; -} - -dl.warning, dl.attention -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #FF0000; -} - -dl.pre, dl.post, dl.invariant -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #00D000; -} - -dl.deprecated -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #505050; -} - -dl.todo -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #00C0E0; -} - -dl.test -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #3030E0; -} - -dl.bug -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #C08050; -} - -dl.section dd { - margin-bottom: 6px; -} - - -#projectlogo -{ - text-align: center; - vertical-align: bottom; - border-collapse: separate; -} - -#projectlogo img -{ - border: 0px none; -} - -#projectname -{ - font: 300% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 2px 0px; -} - -#projectbrief -{ - font: 120% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 0px; -} - -#projectnumber -{ - font: 50% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 0px; -} - -#titlearea -{ - padding: 0px; - margin: 0px; - width: 100%; - border-bottom: 1px solid #5373B4; -} - -.image -{ - text-align: center; -} - -.dotgraph -{ - text-align: center; -} - -.mscgraph -{ - text-align: center; -} - -.diagraph -{ - text-align: center; -} - -.caption -{ - font-weight: bold; -} - -div.zoom -{ - border: 1px solid #90A5CE; -} - -dl.citelist { - margin-bottom:50px; -} - -dl.citelist dt { - color:#334975; - float:left; - font-weight:bold; - margin-right:10px; - padding:5px; -} - -dl.citelist dd { - margin:2px 0; - padding:5px 0; -} - -div.toc { - padding: 14px 25px; - background-color: #F4F6FA; - border: 1px solid #D8DFEE; - border-radius: 7px 7px 7px 7px; - float: right; - height: auto; - margin: 0 20px 10px 10px; - width: 200px; -} - -div.toc li { - background: url("bdwn.png") no-repeat scroll 0 5px transparent; - font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; - margin-top: 5px; - padding-left: 10px; - padding-top: 2px; -} - -div.toc h3 { - font: bold 12px/1.2 Arial,FreeSans,sans-serif; - color: #4665A2; - border-bottom: 0 none; - margin: 0; -} - -div.toc ul { - list-style: none outside none; - border: medium none; - padding: 0px; -} - -div.toc li.level1 { - margin-left: 0px; -} - -div.toc li.level2 { - margin-left: 15px; -} - -div.toc li.level3 { - margin-left: 30px; -} - -div.toc li.level4 { - margin-left: 45px; -} - -.inherit_header { - font-weight: bold; - color: gray; - cursor: pointer; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.inherit_header td { - padding: 6px 0px 2px 5px; -} - -.inherit { - display: none; -} - -tr.heading h2 { - margin-top: 12px; - margin-bottom: 4px; -} - -/* tooltip related style info */ - -.ttc { - position: absolute; - display: none; -} - -#powerTip { - cursor: default; - white-space: nowrap; - background-color: white; - border: 1px solid gray; - border-radius: 4px 4px 4px 4px; - box-shadow: 1px 1px 7px gray; - display: none; - font-size: smaller; - max-width: 80%; - opacity: 0.9; - padding: 1ex 1em 1em; - position: absolute; - z-index: 2147483647; -} - -#powerTip div.ttdoc { - color: grey; - font-style: italic; -} - -#powerTip div.ttname a { - font-weight: bold; -} - -#powerTip div.ttname { - font-weight: bold; -} - -#powerTip div.ttdeci { - color: #006318; -} - -#powerTip div { - margin: 0px; - padding: 0px; - font: 12px/16px Roboto,sans-serif; -} - -#powerTip:before, #powerTip:after { - content: ""; - position: absolute; - margin: 0px; -} - -#powerTip.n:after, #powerTip.n:before, -#powerTip.s:after, #powerTip.s:before, -#powerTip.w:after, #powerTip.w:before, -#powerTip.e:after, #powerTip.e:before, -#powerTip.ne:after, #powerTip.ne:before, -#powerTip.se:after, #powerTip.se:before, -#powerTip.nw:after, #powerTip.nw:before, -#powerTip.sw:after, #powerTip.sw:before { - border: solid transparent; - content: " "; - height: 0; - width: 0; - position: absolute; -} - -#powerTip.n:after, #powerTip.s:after, -#powerTip.w:after, #powerTip.e:after, -#powerTip.nw:after, #powerTip.ne:after, -#powerTip.sw:after, #powerTip.se:after { - border-color: rgba(255, 255, 255, 0); -} - -#powerTip.n:before, #powerTip.s:before, -#powerTip.w:before, #powerTip.e:before, -#powerTip.nw:before, #powerTip.ne:before, -#powerTip.sw:before, #powerTip.se:before { - border-color: rgba(128, 128, 128, 0); -} - -#powerTip.n:after, #powerTip.n:before, -#powerTip.ne:after, #powerTip.ne:before, -#powerTip.nw:after, #powerTip.nw:before { - top: 100%; -} - -#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { - border-top-color: #ffffff; - border-width: 10px; - margin: 0px -10px; -} -#powerTip.n:before { - border-top-color: #808080; - border-width: 11px; - margin: 0px -11px; -} -#powerTip.n:after, #powerTip.n:before { - left: 50%; -} - -#powerTip.nw:after, #powerTip.nw:before { - right: 14px; -} - -#powerTip.ne:after, #powerTip.ne:before { - left: 14px; -} - -#powerTip.s:after, #powerTip.s:before, -#powerTip.se:after, #powerTip.se:before, -#powerTip.sw:after, #powerTip.sw:before { - bottom: 100%; -} - -#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { - border-bottom-color: #ffffff; - border-width: 10px; - margin: 0px -10px; -} - -#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { - border-bottom-color: #808080; - border-width: 11px; - margin: 0px -11px; -} - -#powerTip.s:after, #powerTip.s:before { - left: 50%; -} - -#powerTip.sw:after, #powerTip.sw:before { - right: 14px; -} - -#powerTip.se:after, #powerTip.se:before { - left: 14px; -} - -#powerTip.e:after, #powerTip.e:before { - left: 100%; -} -#powerTip.e:after { - border-left-color: #ffffff; - border-width: 10px; - top: 50%; - margin-top: -10px; -} -#powerTip.e:before { - border-left-color: #808080; - border-width: 11px; - top: 50%; - margin-top: -11px; -} - -#powerTip.w:after, #powerTip.w:before { - right: 100%; -} -#powerTip.w:after { - border-right-color: #ffffff; - border-width: 10px; - top: 50%; - margin-top: -10px; -} -#powerTip.w:before { - border-right-color: #808080; - border-width: 11px; - top: 50%; - margin-top: -11px; -} - -@media print -{ - #top { display: none; } - #side-nav { display: none; } - #nav-path { display: none; } - body { overflow:visible; } - h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } - .summary { display: none; } - .memitem { page-break-inside: avoid; } - #doc-content - { - margin-left:0 !important; - height:auto !important; - width:auto !important; - overflow:inherit; - display:inline; - } -} - diff --git a/doc/html/doxygen.png b/doc/html/doxygen.png deleted file mode 100644 index 3ff17d8..0000000 Binary files a/doc/html/doxygen.png and /dev/null differ diff --git a/doc/html/dynsections.js b/doc/html/dynsections.js deleted file mode 100644 index 85e1836..0000000 --- a/doc/html/dynsections.js +++ /dev/null @@ -1,97 +0,0 @@ -function toggleVisibility(linkObj) -{ - var base = $(linkObj).attr('id'); - var summary = $('#'+base+'-summary'); - var content = $('#'+base+'-content'); - var trigger = $('#'+base+'-trigger'); - var src=$(trigger).attr('src'); - if (content.is(':visible')===true) { - content.hide(); - summary.show(); - $(linkObj).addClass('closed').removeClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); - } else { - content.show(); - summary.hide(); - $(linkObj).removeClass('closed').addClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); - } - return false; -} - -function updateStripes() -{ - $('table.directory tr'). - removeClass('even').filter(':visible:even').addClass('even'); -} - -function toggleLevel(level) -{ - $('table.directory tr').each(function() { - var l = this.id.split('_').length-1; - var i = $('#img'+this.id.substring(3)); - var a = $('#arr'+this.id.substring(3)); - if (l - - - - - -Boost.Nowide: boost/nowide/filebuf.hpp Source File - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - - -
-
-
-
filebuf.hpp
-
-
-
1 //
-
2 // Copyright (c) 2012 Artyom Beilis (Tonkikh)
-
3 //
-
4 // Distributed under the Boost Software License, Version 1.0. (See
-
5 // accompanying file LICENSE_1_0.txt or copy at
-
6 // http://www.boost.org/LICENSE_1_0.txt)
-
7 //
-
8 #ifndef BOOST_NOWIDE_FILEBUF_HPP
-
9 #define BOOST_NOWIDE_FILEBUF_HPP
-
10 
-
11 #include <iosfwd>
-
12 #include <boost/config.hpp>
-
13 #include <boost/nowide/stackstring.hpp>
-
14 #include <fstream>
-
15 #include <streambuf>
-
16 #include <stdio.h>
-
17 
-
18 #ifdef BOOST_MSVC
-
19 # pragma warning(push)
-
20 # pragma warning(disable : 4996 4244 4800)
-
21 #endif
-
22 
-
23 
-
24 namespace boost {
-
25 namespace nowide {
-
26 #if !defined(BOOST_WINDOWS) && !defined(BOOST_NOWIDE_FSTREAM_TESTS) && !defined(BOOST_NOWIDE_DOXYGEN)
-
27  using std::basic_filebuf;
-
28  using std::filebuf;
-
29 #else // Windows
-
30 
-
37  template<typename CharType,typename Traits = std::char_traits<CharType> >
- -
39 
-
46  template<>
-
47  class basic_filebuf<char> : public std::basic_streambuf<char> {
-
48  public:
- -
53  buffer_size_(4),
-
54  buffer_(0),
-
55  file_(0),
-
56  own_(true),
-
57  mode_(std::ios::in | std::ios::out)
-
58  {
-
59  setg(0,0,0);
-
60  setp(0,0);
-
61  }
-
62 
-
63  virtual ~basic_filebuf()
-
64  {
-
65  if(file_) {
-
66  ::fclose(file_);
-
67  file_ = 0;
-
68  }
-
69  if(own_ && buffer_)
-
70  delete [] buffer_;
-
71  }
-
72 
-
76  basic_filebuf *open(std::string const &s,std::ios_base::openmode mode)
-
77  {
-
78  return open(s.c_str(),mode);
-
79  }
-
83  basic_filebuf *open(char const *s,std::ios_base::openmode mode)
-
84  {
-
85  if(file_) {
-
86  sync();
-
87  ::fclose(file_);
-
88  file_ = 0;
-
89  }
-
90  bool ate = bool(mode & std::ios_base::ate);
-
91  if(ate)
-
92  mode = mode ^ std::ios_base::ate;
-
93  wchar_t const *smode = get_mode(mode);
-
94  if(!smode)
-
95  return 0;
-
96  wstackstring name;
-
97  if(!name.convert(s))
-
98  return 0;
-
99  #ifdef BOOST_NOWIDE_FSTREAM_TESTS
-
100  FILE *f = ::fopen(s,boost::nowide::convert(smode).c_str());
-
101  #else
-
102  FILE *f = ::_wfopen(name.c_str(),smode);
-
103  #endif
-
104  if(!f)
-
105  return 0;
-
106  if(ate && fseek(f,0,SEEK_END)!=0) {
-
107  fclose(f);
-
108  return 0;
-
109  }
-
110  file_ = f;
-
111  return this;
-
112  }
- -
117  {
-
118  bool res = sync() == 0;
-
119  if(file_) {
-
120  if(::fclose(file_)!=0)
-
121  res = false;
-
122  file_ = 0;
-
123  }
-
124  return res ? this : 0;
-
125  }
-
129  bool is_open() const
-
130  {
-
131  return file_ != 0;
-
132  }
-
133 
-
134  private:
-
135  void make_buffer()
-
136  {
-
137  if(buffer_)
-
138  return;
-
139  if(buffer_size_ > 0) {
-
140  buffer_ = new char [buffer_size_];
-
141  own_ = true;
-
142  }
-
143  }
-
144  protected:
-
145 
-
146  virtual std::streambuf *setbuf(char *s,std::streamsize n)
-
147  {
-
148  if(!buffer_ && n>=0) {
-
149  buffer_ = s;
-
150  buffer_size_ = n;
-
151  own_ = false;
-
152  }
-
153  return this;
-
154  }
-
155 
-
156 #ifdef BOOST_NOWIDE_DEBUG_FILEBUF
-
157 
-
158  void print_buf(char *b,char *p,char *e)
-
159  {
-
160  std::cerr << "-- Is Null: " << (b==0) << std::endl;;
-
161  if(b==0)
-
162  return;
-
163  if(e != 0)
-
164  std::cerr << "-- Total: " << e - b <<" offset from start " << p - b << std::endl;
-
165  else
-
166  std::cerr << "-- Total: " << p - b << std::endl;
-
167 
-
168  std::cerr << "-- [";
-
169  for(char *ptr = b;ptr<p;ptr++)
-
170  std::cerr << *ptr;
-
171  if(e!=0) {
-
172  std::cerr << "|";
-
173  for(char *ptr = p;ptr<e;ptr++)
-
174  std::cerr << *ptr;
-
175  }
-
176  std::cerr << "]" << std::endl;
-
177 
-
178  }
-
179 
-
180  void print_state()
-
181  {
-
182  std::cerr << "- Output:" << std::endl;
-
183  print_buf(pbase(),pptr(),0);
-
184  std::cerr << "- Input:" << std::endl;
-
185  print_buf(eback(),gptr(),egptr());
-
186  std::cerr << "- fpos: " << (file_ ? ftell(file_) : -1L) << std::endl;
-
187  }
-
188 
-
189  struct print_guard
-
190  {
-
191  print_guard(basic_filebuf *p,char const *func)
-
192  {
-
193  self = p;
-
194  f=func;
-
195  std::cerr << "In: " << f << std::endl;
-
196  self->print_state();
-
197  }
-
198  ~print_guard()
-
199  {
-
200  std::cerr << "Out: " << f << std::endl;
-
201  self->print_state();
-
202  }
-
203  basic_filebuf *self;
-
204  char const *f;
-
205  };
-
206 #else
-
207 #endif
-
208 
-
209  int overflow(int c)
-
210  {
-
211 #ifdef BOOST_NOWIDE_DEBUG_FILEBUF
-
212  print_guard g(this,__FUNCTION__);
-
213 #endif
-
214  if(!file_)
-
215  return EOF;
-
216 
-
217  if(fixg() < 0)
-
218  return EOF;
-
219 
-
220  size_t n = pptr() - pbase();
-
221  if(n > 0) {
-
222  if(::fwrite(pbase(),1,n,file_) < n)
-
223  return -1;
-
224  fflush(file_);
-
225  }
-
226 
-
227  if(buffer_size_ > 0) {
-
228  make_buffer();
-
229  setp(buffer_,buffer_+buffer_size_);
-
230  if(c!=EOF)
-
231  sputc(c);
-
232  }
-
233  else if(c!=EOF) {
-
234  if(::fputc(c,file_)==EOF)
-
235  return EOF;
-
236  fflush(file_);
-
237  }
-
238  return 0;
-
239  }
-
240 
-
241 
-
242  int sync()
-
243  {
-
244  return overflow(EOF);
-
245  }
-
246 
-
247  int underflow()
-
248  {
-
249 #ifdef BOOST_NOWIDE_DEBUG_FILEBUF
-
250  print_guard g(this,__FUNCTION__);
-
251 #endif
-
252  if(!file_)
-
253  return EOF;
-
254  if(fixp() < 0)
-
255  return EOF;
-
256  if(buffer_size_ == 0) {
-
257  int c = ::fgetc(file_);
-
258  if(c==EOF) {
-
259  return EOF;
-
260  }
-
261  last_char_ = c;
-
262  setg(&last_char_,&last_char_,&last_char_ + 1);
-
263  return c;
-
264  }
-
265  make_buffer();
-
266  size_t n = ::fread(buffer_,1,buffer_size_,file_);
-
267  setg(buffer_,buffer_,buffer_+n);
-
268  if(n == 0)
-
269  return EOF;
-
270  return std::char_traits<char>::to_int_type(*gptr());
-
271  }
-
272 
-
273  int pbackfail(int)
-
274  {
-
275  return pubseekoff(-1,std::ios::cur);
-
276  }
-
277 
-
278  std::streampos seekoff(std::streamoff off,
-
279  std::ios_base::seekdir seekdir,
-
280  std::ios_base::openmode /*m*/)
-
281  {
-
282 #ifdef BOOST_NOWIDE_DEBUG_FILEBUF
-
283  print_guard g(this,__FUNCTION__);
-
284 #endif
-
285  if(!file_)
-
286  return EOF;
-
287  if(fixp() < 0 || fixg() < 0)
-
288  return EOF;
-
289  if(seekdir == std::ios_base::cur) {
-
290  if( ::fseek(file_,off,SEEK_CUR) < 0)
-
291  return EOF;
-
292  }
-
293  else if(seekdir == std::ios_base::beg) {
-
294  if( ::fseek(file_,off,SEEK_SET) < 0)
-
295  return EOF;
-
296  }
-
297  else if(seekdir == std::ios_base::end) {
-
298  if( ::fseek(file_,off,SEEK_END) < 0)
-
299  return EOF;
-
300  }
-
301  else
-
302  return -1;
-
303  return ftell(file_);
-
304  }
-
305  std::streampos seekpos(std::streampos off,std::ios_base::openmode m)
-
306  {
-
307  return seekoff(std::streamoff(off),std::ios_base::beg,m);
-
308  }
-
309  private:
-
310  int fixg()
-
311  {
-
312  if(gptr()!=egptr()) {
-
313  std::streamsize off = gptr() - egptr();
-
314  setg(0,0,0);
-
315  if(fseek(file_,off,SEEK_CUR) != 0)
-
316  return -1;
-
317  }
-
318  setg(0,0,0);
-
319  return 0;
-
320  }
-
321 
-
322  int fixp()
-
323  {
-
324  if(pptr()!=0) {
-
325  int r = sync();
-
326  setp(0,0);
-
327  return r;
-
328  }
-
329  return 0;
-
330  }
-
331 
-
332  void reset(FILE *f = 0)
-
333  {
-
334  sync();
-
335  if(file_) {
-
336  fclose(file_);
-
337  file_ = 0;
-
338  }
-
339  file_ = f;
-
340  }
-
341 
-
342 
-
343  static wchar_t const *get_mode(std::ios_base::openmode mode)
-
344  {
-
345  //
-
346  // done according to n2914 table 106 27.9.1.4
-
347  //
-
348 
-
349  // note can't use switch case as overload operator can't be used
-
350  // in constant expression
-
351  if(mode == (std::ios_base::out))
-
352  return L"w";
-
353  if(mode == (std::ios_base::out | std::ios_base::app))
-
354  return L"a";
-
355  if(mode == (std::ios_base::app))
-
356  return L"a";
-
357  if(mode == (std::ios_base::out | std::ios_base::trunc))
-
358  return L"w";
-
359  if(mode == (std::ios_base::in))
-
360  return L"r";
-
361  if(mode == (std::ios_base::in | std::ios_base::out))
-
362  return L"r+";
-
363  if(mode == (std::ios_base::in | std::ios_base::out | std::ios_base::trunc))
-
364  return L"w+";
-
365  if(mode == (std::ios_base::in | std::ios_base::out | std::ios_base::app))
-
366  return L"a+";
-
367  if(mode == (std::ios_base::in | std::ios_base::app))
-
368  return L"a+";
-
369  if(mode == (std::ios_base::binary | std::ios_base::out))
-
370  return L"wb";
-
371  if(mode == (std::ios_base::binary | std::ios_base::out | std::ios_base::app))
-
372  return L"ab";
-
373  if(mode == (std::ios_base::binary | std::ios_base::app))
-
374  return L"ab";
-
375  if(mode == (std::ios_base::binary | std::ios_base::out | std::ios_base::trunc))
-
376  return L"wb";
-
377  if(mode == (std::ios_base::binary | std::ios_base::in))
-
378  return L"rb";
-
379  if(mode == (std::ios_base::binary | std::ios_base::in | std::ios_base::out))
-
380  return L"r+b";
-
381  if(mode == (std::ios_base::binary | std::ios_base::in | std::ios_base::out | std::ios_base::trunc))
-
382  return L"w+b";
-
383  if(mode == (std::ios_base::binary | std::ios_base::in | std::ios_base::out | std::ios_base::app))
-
384  return L"a+b";
-
385  if(mode == (std::ios_base::binary | std::ios_base::in | std::ios_base::app))
-
386  return L"a+b";
-
387  return 0;
-
388  }
-
389 
-
390  size_t buffer_size_;
-
391  char *buffer_;
-
392  FILE *file_;
-
393  bool own_;
-
394  char last_char_;
-
395  std::ios::openmode mode_;
-
396  };
-
397 
- -
402 
-
403  #endif // windows
-
404 
-
405 } // nowide
-
406 } // namespace boost
-
407 
-
408 #ifdef BOOST_MSVC
-
409 # pragma warning(pop)
-
410 #endif
-
411 
-
412 
-
413 #endif
-
414 
-
415 // vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
-
basic_filebuf * close()
Definition: filebuf.hpp:116
-
FILE * fopen(char const *file_name, char const *mode)
Same as fopen but file_name and mode are UTF-8 strings.
Definition: cstdio.hpp:53
-
basic_filebuf< char > filebuf
Convinience typedef.
Definition: filebuf.hpp:401
-
bool is_open() const
Definition: filebuf.hpp:129
-
basic_filebuf * open(char const *s, std::ios_base::openmode mode)
Definition: filebuf.hpp:83
-
basic_filebuf()
Definition: filebuf.hpp:52
-
This forward declaration defined the basic_filebuf type.
Definition: filebuf.hpp:38
-
This is implementation of std::filebuf.
Definition: filebuf.hpp:47
-
basic_filebuf * open(std::string const &s, std::ios_base::openmode mode)
Definition: filebuf.hpp:76
-
A class that allows to create a temporary wide or narrow UTF strings from wide or narrow UTF source...
Definition: stackstring.hpp:25
-
- - - - diff --git a/doc/html/files.html b/doc/html/files.html deleted file mode 100644 index d93bd00..0000000 --- a/doc/html/files.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - -Boost.Nowide: File List - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - -
-
-
-
File List
-
-
-
Here is a list of all documented files with brief descriptions:
-
[detail level 1234]
- - - - - - - - - - - - - - - - - -
  boost
  nowide
  integration
 filesystem.hpp
 args.hpp
 cenv.hpp
 config.hpp
 convert.hpp
 cstdio.hpp
 cstdlib.hpp
 filebuf.hpp
 fstream.hpp
 iostream.hpp
 stackstring.hpp
 system.hpp
 utf8_codecvt.hpp
 windows.hpp
-
-
- - - - diff --git a/doc/html/filesystem_8hpp_source.html b/doc/html/filesystem_8hpp_source.html deleted file mode 100644 index e7958d9..0000000 --- a/doc/html/filesystem_8hpp_source.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - -Boost.Nowide: boost/nowide/integration/filesystem.hpp Source File - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - - -
-
-
-
filesystem.hpp
-
-
-
1 //
-
2 // Copyright (c) 2012 Artyom Beilis (Tonkikh)
-
3 //
-
4 // Distributed under the Boost Software License, Version 1.0. (See
-
5 // accompanying file LICENSE_1_0.txt or copy at
-
6 // http://www.boost.org/LICENSE_1_0.txt)
-
7 //
-
8 #ifndef BOOST_NOWIDE_INTEGRATION_FILESYSTEM_HPP_INCLUDED
-
9 #define BOOST_NOWIDE_INTEGRATION_FILESYSTEM_HPP_INCLUDED
-
10 
-
11 #include <boost/filesystem/path.hpp>
-
12 #include <boost/nowide/utf8_codecvt.hpp>
-
13 namespace boost {
-
14  namespace nowide {
-
18  inline void nowide_filesystem()
-
19  {
-
20  std::locale tmp = std::locale(std::locale(),new boost::nowide::utf8_codecvt<wchar_t>());
-
21  boost::filesystem::path::imbue(tmp);
-
22  }
-
23  } // nowide
-
24 } // boost
-
25 
-
26 #endif
-
27 // vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
-
Definition: utf8_codecvt.hpp:30
-
void nowide_filesystem()
Definition: filesystem.hpp:18
-
- - - - diff --git a/doc/html/fstream_8hpp_source.html b/doc/html/fstream_8hpp_source.html deleted file mode 100644 index e322c81..0000000 --- a/doc/html/fstream_8hpp_source.html +++ /dev/null @@ -1,326 +0,0 @@ - - - - - - -Boost.Nowide: boost/nowide/fstream.hpp Source File - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - - -
-
-
-
fstream.hpp
-
-
-
1 //
-
2 // Copyright (c) 2012 Artyom Beilis (Tonkikh)
-
3 //
-
4 // Distributed under the Boost Software License, Version 1.0. (See
-
5 // accompanying file LICENSE_1_0.txt or copy at
-
6 // http://www.boost.org/LICENSE_1_0.txt)
-
7 //
-
8 #ifndef BOOST_NOWIDE_FSTREAM_INCLUDED_HPP
-
9 #define BOOST_NOWIDE_FSTREAM_INCLUDED_HPP
-
10 
-
11 #include <iosfwd>
-
12 #include <boost/config.hpp>
-
13 #include <boost/nowide/convert.hpp>
-
14 #include <boost/scoped_ptr.hpp>
-
15 #include <fstream>
-
16 #include <memory>
-
17 #include <boost/nowide/filebuf.hpp>
-
18 
-
19 namespace boost {
-
25 namespace nowide {
-
26 #if !defined(BOOST_WINDOWS) && !defined(BOOST_NOWIDE_FSTREAM_TESTS) && !defined(BOOST_NOWIDE_DOXYGEN)
-
27 
-
28  using std::basic_ifstream;
-
29  using std::basic_ofstream;
-
30  using std::basic_fstream;
-
31  using std::ifstream;
-
32  using std::ofstream;
-
33  using std::fstream;
-
34 
-
35 #else
-
36  template<typename CharType,typename Traits = std::char_traits<CharType> >
-
40  class basic_ifstream : public std::basic_istream<CharType,Traits>
-
41  {
-
42  public:
- -
44  typedef std::basic_istream<CharType,Traits> internal_stream_type;
-
45 
-
46  basic_ifstream() :
-
47  internal_stream_type(0)
-
48  {
-
49  buf_.reset(new internal_buffer_type());
-
50  std::ios::rdbuf(buf_.get());
-
51  }
-
52 
-
53  explicit basic_ifstream(char const *file_name,std::ios_base::openmode mode = std::ios_base::in) :
-
54  internal_stream_type(0)
-
55  {
-
56  buf_.reset(new internal_buffer_type());
-
57  std::ios::rdbuf(buf_.get());
-
58  open(file_name,mode);
-
59  }
-
60 
-
61  explicit basic_ifstream(std::string const &file_name,std::ios_base::openmode mode = std::ios_base::in) :
-
62  internal_stream_type(0)
-
63  {
-
64  buf_.reset(new internal_buffer_type());
-
65  std::ios::rdbuf(buf_.get());
-
66  open(file_name,mode);
-
67  }
-
68 
-
69 
-
70  void open(std::string const &file_name,std::ios_base::openmode mode = std::ios_base::in)
-
71  {
-
72  open(file_name.c_str(),mode);
-
73  }
-
74  void open(char const *file_name,std::ios_base::openmode mode = std::ios_base::in)
-
75  {
-
76  if(!buf_->open(file_name,mode | std::ios_base::in)) {
-
77  this->setstate(std::ios_base::failbit);
-
78  }
-
79  else {
-
80  this->clear();
-
81  }
-
82  }
-
83  bool is_open()
-
84  {
-
85  return buf_->is_open();
-
86  }
-
87  bool is_open() const
-
88  {
-
89  return buf_->is_open();
-
90  }
-
91  void close()
-
92  {
-
93  if(!buf_->close())
-
94  this->setstate(std::ios_base::failbit);
-
95  else
-
96  this->clear();
-
97  }
-
98 
-
99  internal_buffer_type *rdbuf() const
-
100  {
-
101  return buf_.get();
-
102  }
-
103  ~basic_ifstream()
-
104  {
-
105  buf_->close();
-
106  }
-
107 
-
108  private:
-
109  boost::scoped_ptr<internal_buffer_type> buf_;
-
110  };
-
111 
-
115 
-
116  template<typename CharType,typename Traits = std::char_traits<CharType> >
-
117  class basic_ofstream : public std::basic_ostream<CharType,Traits>
-
118  {
-
119  public:
- -
121  typedef std::basic_ostream<CharType,Traits> internal_stream_type;
-
122 
-
123  basic_ofstream() :
-
124  internal_stream_type(0)
-
125  {
-
126  buf_.reset(new internal_buffer_type());
-
127  std::ios::rdbuf(buf_.get());
-
128  }
-
129  explicit basic_ofstream(char const *file_name,std::ios_base::openmode mode = std::ios_base::out) :
-
130  internal_stream_type(0)
-
131  {
-
132  buf_.reset(new internal_buffer_type());
-
133  std::ios::rdbuf(buf_.get());
-
134  open(file_name,mode);
-
135  }
-
136  explicit basic_ofstream(std::string const &file_name,std::ios_base::openmode mode = std::ios_base::out) :
-
137  internal_stream_type(0)
-
138  {
-
139  buf_.reset(new internal_buffer_type());
-
140  std::ios::rdbuf(buf_.get());
-
141  open(file_name,mode);
-
142  }
-
143  void open(std::string const &file_name,std::ios_base::openmode mode = std::ios_base::out)
-
144  {
-
145  open(file_name.c_str(),mode);
-
146  }
-
147  void open(char const *file_name,std::ios_base::openmode mode = std::ios_base::out)
-
148  {
-
149  if(!buf_->open(file_name,mode | std::ios_base::out)) {
-
150  this->setstate(std::ios_base::failbit);
-
151  }
-
152  else {
-
153  this->clear();
-
154  }
-
155  }
-
156  bool is_open()
-
157  {
-
158  return buf_->is_open();
-
159  }
-
160  bool is_open() const
-
161  {
-
162  return buf_->is_open();
-
163  }
-
164  void close()
-
165  {
-
166  if(!buf_->close())
-
167  this->setstate(std::ios_base::failbit);
-
168  else
-
169  this->clear();
-
170  }
-
171 
-
172  internal_buffer_type *rdbuf() const
-
173  {
-
174  return buf_.get();
-
175  }
-
176  ~basic_ofstream()
-
177  {
-
178  buf_->close();
-
179  }
-
180 
-
181  private:
-
182  boost::scoped_ptr<internal_buffer_type> buf_;
-
183  };
-
184 
-
188 
-
189  template<typename CharType,typename Traits = std::char_traits<CharType> >
-
190  class basic_fstream : public std::basic_iostream<CharType,Traits>
-
191  {
-
192  public:
- -
194  typedef std::basic_iostream<CharType,Traits> internal_stream_type;
-
195 
-
196  basic_fstream() :
-
197  internal_stream_type(0)
-
198  {
-
199  buf_.reset(new internal_buffer_type());
-
200  std::ios::rdbuf(buf_.get());
-
201  }
-
202  explicit basic_fstream(char const *file_name,std::ios_base::openmode mode = std::ios_base::out | std::ios_base::in) :
-
203  internal_stream_type(0)
-
204  {
-
205  buf_.reset(new internal_buffer_type());
-
206  std::ios::rdbuf(buf_.get());
-
207  open(file_name,mode);
-
208  }
-
209  explicit basic_fstream(std::string const &file_name,std::ios_base::openmode mode = std::ios_base::out | std::ios_base::in) :
-
210  internal_stream_type(0)
-
211  {
-
212  buf_.reset(new internal_buffer_type());
-
213  std::ios::rdbuf(buf_.get());
-
214  open(file_name,mode);
-
215  }
-
216  void open(std::string const &file_name,std::ios_base::openmode mode = std::ios_base::out | std::ios_base::out)
-
217  {
-
218  open(file_name.c_str(),mode);
-
219  }
-
220  void open(char const *file_name,std::ios_base::openmode mode = std::ios_base::out | std::ios_base::out)
-
221  {
-
222  if(!buf_->open(file_name,mode)) {
-
223  this->setstate(std::ios_base::failbit);
-
224  }
-
225  else {
-
226  this->clear();
-
227  }
-
228  }
-
229  bool is_open()
-
230  {
-
231  return buf_->is_open();
-
232  }
-
233  bool is_open() const
-
234  {
-
235  return buf_->is_open();
-
236  }
-
237  void close()
-
238  {
-
239  if(!buf_->close())
-
240  this->setstate(std::ios_base::failbit);
-
241  else
-
242  this->clear();
-
243  }
-
244 
-
245  internal_buffer_type *rdbuf() const
-
246  {
-
247  return buf_.get();
-
248  }
-
249  ~basic_fstream()
-
250  {
-
251  buf_->close();
-
252  }
-
253 
-
254  private:
-
255  boost::scoped_ptr<internal_buffer_type> buf_;
-
256  };
-
257 
-
258 
- - - - -
275 
-
276 #endif
-
277 } // nowide
-
278 } // namespace boost
-
279 
-
280 
-
281 
-
282 #endif
-
283 // vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
-
basic_ifstream< char > ifstream
Definition: fstream.hpp:266
-
basic_filebuf< char > filebuf
Convinience typedef.
Definition: filebuf.hpp:401
-
Same as std::basic_ifstream but accepts UTF-8 strings under Windows.
Definition: fstream.hpp:40
-
basic_ofstream< char > ofstream
Definition: fstream.hpp:270
-
This forward declaration defined the basic_filebuf type.
Definition: filebuf.hpp:38
-
Same as std::basic_fstream but accepts UTF-8 strings under Windows.
Definition: fstream.hpp:190
-
This is implementation of std::filebuf.
Definition: filebuf.hpp:47
-
Same as std::basic_ofstream but accepts UTF-8 strings under Windows.
Definition: fstream.hpp:117
-
basic_fstream< char > fstream
Definition: fstream.hpp:274
-
- - - - diff --git a/doc/html/ftv2blank.png b/doc/html/ftv2blank.png deleted file mode 100644 index 63c605b..0000000 Binary files a/doc/html/ftv2blank.png and /dev/null differ diff --git a/doc/html/ftv2doc.png b/doc/html/ftv2doc.png deleted file mode 100644 index 17edabf..0000000 Binary files a/doc/html/ftv2doc.png and /dev/null differ diff --git a/doc/html/ftv2folderclosed.png b/doc/html/ftv2folderclosed.png deleted file mode 100644 index bb8ab35..0000000 Binary files a/doc/html/ftv2folderclosed.png and /dev/null differ diff --git a/doc/html/ftv2folderopen.png b/doc/html/ftv2folderopen.png deleted file mode 100644 index d6c7f67..0000000 Binary files a/doc/html/ftv2folderopen.png and /dev/null differ diff --git a/doc/html/ftv2lastnode.png b/doc/html/ftv2lastnode.png deleted file mode 100644 index 63c605b..0000000 Binary files a/doc/html/ftv2lastnode.png and /dev/null differ diff --git a/doc/html/ftv2link.png b/doc/html/ftv2link.png deleted file mode 100644 index 17edabf..0000000 Binary files a/doc/html/ftv2link.png and /dev/null differ diff --git a/doc/html/ftv2mlastnode.png b/doc/html/ftv2mlastnode.png deleted file mode 100644 index 0b63f6d..0000000 Binary files a/doc/html/ftv2mlastnode.png and /dev/null differ diff --git a/doc/html/ftv2mnode.png b/doc/html/ftv2mnode.png deleted file mode 100644 index 0b63f6d..0000000 Binary files a/doc/html/ftv2mnode.png and /dev/null differ diff --git a/doc/html/ftv2node.png b/doc/html/ftv2node.png deleted file mode 100644 index 63c605b..0000000 Binary files a/doc/html/ftv2node.png and /dev/null differ diff --git a/doc/html/ftv2plastnode.png b/doc/html/ftv2plastnode.png deleted file mode 100644 index c6ee22f..0000000 Binary files a/doc/html/ftv2plastnode.png and /dev/null differ diff --git a/doc/html/ftv2pnode.png b/doc/html/ftv2pnode.png deleted file mode 100644 index c6ee22f..0000000 Binary files a/doc/html/ftv2pnode.png and /dev/null differ diff --git a/doc/html/ftv2splitbar.png b/doc/html/ftv2splitbar.png deleted file mode 100644 index fe895f2..0000000 Binary files a/doc/html/ftv2splitbar.png and /dev/null differ diff --git a/doc/html/ftv2vertline.png b/doc/html/ftv2vertline.png deleted file mode 100644 index 63c605b..0000000 Binary files a/doc/html/ftv2vertline.png and /dev/null differ diff --git a/doc/html/functions.html b/doc/html/functions.html deleted file mode 100644 index fdb11cf..0000000 --- a/doc/html/functions.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - -Boost.Nowide: Class Members - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - - -
-
-
Here is a list of all documented class members with links to the class documentation for each member:
-
- - - - diff --git a/doc/html/functions_func.html b/doc/html/functions_func.html deleted file mode 100644 index 3fd6c2a..0000000 --- a/doc/html/functions_func.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - -Boost.Nowide: Class Members - Functions - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - - -
-
-
- - - - diff --git a/doc/html/hierarchy.html b/doc/html/hierarchy.html deleted file mode 100644 index 2cfb77e..0000000 --- a/doc/html/hierarchy.html +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - -Boost.Nowide: Class Hierarchy - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - -
-
-
-
Class Hierarchy
-
-
-
This inheritance list is sorted roughly, but not completely, alphabetically:
-
[detail level 12]
- - - - - - - - - - - - - - - - -
 Cboost::nowide::argsArgs is a class that fixes standard main() function arguments and changes them to UTF-8 under Microsoft Windows
 Cboost::nowide::basic_filebuf< CharType, Traits >This forward declaration defined the basic_filebuf type
 Cbasic_iostream
 Cboost::nowide::basic_fstream< CharType, Traits >Same as std::basic_fstream<char> but accepts UTF-8 strings under Windows
 Cbasic_istream
 Cboost::nowide::basic_ifstream< CharType, Traits >Same as std::basic_ifstream<char> but accepts UTF-8 strings under Windows
 Cbasic_ostream
 Cboost::nowide::basic_ofstream< CharType, Traits >Same as std::basic_ofstream<char> but accepts UTF-8 strings under Windows
 Cboost::nowide::basic_stackstring< CharOut, CharIn, BufferSize >A class that allows to create a temporary wide or narrow UTF strings from wide or narrow UTF source
 Cboost::nowide::basic_stackstring< char, wchar_t, 256 >
 Cbasic_streambuf
 Cboost::nowide::basic_filebuf< char >This is implementation of std::filebuf
 Ccodecvt
 Cboost::nowide::utf8_codecvt< CharType, 2 >
 Cboost::nowide::utf8_codecvt< CharType, 4 >
 Cboost::nowide::utf8_codecvt< CharType, CharSize >
-
-
- - - - diff --git a/doc/html/index.html b/doc/html/index.html deleted file mode 100644 index 15d1db6..0000000 --- a/doc/html/index.html +++ /dev/null @@ -1,309 +0,0 @@ - - - - - - -Boost.Nowide: Boost.Nowide - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - -
-
-
-
Boost.Nowide
-
-
-

Table of Contents:

- -

-What is Boost.Nowide

-

Boost.Nowide is a library implemented by Artyom Beilis that makes cross platform Unicode aware programming easier.

-

The library provides an implementation of standard C and C++ library functions, such that their inputs are UTF-8 aware on Windows without requiring to use Wide API.

-

-Rationale

-

-The Problem

-

Consider a simple application that splits a big file into chunks, such that they can be sent by e-mail. It requires doing a few very simple tasks:

-
    -
  • Access command line arguments: int main(int argc,char **argv)
  • -
  • Open an input file, open several output files: std::fstream::open(char const *,std::ios::openmode m)
  • -
  • Remove the files in case of fault: std::remove(char const *file)
  • -
  • Print a progress report onto the console: std::cout << file_name
  • -
-

Unfortunately it is impossible to implement this simple task in plain C++ if the file names contain non-ASCII characters.

-

The simple program that uses the API would work on the systems that use UTF-8 internally – the vast majority of Unix-Line operating systems: Linux, Mac OS X, Solaris, BSD. But it would fail on files like War and Peace - Война и мир - מלחמה ושלום.zip under Microsoft Windows because the native Windows Unicode aware API is Wide-API – UTF-16.

-

This incredibly trivial task is very hard to implement in a cross platform manner.

-

-The Solution

-

Boost.Nowide provides a set of standard library functions that are UTF-8 aware and makes Unicode aware programming easier.

-

The library provides:

-
    -
  • Easy to use functions for converting UTF-8 to/from UTF-16
  • -
  • A class to make the argc, argc and env parameters of main use UTF-8
  • -
  • UTF-8 aware functions
      -
    • stdio.h functions:
        -
      • fopen
      • -
      • freopen
      • -
      • remove
      • -
      • rename
      • -
      -
    • -
    • stdlib.h functions:
        -
      • system
      • -
      • getenv
      • -
      • setenv
      • -
      • unsetenv
      • -
      • putenv
      • -
      -
    • -
    • fstream
        -
      • filebuf
      • -
      • fstream/ofstream/ifstream
      • -
      -
    • -
    • iostream
        -
      • cout
      • -
      • cerr
      • -
      • clog
      • -
      • cin
      • -
      -
    • -
    -
  • -
-

-Why Not Narrow and Wide?

-

Why not provide both Wide and Narrow implementations so the developer can choose to use Wide characters on Unix-like platforms?

-

Several reasons:

-
    -
  • wchar_t is not really portable, it can be 2 bytes, 4 bytes or even 1 byte making Unicode aware programming harder
  • -
  • The C and C++ standard libraries use narrow strings for OS interactions. This library follows the same general rule. There is no such thing as fopen(wchar_t const *,wchar_t const *) in the standard library, so it is better to stick to the standards rather than re-implement Wide API in "Microsoft Windows Style"
  • -
-

-Further Reading

- -

-Using The Library

-

-Standard Features

-

The library is mostly header only, only console I/O requires separate compilation under Windows.

-

As a developer you are expected to use boost::nowide functions instead of the functions available in the std namespace.

-

For example, here is a Unicode unaware implementation of a line counter:

#include <fstream>
-
#include <iostream>
-
-
int main(int argc,char **argv)
-
{
-
if(argc!=2) {
-
std::cerr << "Usage: file_name" << std::endl;
-
return 1;
-
}
-
-
std::ifstream f(argv[1]);
-
if(!f) {
-
std::cerr << "Can't open " << argv[1] << std::endl;
-
return 1;
-
}
-
int total_lines = 0;
-
while(f) {
-
if(f.get() == '\n')
-
total_lines++;
-
}
-
f.close();
-
std::cout << "File " << argv[1] << " has " << total_lines << " lines" << std::endl;
-
return 0;
-
}
-

To make this program handle Unicode properly, we do the following changes:

-
#include <boost/nowide/args.hpp>
-
#include <boost/nowide/fstream.hpp>
-
#include <boost/nowide/iostream.hpp>
-
-
int main(int argc,char **argv)
-
{
-
boost::nowide::args a(argc,argv); // Fix arguments - make them UTF-8
-
if(argc!=2) {
-
boost::nowide::cerr << "Usage: file_name" << std::endl; // Unicode aware console
-
return 1;
-
}
-
-
boost::nowide::ifstream f(argv[1]); // argv[1] - is UTF-8
-
if(!f) {
-
// the console can display UTF-8
-
boost::nowide::cerr << "Can't open " << argv[1] << std::endl;
-
return 1;
-
}
-
int total_lines = 0;
-
while(f) {
-
if(f.get() == '\n')
-
total_lines++;
-
}
-
f.close();
-
// the console can display UTF-8
-
boost::nowide::cout << "File " << argv[1] << " has " << total_lines << " lines" << std::endl;
-
return 0;
-
}
-

This very simple and straightforward approach helps writing Unicode aware programs.

-

-Custom API

-

Of course, this simple set of functions does not cover all needs. If you need to access Wide API from a Windows application that uses UTF-8 internally you can use functions like boost::nowide::widen and boost::nowide::narrow.

-

For example:

CopyFileW( boost::nowide::widen(existing_file).c_str(),
-
boost::nowide::widen(new_file).c_str(),
-
TRUE);
-

The conversion is done at the last stage, and you continue using UTF-8 strings everywhere else. You only switch to the Wide API at glue points.

-

boost::nowide::widen returns std::string. Sometimes it is useful to prevent allocation and use on-stack buffers instead. Boost.Nowide provides the boost::nowide::basic_stackstring class for this purpose.

-

The example above could be rewritten as:

-
-
if(!wexisting_file.convert(existing_file) || !wnew_file.convert(new_file)) {
-
// invalid UTF-8
-
return -1;
-
}
-
-
CopyFileW(wexisting_file.c_str(),wnew_file.c_str(),TRUE);
-
Note
There are a few convenience typedefs: stackstring and wstackstring using 256-character buffers, and short_stackstring and wshort_stackstring using 16-character buffers. If the string is longer, they fall back to memory allocation.
-

-The windows.h header

-

The library does not include the windows.h in order to prevent namespace pollution with numerous defines and types. Instead, the library defines the prototypes of the Win32 API functions.

-

However, you may request to use the windows.h header by defining BOOST_USE_WINDOWS_H before including any of the Boost.Nowide headers

-

-Integration with Boost.Filesystem

-

Boost.Filesystem supports selection of narrow encoding. Unfortunatelly the default narrow encoding on Windows isn't UTF-8, you can enable UTF-8 as default encoding on Boost.Filesystem by calling boost::nowide::nowide_filesystem() in the beginning of your program

-

-Technical Details

-

-Windows vs POSIX

-

For Microsoft Windows, the library provides UTF-8 aware variants of some std:: functions in the boost::nowide namespace. For example, std::fopen becomes boost::nowide::fopen.

-

Under POSIX platforms, the functions in boost::nowide are aliases of their standard library counterparts:

-
namespace boost {
-
namespace nowide {
-
#ifdef BOOST_WINDOWS
-
inline FILE *fopen(char const *name,char const *mode)
-
{
-
...
-
}
-
#else
-
using std::fopen
-
#endif
-
} // nowide
-
} // boost
-

-Console I/O

-

Console I/O is implemented as a wrapper around ReadConsoleW/WriteConsoleW (used when the stream goes to the "real" console) and ReadFile/WriteFile (used when the stream was piped/redirected).

-

This approach eliminates a need of manual code page handling. If TrueType fonts are used the Unicode aware input and output works as intended.

-

-Q & A

-

Q: Why doesn't the library convert the string to/from the locale's encoding (instead of UTF-8) on POSIX systems?

-

A: It is inherently incorrect to convert strings to/from locale encodings on POSIX platforms.

-

You can create a file named "\xFF\xFF.txt" (invalid UTF-8), remove it, pass its name as a parameter to a program and it would work whether the current locale is UTF-8 or not. Also, changing the locale from let's say en_US.UTF-8 to en_US.ISO-8859-1 would not magically change all files in the OS or the strings a user may pass to the program (which is different on Windows)

-

POSIX OSs treat strings as NULL terminated cookies.

-

So altering their content according to the locale would actually lead to incorrect behavior.

-

For example, this is a naive implementation of a standard program "rm"

-
#include <cstdio>
-
-
int main(int argc,char **argv)
-
{
-
for(int i=1;i<argc;i++)
-
std::remove(argv[i]);
-
return 0;
-
}
-

It would work with ANY locale and changing the strings would lead to incorrect behavior.

-

The meaning of a locale under POSIX and Windows platforms is different and has very different effects.

-

-Standalone Version

-

It is possible to use Nowide library without having the huge Boost project as a dependency. There is a standalone version that has all the functionality in the nowide namespace instead of boost::nowide. The example above would look like

-
#include <nowide/args.hpp>
-
#include <nowide/fstream.hpp>
-
#include <nowide/iostream.hpp>
-
-
int main(int argc,char **argv)
-
{
-
nowide::args a(argc,argv); // Fix arguments - make them UTF-8
-
if(argc!=2) {
-
nowide::cerr << "Usage: file_name" << std::endl; // Unicode aware console
-
return 1;
-
}
-
-
nowide::ifstream f(argv[1]); // argv[1] - is UTF-8
-
if(!f) {
-
// the console can display UTF-8
-
nowide::cerr << "Can't open a file " << argv[1] << std::endl;
-
return 1;
-
}
-
int total_lines = 0;
-
while(f) {
-
if(f.get() == '\n')
-
total_lines++;
-
}
-
f.close();
-
// the console can display UTF-8
-
nowide::cout << "File " << argv[1] << " has " << total_lines << " lines" << std::endl;
-
return 0;
-
}
-

-Sources and Downloads

-

The upstream sources can be found at GitHub: https://github.com/boostorg/nowide

-

You can download the latest sources there:

- -
- - - - diff --git a/doc/html/iostream_8hpp_source.html b/doc/html/iostream_8hpp_source.html deleted file mode 100644 index 3caf61e..0000000 --- a/doc/html/iostream_8hpp_source.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - - - -Boost.Nowide: boost/nowide/iostream.hpp Source File - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - - -
-
-
-
iostream.hpp
-
-
-
1 //
-
2 // Copyright (c) 2012 Artyom Beilis (Tonkikh)
-
3 //
-
4 // Distributed under the Boost Software License, Version 1.0. (See
-
5 // accompanying file LICENSE_1_0.txt or copy at
-
6 // http://www.boost.org/LICENSE_1_0.txt)
-
7 //
-
8 #ifndef BOOST_NOWIDE_IOSTREAM_HPP_INCLUDED
-
9 #define BOOST_NOWIDE_IOSTREAM_HPP_INCLUDED
-
10 
-
11 #include <boost/nowide/config.hpp>
-
12 #include <boost/scoped_ptr.hpp>
-
13 #include <iostream>
-
14 #include <ostream>
-
15 #include <istream>
-
16 
-
17 #ifdef BOOST_MSVC
-
18 # pragma warning(push)
-
19 # pragma warning(disable : 4251)
-
20 #endif
-
21 
-
22 
-
23 namespace boost {
-
24 namespace nowide {
-
25  #if !defined(BOOST_WINDOWS) && !defined(BOOST_NOWIDE_DOXYGEN)
-
26  using std::cout;
-
27  using std::cerr;
-
28  using std::cin;
-
29  using std::clog;
-
30  #else
-
31 
-
33  namespace details {
-
34  class console_output_buffer;
-
35  class console_input_buffer;
-
36 
-
37  class BOOST_NOWIDE_DECL winconsole_ostream : public std::ostream {
-
38  winconsole_ostream(winconsole_ostream const &);
-
39  void operator=(winconsole_ostream const &);
-
40  public:
-
41  winconsole_ostream(int fd);
-
42  ~winconsole_ostream();
-
43  private:
-
44  boost::scoped_ptr<console_output_buffer> d;
-
45  };
-
46 
-
47  class BOOST_NOWIDE_DECL winconsole_istream : public std::istream {
-
48  winconsole_istream(winconsole_istream const &);
-
49  void operator=(winconsole_istream const &);
-
50  public:
-
51 
-
52  winconsole_istream();
-
53  ~winconsole_istream();
-
54  private:
-
55  struct data;
-
56  boost::scoped_ptr<console_input_buffer> d;
-
57  };
-
58  } // details
-
59 
-
61 
-
67  extern BOOST_NOWIDE_DECL details::winconsole_istream cin;
-
73  extern BOOST_NOWIDE_DECL details::winconsole_ostream cout;
-
79  extern BOOST_NOWIDE_DECL details::winconsole_ostream cerr;
-
85  extern BOOST_NOWIDE_DECL details::winconsole_ostream clog;
-
86 
-
87  #endif
-
88 
-
89 } // nowide
-
90 } // namespace boost
-
91 
-
92 #ifdef BOOST_MSVC
-
93 # pragma warning(pop)
-
94 #endif
-
95 
-
96 
-
97 #endif
-
98 // vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
-
details::winconsole_ostream cout
Same as std::cout, but uses UTF-8.
-
details::winconsole_ostream clog
Same as std::clog, but uses UTF-8.
-
details::winconsole_istream cin
Same as std::cin, but uses UTF-8.
-
details::winconsole_ostream cerr
Same as std::cerr, but uses UTF-8.
-
- - - - diff --git a/doc/html/jquery.js b/doc/html/jquery.js deleted file mode 100644 index c197801..0000000 --- a/doc/html/jquery.js +++ /dev/null @@ -1,31 +0,0 @@ -/*! - * jQuery JavaScript Library v1.7.1 - * http://jquery.com/ - * - * Copyright 2011, John Resig - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * Copyright 2011, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * - * Date: Mon Nov 21 21:11:03 2011 -0500 - */ -(function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b40){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b40&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b21?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv
a";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="
";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="
t
";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="
";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType; -if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bCbA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}}); -/*! - * Sizzle CSS Selector Engine - * Copyright 2011, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * More information: http://sizzlejs.com/ - */ -(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1 -},lt:function(bS,bR,e){return bRe[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="

";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="
";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT0){for(bB=bA;bB=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},ac=a(av); -ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div
","
"]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1>");try{for(var bw=0,bv=this.length;bw1&&bw0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]===""&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length; -if(bA>0){if(bv!=="border"){for(;bx)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("
").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"":"")+"");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b -})}})(window); diff --git a/doc/html/namespaceboost_1_1nowide.html b/doc/html/namespaceboost_1_1nowide.html deleted file mode 100644 index ab75517..0000000 --- a/doc/html/namespaceboost_1_1nowide.html +++ /dev/null @@ -1,958 +0,0 @@ - - - - - - -Boost.Nowide: boost::nowide Namespace Reference - - - - - - -
-
-
- - - - - -
-
Boost.Nowide -
-
- - - - - - - -
- -
-
boost::nowide Namespace Reference
-
-
- -

This namespace includes implementation of the standard library functios such that they accept UTF-8 strings on Windows. On other platforms it is just an alias of std namespace (i.e. not on Windows) -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Classes

class  args
 args is a class that fixes standard main() function arguments and changes them to UTF-8 under Microsoft Windows. More...
 
class  basic_filebuf
 This forward declaration defined the basic_filebuf type. More...
 
class  basic_filebuf< char >
 This is implementation of std::filebuf. More...
 
class  basic_fstream
 Same as std::basic_fstream<char> but accepts UTF-8 strings under Windows. More...
 
class  basic_ifstream
 Same as std::basic_ifstream<char> but accepts UTF-8 strings under Windows. More...
 
class  basic_ofstream
 Same as std::basic_ofstream<char> but accepts UTF-8 strings under Windows. More...
 
class  basic_stackstring
 A class that allows to create a temporary wide or narrow UTF strings from wide or narrow UTF source. More...
 
class  utf8_codecvt
 
class  utf8_codecvt< CharType, 2 >
 
class  utf8_codecvt< CharType, 4 >
 
- - - - - - - - - - - - - - - - - - -

-Typedefs

typedef basic_filebuf< char > filebuf
 Convinience typedef. More...
 
typedef basic_ifstream< char > ifstream
 
typedef basic_ofstream< char > ofstream
 
typedef basic_fstream< char > fstream
 
typedef basic_stackstring
-< wchar_t, char, 256 > 
wstackstring
 
typedef basic_stackstring
-< char, wchar_t, 256 > 
stackstring
 
typedef basic_stackstring
-< wchar_t, char, 16 > 
wshort_stackstring
 
typedef basic_stackstring
-< char, wchar_t, 16 > 
short_stackstring
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

char * getenv (char const *key)
 UTF-8 aware getenv. Returns 0 if the variable is not set. More...
 
int setenv (char const *key, char const *value, int override)
 UTF-8 aware setenv, key - the variable name, value is a new UTF-8 value,. More...
 
-int unsetenv (char const *key)
 Remove enviroment variable key.
 
-int putenv (char *string)
 UTF-8 aware putenv implementation, expects string in format KEY=VALUE.
 
template<typename CharOut , typename CharIn >
CharOut * basic_convert (CharOut *buffer, size_t buffer_size, CharIn const *source_begin, CharIn const *source_end)
 Template function that converts a buffer of UTF sequences in range [source_begin,source_end) to the output buffer of size buffer_size. More...
 
char * narrow (char *output, size_t output_size, wchar_t const *source)
 
char * narrow (char *output, size_t output_size, wchar_t const *begin, wchar_t const *end)
 
wchar_t * widen (wchar_t *output, size_t output_size, char const *source)
 
wchar_t * widen (wchar_t *output, size_t output_size, char const *begin, char const *end)
 
std::string narrow (wchar_t const *s)
 
std::wstring widen (char const *s)
 
std::string narrow (std::wstring const &s)
 
std::wstring widen (std::string const &s)
 
FILE * freopen (char const *file_name, char const *mode, FILE *stream)
 Same as freopen but file_name and mode are UTF-8 strings. More...
 
FILE * fopen (char const *file_name, char const *mode)
 Same as fopen but file_name and mode are UTF-8 strings. More...
 
int rename (char const *old_name, char const *new_name)
 Same as rename but old_name and new_name are UTF-8 strings. More...
 
int remove (char const *name)
 Same as rename but name is UTF-8 string. More...
 
int system (char const *cmd)
 
BOOST_STATIC_ASSERT (sizeof(std::mbstate_t)>=2)
 
void nowide_filesystem ()
 
- - - - - - - - - - - - - -

-Variables

details::winconsole_istream cin
 Same as std::cin, but uses UTF-8. More...
 
details::winconsole_ostream cout
 Same as std::cout, but uses UTF-8. More...
 
details::winconsole_ostream cerr
 Same as std::cerr, but uses UTF-8. More...
 
details::winconsole_ostream clog
 Same as std::clog, but uses UTF-8. More...
 
-

Detailed Description

-

This namespace includes implementation of the standard library functios such that they accept UTF-8 strings on Windows. On other platforms it is just an alias of std namespace (i.e. not on Windows)

-

Typedef Documentation

- -
-
- - - - -
typedef basic_filebuf< char > boost::nowide::filebuf
-
- -

Convinience typedef.

-

Same as std::filebuf but accepts UTF-8 strings under Windows.

- -
-
- -
-
- - - - -
typedef basic_fstream<char> boost::nowide::fstream
-
-

Same as std::fstream but accepts UTF-8 strings under Windows

- -
-
- -
-
- - - - -
typedef basic_ifstream<char> boost::nowide::ifstream
-
-

Same as std::ifstream but accepts UTF-8 strings under Windows

- -
-
- -
-
- - - - -
typedef basic_ofstream<char> boost::nowide::ofstream
-
-

Same as std::ofstream but accepts UTF-8 strings under Windows

- -
-
- -
-
- - - - -
typedef basic_stackstring<char,wchar_t,16> boost::nowide::short_stackstring
-
-

Convinience typedef

- -
-
- -
-
- - - - -
typedef basic_stackstring<char,wchar_t,256> boost::nowide::stackstring
-
-

Convinience typedef

- -
-
- -
-
- - - - -
typedef basic_stackstring<wchar_t,char,16> boost::nowide::wshort_stackstring
-
-

Convinience typedef

- -
-
- -
-
- - - - -
typedef basic_stackstring<wchar_t,char,256> boost::nowide::wstackstring
-
-

Convinience typedef

- -
-
-

Function Documentation

- -
-
-
-template<typename CharOut , typename CharIn >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CharOut* boost::nowide::basic_convert (CharOut * buffer,
size_t buffer_size,
CharIn const * source_begin,
CharIn const * source_end 
)
-
- -

Template function that converts a buffer of UTF sequences in range [source_begin,source_end) to the output buffer of size buffer_size.

-

In case of success a NULL terminated string is returned (buffer), otherwise 0 is returned.

-

If there is not enough room in the buffer or the source sequence contains invalid UTF, 0 is returned, and the contents of the buffer are undefined.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
FILE* boost::nowide::fopen (char const * file_name,
char const * mode 
)
-
-inline
-
- -

Same as fopen but file_name and mode are UTF-8 strings.

-

If invalid UTF-8 given, NULL is returned and errno is set to EINVAL

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
FILE* boost::nowide::freopen (char const * file_name,
char const * mode,
FILE * stream 
)
-
-inline
-
- -

Same as freopen but file_name and mode are UTF-8 strings.

-

If invalid UTF-8 given, NULL is returned and errno is set to EINVAL

- -
-
- -
-
- - - - - -
- - - - - - - - -
char* boost::nowide::getenv (char const * key)
-
-inline
-
- -

UTF-8 aware getenv. Returns 0 if the variable is not set.

-

This function is not thread safe or reenterable as defined by the standard library

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
char* boost::nowide::narrow (char * output,
size_t output_size,
wchar_t const * source 
)
-
-inline
-
-

Convert NULL terminated UTF source string to NULL terminated output string of size at most output_size (including NULL)

-

In case of success output is returned, if the input sequence is illegal, or there is not enough room NULL is returned

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
char* boost::nowide::narrow (char * output,
size_t output_size,
wchar_t const * begin,
wchar_t const * end 
)
-
-inline
-
-

Convert UTF text in range [begin,end) to NULL terminated output string of size at most output_size (including NULL)

-

In case of success output is returned, if the input sequence is illegal, or there is not enough room NULL is returned

- -
-
- -
-
- - - - - -
- - - - - - - - -
std::string boost::nowide::narrow (wchar_t const * s)
-
-inline
-
-

Convert between Wide - UTF-16/32 string and UTF-8 string.

-

boost::locale::conv::conversion_error is thrown in a case of a error

- -
-
- -
-
- - - - - -
- - - - - - - - -
std::string boost::nowide::narrow (std::wstring const & s)
-
-inline
-
-

Convert between Wide - UTF-16/32 string and UTF-8 string

-

boost::locale::conv::conversion_error is thrown in a case of a error

- -
-
- -
-
- - - - - -
- - - - - - - -
void boost::nowide::nowide_filesystem ()
-
-inline
-
-

Instal utf8_codecvt facet into boost::filesystem::path such all char strings are interpreted as utf-8 strings

- -
-
- -
-
- - - - - -
- - - - - - - - -
int boost::nowide::remove (char const * name)
-
-inline
-
- -

Same as rename but name is UTF-8 string.

-

If invalid UTF-8 given, -1 is returned and errno is set to EINVAL

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int boost::nowide::rename (char const * old_name,
char const * new_name 
)
-
-inline
-
- -

Same as rename but old_name and new_name are UTF-8 strings.

-

If invalid UTF-8 given, -1 is returned and errno is set to EINVAL

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
int boost::nowide::setenv (char const * key,
char const * value,
int override 
)
-
-inline
-
- -

UTF-8 aware setenv, key - the variable name, value is a new UTF-8 value,.

-

if override is not 0, that the old value is always overridded, otherwise, if the variable exists it remains unchanged

- -
-
- -
-
- - - - - -
- - - - - - - - -
int boost::nowide::system (char const * cmd)
-
-inline
-
-

Same as std::system but cmd is UTF-8.

-

If the input is not valid UTF-8, -1 returned and errno set to EINVAL

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
wchar_t* boost::nowide::widen (wchar_t * output,
size_t output_size,
char const * source 
)
-
-inline
-
-

Convert NULL terminated UTF source string to NULL terminated output string of size at most output_size (including NULL)

-

In case of success output is returned, if the input sequence is illegal, or there is not enough room NULL is returned

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
wchar_t* boost::nowide::widen (wchar_t * output,
size_t output_size,
char const * begin,
char const * end 
)
-
-inline
-
-

Convert UTF text in range [begin,end) to NULL terminated output string of size at most output_size (including NULL)

-

In case of success output is returned, if the input sequence is illegal, or there is not enough room NULL is returned

- -
-
- -
-
- - - - - -
- - - - - - - - -
std::wstring boost::nowide::widen (char const * s)
-
-inline
-
-

Convert between UTF-8 and UTF-16 string, implemented only on Windows platform

-

boost::locale::conv::conversion_error is thrown in a case of a error

- -
-
- -
-
- - - - - -
- - - - - - - - -
std::wstring boost::nowide::widen (std::string const & s)
-
-inline
-
-

Convert between UTF-8 and UTF-16 string, implemented only on Windows platform

-

boost::locale::conv::conversion_error is thrown in a case of a error

- -
-
-

Variable Documentation

- -
-
- - - - -
details::winconsole_ostream boost::nowide::cerr
-
- -

Same as std::cerr, but uses UTF-8.

-

Note, the stream is not synchronized with stdio and not affected by std::ios::sync_with_stdio

- -
-
- -
-
- - - - -
details::winconsole_istream boost::nowide::cin
-
- -

Same as std::cin, but uses UTF-8.

-

Note, the stream is not synchronized with stdio and not affected by std::ios::sync_with_stdio

- -
-
- -
-
- - - - -
details::winconsole_ostream boost::nowide::clog
-
- -

Same as std::clog, but uses UTF-8.

-

Note, the stream is not synchronized with stdio and not affected by std::ios::sync_with_stdio

- -
-
- -
-
- - - - -
details::winconsole_ostream boost::nowide::cout
-
- -

Same as std::cout, but uses UTF-8.

-

Note, the stream is not synchronized with stdio and not affected by std::ios::sync_with_stdio

- -
-
-
- - - - diff --git a/doc/html/namespacemembers.html b/doc/html/namespacemembers.html deleted file mode 100644 index 8b75b2b..0000000 --- a/doc/html/namespacemembers.html +++ /dev/null @@ -1,200 +0,0 @@ - - - - - - -Boost.Nowide: Namespace Members - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - - - -
-
-
Here is a list of all documented namespace members with links to the namespaces they belong to:
- -

- b -

- - -

- c -

- - -

- f -

- - -

- g -

- - -

- i -

- - -

- n -

- - -

- o -

- - -

- p -

- - -

- r -

- - -

- s -

- - -

- u -

- - -

- w -

-
- - - - diff --git a/doc/html/namespacemembers_func.html b/doc/html/namespacemembers_func.html deleted file mode 100644 index 110a83a..0000000 --- a/doc/html/namespacemembers_func.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - -Boost.Nowide: Namespace Members - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - - -
-
-
- - - - diff --git a/doc/html/namespacemembers_type.html b/doc/html/namespacemembers_type.html deleted file mode 100644 index d14547c..0000000 --- a/doc/html/namespacemembers_type.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - -Boost.Nowide: Namespace Members - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - - -
-
-
- - - - diff --git a/doc/html/namespacemembers_vars.html b/doc/html/namespacemembers_vars.html deleted file mode 100644 index 26f5dd4..0000000 --- a/doc/html/namespacemembers_vars.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - -Boost.Nowide: Namespace Members - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - - -
-
-
- - - - diff --git a/doc/html/namespaces.html b/doc/html/namespaces.html deleted file mode 100644 index dd143eb..0000000 --- a/doc/html/namespaces.html +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - -Boost.Nowide: Namespace List - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - -
-
-
-
Namespace List
-
-
-
Here is a list of all documented namespaces with brief descriptions:
-
[detail level 12]
- - -
 Nboost
 NnowideThis namespace includes implementation of the standard library functios such that they accept UTF-8 strings on Windows. On other platforms it is just an alias of std namespace (i.e. not on Windows)
-
-
- - - - diff --git a/doc/html/nav_f.png b/doc/html/nav_f.png deleted file mode 100644 index 72a58a5..0000000 Binary files a/doc/html/nav_f.png and /dev/null differ diff --git a/doc/html/nav_g.png b/doc/html/nav_g.png deleted file mode 100644 index 2093a23..0000000 Binary files a/doc/html/nav_g.png and /dev/null differ diff --git a/doc/html/nav_h.png b/doc/html/nav_h.png deleted file mode 100644 index 33389b1..0000000 Binary files a/doc/html/nav_h.png and /dev/null differ diff --git a/doc/html/open.png b/doc/html/open.png deleted file mode 100644 index 30f75c7..0000000 Binary files a/doc/html/open.png and /dev/null differ diff --git a/doc/html/stackstring_8hpp_source.html b/doc/html/stackstring_8hpp_source.html deleted file mode 100644 index 99b8b03..0000000 --- a/doc/html/stackstring_8hpp_source.html +++ /dev/null @@ -1,200 +0,0 @@ - - - - - - -Boost.Nowide: boost/nowide/stackstring.hpp Source File - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - - -
-
-
-
stackstring.hpp
-
-
-
1 //
-
2 // Copyright (c) 2012 Artyom Beilis (Tonkikh)
-
3 //
-
4 // Distributed under the Boost Software License, Version 1.0. (See
-
5 // accompanying file LICENSE_1_0.txt or copy at
-
6 // http://www.boost.org/LICENSE_1_0.txt)
-
7 //
-
8 #ifndef BOOST_NOWIDE_DETAILS_WIDESTR_H_INCLUDED
-
9 #define BOOST_NOWIDE_DETAILS_WIDESTR_H_INCLUDED
-
10 #include <boost/nowide/convert.hpp>
-
11 #include <string.h>
-
12 #include <algorithm>
-
13 
-
14 namespace boost {
-
15 namespace nowide {
-
16 
-
24 template<typename CharOut=wchar_t,typename CharIn = char,size_t BufferSize = 256>
- -
26 public:
-
27 
-
28  static const size_t buffer_size = BufferSize;
-
29  typedef CharOut output_char;
-
30  typedef CharIn input_char;
-
31 
-
32  basic_stackstring(basic_stackstring const &other) :
-
33  mem_buffer_(0)
-
34  {
-
35  clear();
-
36  if(other.mem_buffer_) {
-
37  size_t len = 0;
-
38  while(other.mem_buffer_[len])
-
39  len ++;
-
40  mem_buffer_ = new output_char[len + 1];
-
41  memcpy(mem_buffer_,other.mem_buffer_,sizeof(output_char) * (len+1));
-
42  }
-
43  else {
-
44  memcpy(buffer_,other.buffer_,buffer_size * sizeof(output_char));
-
45  }
-
46  }
-
47 
-
48  void swap(basic_stackstring &other)
-
49  {
-
50  std::swap(mem_buffer_,other.mem_buffer_);
-
51  for(size_t i=0;i<buffer_size;i++)
-
52  std::swap(buffer_[i],other.buffer_[i]);
-
53  }
-
54  basic_stackstring &operator=(basic_stackstring const &other)
-
55  {
-
56  if(this != &other) {
-
57  basic_stackstring tmp(other);
-
58  swap(tmp);
-
59  }
-
60  return *this;
-
61  }
-
62 
-
63  basic_stackstring() : mem_buffer_(0)
-
64  {
-
65  }
-
66  bool convert(input_char const *input)
-
67  {
-
68  return convert(input,details::basic_strend(input));
-
69  }
-
70  bool convert(input_char const *begin,input_char const *end)
-
71  {
-
72  clear();
-
73 
-
74  size_t space = get_space(sizeof(input_char),sizeof(output_char),end - begin) + 1;
-
75  if(space <= buffer_size) {
-
76  if(basic_convert(buffer_,buffer_size,begin,end))
-
77  return true;
-
78  clear();
-
79  return false;
-
80  }
-
81  else {
-
82  mem_buffer_ = new output_char[space];
-
83  if(!basic_convert(mem_buffer_,space,begin,end)) {
-
84  clear();
-
85  return false;
-
86  }
-
87  return true;
-
88  }
-
89 
-
90  }
-
91  output_char *c_str()
-
92  {
-
93  if(mem_buffer_)
-
94  return mem_buffer_;
-
95  return buffer_;
-
96  }
-
97  output_char const *c_str() const
-
98  {
-
99  if(mem_buffer_)
-
100  return mem_buffer_;
-
101  return buffer_;
-
102  }
-
103  void clear()
-
104  {
-
105  if(mem_buffer_) {
-
106  delete [] mem_buffer_;
-
107  mem_buffer_=0;
-
108  }
-
109  buffer_[0] = 0;
-
110  }
- -
112  {
-
113  clear();
-
114  }
-
115 private:
-
116  static size_t get_space(size_t insize,size_t outsize,size_t in)
-
117  {
-
118  if(insize <= outsize)
-
119  return in;
-
120  else if(insize == 2 && outsize == 1)
-
121  return 3 * in;
-
122  else if(insize == 4 && outsize == 1)
-
123  return 4 * in;
-
124  else // if(insize == 4 && outsize == 2)
-
125  return 2 * in;
-
126  }
-
127  output_char buffer_[buffer_size];
-
128  output_char *mem_buffer_;
-
129 }; //basic_stackstring
-
130 
- - - - -
147 
-
148 
-
149 } // nowide
-
150 } // namespace boost
-
151 
-
152 #endif
-
153 // vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
-
basic_stackstring< wchar_t, char, 256 > wstackstring
Definition: stackstring.hpp:134
-
basic_stackstring< wchar_t, char, 16 > wshort_stackstring
Definition: stackstring.hpp:142
-
basic_stackstring< char, wchar_t, 16 > short_stackstring
Definition: stackstring.hpp:146
-
basic_stackstring< char, wchar_t, 256 > stackstring
Definition: stackstring.hpp:138
-
A class that allows to create a temporary wide or narrow UTF strings from wide or narrow UTF source...
Definition: stackstring.hpp:25
-
CharOut * basic_convert(CharOut *buffer, size_t buffer_size, CharIn const *source_begin, CharIn const *source_end)
Template function that converts a buffer of UTF sequences in range [source_begin,source_end) to the o...
Definition: convert.hpp:26
-
- - - - diff --git a/doc/html/sync_off.png b/doc/html/sync_off.png deleted file mode 100644 index 3b443fc..0000000 Binary files a/doc/html/sync_off.png and /dev/null differ diff --git a/doc/html/sync_on.png b/doc/html/sync_on.png deleted file mode 100644 index e08320f..0000000 Binary files a/doc/html/sync_on.png and /dev/null differ diff --git a/doc/html/system_8hpp_source.html b/doc/html/system_8hpp_source.html deleted file mode 100644 index 7b0cb93..0000000 --- a/doc/html/system_8hpp_source.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - -Boost.Nowide: boost/nowide/system.hpp Source File - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - - -
-
-
-
system.hpp
-
-
-
1 //
-
2 // Copyright (c) 2012 Artyom Beilis (Tonkikh)
-
3 //
-
4 // Distributed under the Boost Software License, Version 1.0. (See
-
5 // accompanying file LICENSE_1_0.txt or copy at
-
6 // http://www.boost.org/LICENSE_1_0.txt)
-
7 //
-
8 #ifndef BOOST_NOWIDE_CSTDLIB_HPP
-
9 #define BOOST_NOWIDE_CSTDLIB_HPP
-
10 
-
11 #include <stdlib.h>
-
12 #include <errno.h>
-
13 #include <boost/nowide/stackstring.hpp>
-
14 namespace boost {
-
15 namespace nowide {
-
16 
-
17 #if !defined(BOOST_WINDOWS) && !defined(BOOST_NOWIDE_DOXYGEN)
-
18 
-
19 using ::system;
-
20 
-
21 #else // Windows
-
22 
-
28 inline int system(char const *cmd)
-
29 {
-
30  if(!cmd)
-
31  return _wsystem(0);
-
32  wstackstring wcmd;
-
33  if(!wcmd.convert(cmd)) {
-
34  errno = EINVAL;
-
35  return -1;
-
36  }
-
37  return _wsystem(wcmd.c_str());
-
38 }
-
39 
-
40 #endif
-
41 } // nowide
-
42 } // namespace boost
-
43 
-
44 #endif
-
45 // vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
-
int system(char const *cmd)
Definition: system.hpp:28
-
A class that allows to create a temporary wide or narrow UTF strings from wide or narrow UTF source...
Definition: stackstring.hpp:25
-
- - - - diff --git a/doc/html/tab_a.png b/doc/html/tab_a.png deleted file mode 100644 index 3b725c4..0000000 Binary files a/doc/html/tab_a.png and /dev/null differ diff --git a/doc/html/tab_b.png b/doc/html/tab_b.png deleted file mode 100644 index e2b4a86..0000000 Binary files a/doc/html/tab_b.png and /dev/null differ diff --git a/doc/html/tab_h.png b/doc/html/tab_h.png deleted file mode 100644 index fd5cb70..0000000 Binary files a/doc/html/tab_h.png and /dev/null differ diff --git a/doc/html/tab_s.png b/doc/html/tab_s.png deleted file mode 100644 index ab478c9..0000000 Binary files a/doc/html/tab_s.png and /dev/null differ diff --git a/doc/html/tabs.css b/doc/html/tabs.css deleted file mode 100644 index 9cf578f..0000000 --- a/doc/html/tabs.css +++ /dev/null @@ -1,60 +0,0 @@ -.tabs, .tabs2, .tabs3 { - background-image: url('tab_b.png'); - width: 100%; - z-index: 101; - font-size: 13px; - font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; -} - -.tabs2 { - font-size: 10px; -} -.tabs3 { - font-size: 9px; -} - -.tablist { - margin: 0; - padding: 0; - display: table; -} - -.tablist li { - float: left; - display: table-cell; - background-image: url('tab_b.png'); - line-height: 36px; - list-style: none; -} - -.tablist a { - display: block; - padding: 0 20px; - font-weight: bold; - background-image:url('tab_s.png'); - background-repeat:no-repeat; - background-position:right; - color: #283A5D; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - text-decoration: none; - outline: none; -} - -.tabs3 .tablist a { - padding: 0 10px; -} - -.tablist a:hover { - background-image: url('tab_h.png'); - background-repeat:repeat-x; - color: #fff; - text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); - text-decoration: none; -} - -.tablist li.current a { - background-image: url('tab_a.png'); - background-repeat:repeat-x; - color: #fff; - text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); -} diff --git a/doc/html/utf8__codecvt_8hpp_source.html b/doc/html/utf8__codecvt_8hpp_source.html deleted file mode 100644 index c87e198..0000000 --- a/doc/html/utf8__codecvt_8hpp_source.html +++ /dev/null @@ -1,558 +0,0 @@ - - - - - - -Boost.Nowide: boost/nowide/utf8_codecvt.hpp Source File - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - - -
-
-
-
utf8_codecvt.hpp
-
-
-
1 //
-
2 // Copyright (c) 2015 Artyom Beilis (Tonkikh)
-
3 //
-
4 // Distributed under the Boost Software License, Version 1.0. (See
-
5 // accompanying file LICENSE_1_0.txt or copy at
-
6 // http://www.boost.org/LICENSE_1_0.txt)
-
7 //
-
8 #ifndef BOOST_NOWIDE_UTF8_CODECVT_HPP
-
9 #define BOOST_NOWIDE_UTF8_CODECVT_HPP
-
10 
-
11 #include <boost/locale/utf.hpp>
-
12 #include <boost/cstdint.hpp>
-
13 #include <boost/static_assert.hpp>
-
14 #include <locale>
-
15 
-
16 namespace boost {
-
17 namespace nowide {
-
18 
-
19 //
-
20 // Make sure that mbstate can keep 16 bit of UTF-16 sequence
-
21 //
-
22 BOOST_STATIC_ASSERT(sizeof(std::mbstate_t)>=2);
-
23 
-
24 #if defined _MSC_VER && _MSC_VER < 1700
-
25 // MSVC do_length is non-standard it counts wide characters instead of narrow and does not change mbstate
-
26 #define BOOST_NOWIDE_DO_LENGTH_MBSTATE_CONST
-
27 #endif
-
28 
-
29 template<typename CharType,int CharSize=sizeof(CharType)>
- -
31 
-
32 template<typename CharType>
-
33 class utf8_codecvt<CharType,2> : public std::codecvt<CharType,char,std::mbstate_t>
-
34 {
-
35 public:
-
36  utf8_codecvt(size_t refs = 0) : std::codecvt<CharType,char,std::mbstate_t>(refs)
-
37  {
-
38  }
-
39 protected:
-
40 
-
41  typedef CharType uchar;
-
42 
-
43  virtual std::codecvt_base::result do_unshift(std::mbstate_t &s,char *from,char * /*to*/,char *&next) const
-
44  {
-
45  boost::uint16_t &state = *reinterpret_cast<boost::uint16_t *>(&s);
-
46 #ifdef DEBUG_CODECVT
-
47  std::cout << "Entering unshift " << std::hex << state << std::dec << std::endl;
-
48 #endif
-
49  if(state != 0)
-
50  return std::codecvt_base::error;
-
51  next=from;
-
52  return std::codecvt_base::ok;
-
53  }
-
54  virtual int do_encoding() const throw()
-
55  {
-
56  return 0;
-
57  }
-
58  virtual int do_max_length() const throw()
-
59  {
-
60  return 4;
-
61  }
-
62  virtual bool do_always_noconv() const throw()
-
63  {
-
64  return false;
-
65  }
-
66 
-
67  virtual int
-
68  do_length( std::mbstate_t
-
69  #ifdef BOOST_NOWIDE_DO_LENGTH_MBSTATE_CONST
-
70  const
-
71  #endif
-
72  &std_state,
-
73  char const *from,
-
74  char const *from_end,
-
75  size_t max) const
-
76  {
-
77  #ifndef BOOST_NOWIDE_DO_LENGTH_MBSTATE_CONST
-
78  char const *save_from = from;
-
79  boost::uint16_t &state = *reinterpret_cast<boost::uint16_t *>(&std_state);
-
80  #else
-
81  size_t save_max = max;
-
82  boost::uint16_t state = *reinterpret_cast<boost::uint16_t const *>(&std_state);
-
83  #endif
-
84  while(max > 0 && from < from_end){
-
85  char const *prev_from = from;
-
86  boost::uint32_t ch=boost::locale::utf::utf_traits<char>::decode(from,from_end);
-
87  if(ch==boost::locale::utf::incomplete || ch==boost::locale::utf::illegal) {
-
88  from = prev_from;
-
89  break;
-
90  }
-
91  max --;
-
92  if(ch > 0xFFFF) {
-
93  if(state == 0) {
-
94  from = prev_from;
-
95  state = 1;
-
96  }
-
97  else {
-
98  state = 0;
-
99  }
-
100  }
-
101  }
-
102  #ifndef BOOST_NOWIDE_DO_LENGTH_MBSTATE_CONST
-
103  return from - save_from;
-
104  #else
-
105  return save_max - max;
-
106  #endif
-
107  }
-
108 
-
109 
-
110  virtual std::codecvt_base::result
-
111  do_in( std::mbstate_t &std_state,
-
112  char const *from,
-
113  char const *from_end,
-
114  char const *&from_next,
-
115  uchar *to,
-
116  uchar *to_end,
-
117  uchar *&to_next) const
-
118  {
-
119  std::codecvt_base::result r=std::codecvt_base::ok;
-
120 
-
121  // mbstate_t is POD type and should be initialized to 0 (i.a. state = stateT())
-
122  // according to standard. We use it to keep a flag 0/1 for surrogate pair writing
-
123  //
-
124  // if 0 no code above >0xFFFF observed, of 1 a code above 0xFFFF observerd
-
125  // and first pair is written, but no input consumed
-
126  boost::uint16_t &state = *reinterpret_cast<boost::uint16_t *>(&std_state);
-
127  while(to < to_end && from < from_end)
-
128  {
-
129 #ifdef DEBUG_CODECVT
-
130  std::cout << "Entering IN--------------" << std::endl;
-
131  std::cout << "State " << std::hex << state <<std::endl;
-
132  std::cout << "Left in " << std::dec << from_end - from << " out " << to_end -to << std::endl;
-
133 #endif
-
134  char const *from_saved = from;
-
135 
-
136  uint32_t ch=boost::locale::utf::utf_traits<char>::decode(from,from_end);
-
137 
-
138  if(ch==boost::locale::utf::illegal) {
-
139  from = from_saved;
-
140  r=std::codecvt_base::error;
-
141  break;
-
142  }
-
143  if(ch==boost::locale::utf::incomplete) {
-
144  from = from_saved;
-
145  r=std::codecvt_base::partial;
-
146  break;
-
147  }
-
148  // Normal codepoints go direcly to stream
-
149  if(ch <= 0xFFFF) {
-
150  *to++=ch;
-
151  }
-
152  else {
-
153  // for other codepoints we do following
-
154  //
-
155  // 1. We can't consume our input as we may find ourselfs
-
156  // in state where all input consumed but not all output written,i.e. only
-
157  // 1st pair is written
-
158  // 2. We only write first pair and mark this in the state, we also revert back
-
159  // the from pointer in order to make sure this codepoint would be read
-
160  // once again and then we would consume our input together with writing
-
161  // second surrogate pair
-
162  ch-=0x10000;
-
163  boost::uint16_t vh = ch >> 10;
-
164  boost::uint16_t vl = ch & 0x3FF;
-
165  boost::uint16_t w1 = vh + 0xD800;
-
166  boost::uint16_t w2 = vl + 0xDC00;
-
167  if(state == 0) {
-
168  from = from_saved;
-
169  *to++ = w1;
-
170  state = 1;
-
171  }
-
172  else {
-
173  *to++ = w2;
-
174  state = 0;
-
175  }
-
176  }
-
177  }
-
178  from_next=from;
-
179  to_next=to;
-
180  if(r == std::codecvt_base::ok && (from!=from_end || state!=0))
-
181  r = std::codecvt_base::partial;
-
182 #ifdef DEBUG_CODECVT
-
183  std::cout << "Returning ";
-
184  switch(r) {
-
185  case std::codecvt_base::ok:
-
186  std::cout << "ok" << std::endl;
-
187  break;
-
188  case std::codecvt_base::partial:
-
189  std::cout << "partial" << std::endl;
-
190  break;
-
191  case std::codecvt_base::error:
-
192  std::cout << "error" << std::endl;
-
193  break;
-
194  default:
-
195  std::cout << "other" << std::endl;
-
196  break;
-
197  }
-
198  std::cout << "State " << std::hex << state <<std::endl;
-
199  std::cout << "Left in " << std::dec << from_end - from << " out " << to_end -to << std::endl;
-
200 #endif
-
201  return r;
-
202  }
-
203 
-
204  virtual std::codecvt_base::result
-
205  do_out( std::mbstate_t &std_state,
-
206  uchar const *from,
-
207  uchar const *from_end,
-
208  uchar const *&from_next,
-
209  char *to,
-
210  char *to_end,
-
211  char *&to_next) const
-
212  {
-
213  std::codecvt_base::result r=std::codecvt_base::ok;
-
214  // mbstate_t is POD type and should be initialized to 0 (i.a. state = stateT())
-
215  // according to standard. We assume that sizeof(mbstate_t) >=2 in order
-
216  // to be able to store first observerd surrogate pair
-
217  //
-
218  // State: state!=0 - a first surrogate pair was observerd (state = first pair),
-
219  // we expect the second one to come and then zero the state
-
221  boost::uint16_t &state = *reinterpret_cast<boost::uint16_t *>(&std_state);
-
222  while(to < to_end && from < from_end)
-
223  {
-
224 #ifdef DEBUG_CODECVT
-
225  std::cout << "Entering OUT --------------" << std::endl;
-
226  std::cout << "State " << std::hex << state <<std::endl;
-
227  std::cout << "Left in " << std::dec << from_end - from << " out " << to_end -to << std::endl;
-
228 #endif
-
229  boost::uint32_t ch=0;
-
230  if(state != 0) {
-
231  // if the state idecates that 1st surrogate pair was written
-
232  // we should make sure that the second one that comes is actually
-
233  // second surrogate
-
234  boost::uint16_t w1 = state;
-
235  boost::uint16_t w2 = *from;
-
236  // we don't forward from as writing may fail to incomplete or
-
237  // partial conversion
-
238  if(0xDC00 <= w2 && w2<=0xDFFF) {
-
239  boost::uint16_t vh = w1 - 0xD800;
-
240  boost::uint16_t vl = w2 - 0xDC00;
-
241  ch=((uint32_t(vh) << 10) | vl) + 0x10000;
-
242  }
-
243  else {
-
244  // Invalid surrogate
-
245  r=std::codecvt_base::error;
-
246  break;
-
247  }
-
248  }
-
249  else {
-
250  ch = *from;
-
251  if(0xD800 <= ch && ch<=0xDBFF) {
-
252  // if this is a first surrogate pair we put
-
253  // it into the state and consume it, note we don't
-
254  // go forward as it should be illegal so we increase
-
255  // the from pointer manually
-
256  state = ch;
-
257  from++;
-
258  continue;
-
259  }
-
260  else if(0xDC00 <= ch && ch<=0xDFFF) {
-
261  // if we observe second surrogate pair and
-
262  // first only may be expected we should break from the loop with error
-
263  // as it is illegal input
-
264  r=std::codecvt_base::error;
-
265  break;
-
266  }
-
267  }
-
268  if(!boost::locale::utf::is_valid_codepoint(ch)) {
-
269  r=std::codecvt_base::error;
-
270  break;
-
271  }
-
272  int len = boost::locale::utf::utf_traits<char>::width(ch);
-
273  if(to_end - to < len) {
-
274  r=std::codecvt_base::partial;
-
275  break;
-
276  }
-
277  to = boost::locale::utf::utf_traits<char>::encode(ch,to);
-
278  state = 0;
-
279  from++;
-
280  }
-
281  from_next=from;
-
282  to_next=to;
-
283  if(r==std::codecvt_base::ok && from!=from_end)
-
284  r = std::codecvt_base::partial;
-
285 #ifdef DEBUG_CODECVT
-
286  std::cout << "Returning ";
-
287  switch(r) {
-
288  case std::codecvt_base::ok:
-
289  std::cout << "ok" << std::endl;
-
290  break;
-
291  case std::codecvt_base::partial:
-
292  std::cout << "partial" << std::endl;
-
293  break;
-
294  case std::codecvt_base::error:
-
295  std::cout << "error" << std::endl;
-
296  break;
-
297  default:
-
298  std::cout << "other" << std::endl;
-
299  break;
-
300  }
-
301  std::cout << "State " << std::hex << state <<std::endl;
-
302  std::cout << "Left in " << std::dec << from_end - from << " out " << to_end -to << std::endl;
-
303 #endif
-
304  return r;
-
305  }
-
306 
-
307 };
-
308 
-
309 template<typename CharType>
-
310 class utf8_codecvt<CharType,4> : public std::codecvt<CharType,char,std::mbstate_t>
-
311 {
-
312 public:
-
313  utf8_codecvt(size_t refs = 0) : std::codecvt<CharType,char,std::mbstate_t>(refs)
-
314  {
-
315  }
-
316 protected:
-
317 
-
318  typedef CharType uchar;
-
319 
-
320  virtual std::codecvt_base::result do_unshift(std::mbstate_t &/*s*/,char *from,char * /*to*/,char *&next) const
-
321  {
-
322  next=from;
-
323  return std::codecvt_base::ok;
-
324  }
-
325  virtual int do_encoding() const throw()
-
326  {
-
327  return 0;
-
328  }
-
329  virtual int do_max_length() const throw()
-
330  {
-
331  return 4;
-
332  }
-
333  virtual bool do_always_noconv() const throw()
-
334  {
-
335  return false;
-
336  }
-
337 
-
338  virtual int
-
339  do_length( std::mbstate_t
-
340  #ifdef BOOST_NOWIDE_DO_LENGTH_MBSTATE_CONST
-
341  const
-
342  #endif
-
343  &/*state*/,
-
344  char const *from,
-
345  char const *from_end,
-
346  size_t max) const
-
347  {
-
348  #ifndef BOOST_NOWIDE_DO_LENGTH_MBSTATE_CONST
-
349  char const *start_from = from;
-
350  #else
-
351  size_t save_max = max;
-
352  #endif
-
353 
-
354  while(max > 0 && from < from_end){
-
355  char const *save_from = from;
-
356  boost::uint32_t ch=boost::locale::utf::utf_traits<char>::decode(from,from_end);
-
357  if(ch==boost::locale::utf::incomplete || ch==boost::locale::utf::illegal) {
-
358  from = save_from;
-
359  break;
-
360  }
-
361  max--;
-
362  }
-
363  #ifndef BOOST_NOWIDE_DO_LENGTH_MBSTATE_CONST
-
364  return from - start_from;
-
365  #else
-
366  return save_max - max;
-
367  #endif
-
368  }
-
369 
-
370 
-
371  virtual std::codecvt_base::result
-
372  do_in( std::mbstate_t &/*state*/,
-
373  char const *from,
-
374  char const *from_end,
-
375  char const *&from_next,
-
376  uchar *to,
-
377  uchar *to_end,
-
378  uchar *&to_next) const
-
379  {
-
380  std::codecvt_base::result r=std::codecvt_base::ok;
-
381 
-
382  // mbstate_t is POD type and should be initialized to 0 (i.a. state = stateT())
-
383  // according to standard. We use it to keep a flag 0/1 for surrogate pair writing
-
384  //
-
385  // if 0 no code above >0xFFFF observed, of 1 a code above 0xFFFF observerd
-
386  // and first pair is written, but no input consumed
-
387  while(to < to_end && from < from_end)
-
388  {
-
389 #ifdef DEBUG_CODECVT
-
390  std::cout << "Entering IN--------------" << std::endl;
-
391  std::cout << "State " << std::hex << state <<std::endl;
-
392  std::cout << "Left in " << std::dec << from_end - from << " out " << to_end -to << std::endl;
-
393 #endif
-
394  char const *from_saved = from;
-
395 
-
396  uint32_t ch=boost::locale::utf::utf_traits<char>::decode(from,from_end);
-
397 
-
398  if(ch==boost::locale::utf::illegal) {
-
399  r=std::codecvt_base::error;
-
400  from = from_saved;
-
401  break;
-
402  }
-
403  if(ch==boost::locale::utf::incomplete) {
-
404  r=std::codecvt_base::partial;
-
405  from=from_saved;
-
406  break;
-
407  }
-
408  *to++=ch;
-
409  }
-
410  from_next=from;
-
411  to_next=to;
-
412  if(r == std::codecvt_base::ok && from!=from_end)
-
413  r = std::codecvt_base::partial;
-
414 #ifdef DEBUG_CODECVT
-
415  std::cout << "Returning ";
-
416  switch(r) {
-
417  case std::codecvt_base::ok:
-
418  std::cout << "ok" << std::endl;
-
419  break;
-
420  case std::codecvt_base::partial:
-
421  std::cout << "partial" << std::endl;
-
422  break;
-
423  case std::codecvt_base::error:
-
424  std::cout << "error" << std::endl;
-
425  break;
-
426  default:
-
427  std::cout << "other" << std::endl;
-
428  break;
-
429  }
-
430  std::cout << "State " << std::hex << state <<std::endl;
-
431  std::cout << "Left in " << std::dec << from_end - from << " out " << to_end -to << std::endl;
-
432 #endif
-
433  return r;
-
434  }
-
435 
-
436  virtual std::codecvt_base::result
-
437  do_out( std::mbstate_t &std_state,
-
438  uchar const *from,
-
439  uchar const *from_end,
-
440  uchar const *&from_next,
-
441  char *to,
-
442  char *to_end,
-
443  char *&to_next) const
-
444  {
-
445  std::codecvt_base::result r=std::codecvt_base::ok;
-
446  while(to < to_end && from < from_end)
-
447  {
-
448 #ifdef DEBUG_CODECVT
-
449  std::cout << "Entering OUT --------------" << std::endl;
-
450  std::cout << "State " << std::hex << state <<std::endl;
-
451  std::cout << "Left in " << std::dec << from_end - from << " out " << to_end -to << std::endl;
-
452 #endif
-
453  boost::uint32_t ch=0;
-
454  ch = *from;
-
455  if(!boost::locale::utf::is_valid_codepoint(ch)) {
-
456  r=std::codecvt_base::error;
-
457  break;
-
458  }
-
459  int len = boost::locale::utf::utf_traits<char>::width(ch);
-
460  if(to_end - to < len) {
-
461  r=std::codecvt_base::partial;
-
462  break;
-
463  }
-
464  to = boost::locale::utf::utf_traits<char>::encode(ch,to);
-
465  from++;
-
466  }
-
467  from_next=from;
-
468  to_next=to;
-
469  if(r==std::codecvt_base::ok && from!=from_end)
-
470  r = std::codecvt_base::partial;
-
471 #ifdef DEBUG_CODECVT
-
472  std::cout << "Returning ";
-
473  switch(r) {
-
474  case std::codecvt_base::ok:
-
475  std::cout << "ok" << std::endl;
-
476  break;
-
477  case std::codecvt_base::partial:
-
478  std::cout << "partial" << std::endl;
-
479  break;
-
480  case std::codecvt_base::error:
-
481  std::cout << "error" << std::endl;
-
482  break;
-
483  default:
-
484  std::cout << "other" << std::endl;
-
485  break;
-
486  }
-
487  std::cout << "State " << std::hex << state <<std::endl;
-
488  std::cout << "Left in " << std::dec << from_end - from << " out " << to_end -to << std::endl;
-
489 #endif
-
490  return r;
-
491  }
-
492 };
-
493 
-
494 } // nowide
-
495 } // namespace boost
-
496 
-
497 #endif
-
498 // vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
-
Definition: utf8_codecvt.hpp:30
-
- - - - diff --git a/doc/html/windows_8hpp_source.html b/doc/html/windows_8hpp_source.html deleted file mode 100644 index 6120a27..0000000 --- a/doc/html/windows_8hpp_source.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - -Boost.Nowide: boost/nowide/windows.hpp Source File - - - - - - -
-
- - - - - - -
-
Boost.Nowide -
-
-
- - - - - -
-
-
-
windows.hpp
-
-
-
1 //
-
2 // Copyright (c) 2012 Artyom Beilis (Tonkikh)
-
3 //
-
4 // Distributed under the Boost Software License, Version 1.0. (See
-
5 // accompanying file LICENSE_1_0.txt or copy at
-
6 // http://www.boost.org/LICENSE_1_0.txt)
-
7 //
-
8 #ifndef BOOST_NOWIDE_WINDOWS_HPP_INCLUDED
-
9 #define BOOST_NOWIDE_WINDOWS_HPP_INCLUDED
-
10 
-
11 #include <stddef.h>
-
12 
-
13 #ifdef BOOST_USE_WINDOWS_H
-
14 #include <windows.h>
-
15 #else
-
16 
-
17 //
-
18 // These are function prototypes... Allow to to include windows.h
-
19 //
-
20 extern "C" {
-
21 
-
22 __declspec(dllimport) wchar_t* __stdcall GetEnvironmentStringsW(void);
-
23 __declspec(dllimport) int __stdcall FreeEnvironmentStringsW(wchar_t *);
-
24 __declspec(dllimport) wchar_t* __stdcall GetCommandLineW(void);
-
25 __declspec(dllimport) wchar_t** __stdcall CommandLineToArgvW(wchar_t const *,int *);
-
26 __declspec(dllimport) unsigned long __stdcall GetLastError();
-
27 __declspec(dllimport) void* __stdcall LocalFree(void *);
-
28 __declspec(dllimport) int __stdcall SetEnvironmentVariableW(wchar_t const *,wchar_t const *);
-
29 __declspec(dllimport) unsigned long __stdcall GetEnvironmentVariableW(wchar_t const *,wchar_t *,unsigned long);
-
30 
-
31 }
-
32 
-
33 #endif
-
34 
-
35 
-
36 
-
37 #endif
-
38 // vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
-
- - - -