mirror of
https://github.com/tesseract-ocr/tesseract.git
synced 2024-11-24 11:09:06 +08:00
MinGW portability solved + some code cleanup (based on cpplint)
git-svn-id: https://tesseract-ocr.googlecode.com/svn/trunk@605 d0cd1f9f-072b-0410-8dd7-cf729c803f20
This commit is contained in:
parent
7ec3dca968
commit
9b7375edd6
@ -18,7 +18,9 @@
|
||||
**********************************************************************/
|
||||
|
||||
#ifdef WIN32
|
||||
#ifndef __GNUC__
|
||||
#include <windows.h>
|
||||
#endif /* __GNUC__ */
|
||||
#else
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
@ -26,16 +28,14 @@
|
||||
#pragma warning(disable:4244) // Conversion warnings
|
||||
#endif
|
||||
|
||||
#include <string>
|
||||
|
||||
// Include automatically generated configuration file if running autoconf.
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config_auto.h"
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_LIBLEPT
|
||||
// Include leptonica library only if autoconf (or makefile etc) tell us to.
|
||||
#include "allheaders.h"
|
||||
#endif
|
||||
|
||||
#include "tesseractclass.h"
|
||||
#include "img.h"
|
||||
#include "blobbox.h"
|
||||
|
@ -18,12 +18,19 @@
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include <string>
|
||||
#include <algorithm>
|
||||
|
||||
#include "ambigs.h"
|
||||
#include "helpers.h"
|
||||
|
||||
#ifdef WIN32
|
||||
#ifndef __GNUC__
|
||||
#define strtok_r strtok_s
|
||||
#endif
|
||||
#else
|
||||
#include "strtok_r.h"
|
||||
#endif /* __GNUC__ */
|
||||
#endif /* WIN32 */
|
||||
|
||||
namespace tesseract {
|
||||
|
||||
|
@ -24,12 +24,14 @@
|
||||
* structure alignment upto 8.
|
||||
**********************************************************************/
|
||||
|
||||
#ifndef OCRCLASS_H
|
||||
#define OCRCLASS_H
|
||||
#ifndef CCUTIL_OCRCLASS_H_
|
||||
#define CCUTIL_OCRCLASS_H_
|
||||
|
||||
#ifndef __GNUC__
|
||||
#ifdef __MSW32__
|
||||
#include <windows.h>
|
||||
#include "gettimeofday.h"
|
||||
#endif
|
||||
#else
|
||||
#include <sys/time.h>
|
||||
#endif
|
||||
@ -126,8 +128,7 @@ OR these together for enhancement in ocr_append_char*/
|
||||
#define EUC_SUPERSCRIPT 16 /*superscript char */
|
||||
|
||||
/*enum for character rendering direction*/
|
||||
enum OCR_CHAR_DIRECTION
|
||||
{
|
||||
enum OCR_CHAR_DIRECTION {
|
||||
OCR_CDIR_RIGHT_LEFT, /*right to left horizontal */
|
||||
OCR_CDIR_LEFT_RIGHT, /*left to right horizontal */
|
||||
OCR_CDIR_TOP_BOTTOM, /*top to bottom vertical */
|
||||
@ -135,29 +136,27 @@ enum OCR_CHAR_DIRECTION
|
||||
};
|
||||
|
||||
/*enum for line rendering direction*/
|
||||
enum OCR_LINE_DIRECTION
|
||||
{
|
||||
enum OCR_LINE_DIRECTION {
|
||||
OCR_LDIR_DOWN_RIGHT, /*horizontal lines go down */
|
||||
/*vertical lines go right */
|
||||
OCR_LDIR_UP_LEFT /*horizontal lines go up */
|
||||
};
|
||||
|
||||
/*enum for newline type*/
|
||||
enum OCR_NEWLINE_TYPE
|
||||
{
|
||||
enum OCR_NEWLINE_TYPE {
|
||||
OCR_NL_NONE, /*not a newline */
|
||||
OCR_NL_NEWLINE, /*this is a newline but not new para */
|
||||
OCR_NL_NEWPARA /*this is a newline and a new para */
|
||||
};
|
||||
|
||||
/*error codes that can be returned from the API functions other than OKAY and HPERR*/
|
||||
/*error codes that can be returned from the API functions other than OKAY
|
||||
and HPERR*/
|
||||
#define OCR_API_NO_MEM (-2) /*filled output buffer */
|
||||
#define OCR_API_BAD_CHAR (-3) /*whitespace sent to ocr_append_char */
|
||||
#define OCR_API_BAD_STATE (-4) /*invalid call sequence */
|
||||
|
||||
/*error codes used for passing errors back to the HP side*/
|
||||
enum OCR_ERR_CODE
|
||||
{
|
||||
enum OCR_ERR_CODE {
|
||||
OCR_ERR_NONE, /*no error */
|
||||
OCR_ERR_CLEAN_EXIT, /*no error */
|
||||
OCR_ERR_NO_MEM, /*out of memory */
|
||||
@ -187,8 +186,7 @@ enum OCR_ERR_CODE
|
||||
* The name may be either a valid font on the system or the empty string.
|
||||
**********************************************************************/
|
||||
|
||||
typedef struct /*font description */
|
||||
{
|
||||
typedef struct { /*font description */
|
||||
uinT16 language; /*default language */
|
||||
uinT8 font_family; /*serif/not, fixed/not */
|
||||
uinT8 char_set; /*character set standard */
|
||||
@ -204,8 +202,7 @@ typedef struct /*font description */
|
||||
* can recognize.
|
||||
**********************************************************************/
|
||||
|
||||
typedef struct /*startup info */
|
||||
{
|
||||
typedef struct { /*startup info */
|
||||
inT32 protocol; /*interface version */
|
||||
uinT32 font_count; /*number of fonts */
|
||||
uinT16 language; /*default language */
|
||||
@ -225,8 +222,7 @@ typedef struct /*startup info */
|
||||
* The top leftmost pixel is in the most significant bit of the first byte.
|
||||
**********************************************************************/
|
||||
|
||||
typedef struct /*bitmap strip */
|
||||
{
|
||||
typedef struct { /*bitmap strip */
|
||||
inT16 x_size; /*width in pixels */
|
||||
inT16 y_size; /*of full image */
|
||||
inT16 strip_size; /*of this strip */
|
||||
@ -258,15 +254,15 @@ typedef struct /*bitmap strip */
|
||||
* version.
|
||||
**********************************************************************/
|
||||
|
||||
typedef struct /*single character */
|
||||
{
|
||||
// It should be noted that the format for char_code for version 2.0 and beyond is UTF8
|
||||
// which means that ASCII characters will come out as one structure but other characters
|
||||
// will be returned in two or more instances of this structure with a single byte of the
|
||||
// UTF8 code in each, but each will have the same bounding box.
|
||||
// Programs which want to handle languagues with different characters sets will need to
|
||||
// handle extended characters appropriately, but *all* code needs to be prepared to
|
||||
// receive UTF8 coded characters for characters such as bullet and fancy quotes.
|
||||
typedef struct { /*single character */
|
||||
// It should be noted that the format for char_code for version 2.0 and beyond
|
||||
// is UTF8 which means that ASCII characters will come out as one structure but
|
||||
// other characters will be returned in two or more instances of this structure
|
||||
// with a single byte of the UTF8 code in each, but each will have the same
|
||||
// bounding box. Programs which want to handle languagues with different
|
||||
// characters sets will need to handle extended characters appropriately, but
|
||||
// *all* code needs to be prepared to receive UTF8 coded characters for
|
||||
// characters such as bullet and fancy quotes.
|
||||
uinT16 char_code; /*character itself */
|
||||
inT16 left; /*of char (-1) */
|
||||
inT16 right; /*of char (-1) */
|
||||
@ -295,19 +291,18 @@ typedef struct /*single character */
|
||||
**********************************************************************/
|
||||
typedef bool (*CANCEL_FUNC)(void* cancel_this, int words);
|
||||
|
||||
class ETEXT_DESC /*output header */
|
||||
{
|
||||
class ETEXT_DESC { // output header
|
||||
public:
|
||||
inT16 count; /*chars in this buffer(0) */
|
||||
inT16 progress; /*percent complete increasing (0-100) */
|
||||
inT8 more_to_come; /*true if not last */
|
||||
volatile inT8 ocr_alive; /*ocr sets to 1, HP 0 */
|
||||
inT8 err_code; /*for errcode use */
|
||||
CANCEL_FUNC cancel; /*returns true to cancel */
|
||||
void* cancel_this; /*this or other data for cancel*/
|
||||
struct timeval end_time; /*time to stop. expected to be set only by call
|
||||
to set_deadline_msecs()*/
|
||||
EANYCODE_CHAR text[1]; /*character data */
|
||||
inT16 count; // chars in this buffer(0)
|
||||
inT16 progress; // percent complete increasing (0-100)
|
||||
inT8 more_to_come; // true if not last
|
||||
volatile inT8 ocr_alive; // ocr sets to 1, HP 0
|
||||
inT8 err_code; // for errcode use
|
||||
CANCEL_FUNC cancel; // returns true to cancel
|
||||
void* cancel_this; // this or other data for cancel
|
||||
struct timeval end_time; // time to stop. expected to be set only by call
|
||||
// to set_deadline_msecs()
|
||||
EANYCODE_CHAR text[1]; // character data
|
||||
|
||||
ETEXT_DESC() : count(0), progress(0), more_to_come(0), ocr_alive(0),
|
||||
err_code(0), cancel(NULL), cancel_this(NULL) {
|
||||
@ -337,4 +332,4 @@ class ETEXT_DESC /*output header */
|
||||
}
|
||||
};
|
||||
|
||||
#endif
|
||||
#endif // CCUTIL_OCRCLASS_H_
|
||||
|
@ -1,11 +1,39 @@
|
||||
// Place holder
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
// File: platform.h
|
||||
// Description: Place holder
|
||||
// Author:
|
||||
// Created:
|
||||
//
|
||||
// (C) Copyright 2006, Google Inc.
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef TESSERACT_CCUTIL_PLATFORM_H__
|
||||
#define TESSERACT_CCUTIL_PLATFORM_H__
|
||||
|
||||
#define DLLSYM
|
||||
#ifdef __MSW32__
|
||||
#ifdef __GNUC__
|
||||
#define ultoa _ultoa
|
||||
typedef struct _BLOB {
|
||||
unsigned int cbSize;
|
||||
char *pBlobData;
|
||||
} BLOB, *LPBLOB;
|
||||
#endif /* __GNUC__ */
|
||||
#define SIGNED
|
||||
#define snprintf _snprintf
|
||||
#if (_MSC_VER <= 1400)
|
||||
#define vsnprintf _vsnprintf
|
||||
#endif
|
||||
#endif /* __MSW32__ */
|
||||
#else
|
||||
#define __UNIX__
|
||||
#include <limits.h>
|
||||
@ -16,3 +44,5 @@
|
||||
#endif
|
||||
#define SIGNED signed
|
||||
#endif
|
||||
|
||||
#endif // TESSERACT_CCUTIL_PLATFORM_H__
|
||||
|
10
dict/dawg.h
10
dict/dawg.h
@ -24,8 +24,8 @@
|
||||
*
|
||||
*********************************************************************************/
|
||||
|
||||
#ifndef DAWG_H
|
||||
#define DAWG_H
|
||||
#ifndef DICT_DAWG_H_
|
||||
#define DICT_DAWG_H_
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
I n c l u d e s
|
||||
@ -35,11 +35,13 @@
|
||||
#include "ratngs.h"
|
||||
#include "params.h"
|
||||
|
||||
#ifndef __GNUC__
|
||||
#ifdef __MSW32__
|
||||
#define NO_EDGE (inT64) 0xffffffffffffffffi64
|
||||
#endif /*__MSW32__*/
|
||||
#else
|
||||
#define NO_EDGE (inT64) 0xffffffffffffffffll
|
||||
#endif
|
||||
#endif /*__GNUC__*/
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
T y p e s
|
||||
@ -481,4 +483,4 @@ class SquishedDawg : public Dawg {
|
||||
|
||||
} // namespace tesseract
|
||||
|
||||
#endif
|
||||
#endif // DICT_DAWG_H_
|
||||
|
@ -22,8 +22,6 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#ifdef WIN32
|
||||
#include <windows.h>
|
||||
#include <winsock.h>
|
||||
struct addrinfo {
|
||||
struct sockaddr* ai_addr;
|
||||
int ai_addrlen;
|
||||
@ -66,7 +64,7 @@ const int kMaxMsgSize = 4096;
|
||||
// Signals a thread to exit.
|
||||
void SVSync::ExitThread() {
|
||||
#ifdef WIN32
|
||||
//ExitThread(0);
|
||||
// ExitThread(0);
|
||||
#else
|
||||
pthread_exit(0);
|
||||
#endif
|
||||
@ -248,7 +246,7 @@ char* SVNetwork::Receive() {
|
||||
msg_buffer_in_[i] = '\0';
|
||||
has_content = true;
|
||||
#ifdef WIN32
|
||||
return strtok(msg_buffer_in_,"\n");
|
||||
return strtok(msg_buffer_in_, "\n");
|
||||
#else
|
||||
// Setup a new string tokenizer.
|
||||
return strtok_r(msg_buffer_in_, "\n", &buffer_ptr_);
|
||||
|
@ -25,6 +25,7 @@
|
||||
#define TESSERACT_VIEWER_SVUTIL_H__
|
||||
|
||||
#ifdef WIN32
|
||||
#ifndef __GNUC__
|
||||
#include <windows.h>
|
||||
#define snprintf _snprintf
|
||||
#if (_MSC_VER <= 1400)
|
||||
@ -32,6 +33,10 @@
|
||||
#endif
|
||||
#pragma warning(disable:4786)
|
||||
#else
|
||||
#include "platform.h"
|
||||
#include <windows.h>
|
||||
#endif
|
||||
#else
|
||||
#include <pthread.h>
|
||||
#include <semaphore.h>
|
||||
#endif
|
||||
@ -129,7 +134,7 @@ class SVNetwork {
|
||||
/// Stores the messages which are supposed to go out.
|
||||
std::string msg_buffer_out_;
|
||||
|
||||
bool has_content; // Win32 (strtok)
|
||||
bool has_content; // Win32 (strtok)
|
||||
/// Where we are at in our msg_buffer_in_
|
||||
char* buffer_ptr_; // Unix (strtok_r)
|
||||
};
|
||||
|
@ -1,39 +1,44 @@
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
// ISO C9x compliant stdint.h for Microsoft Visual Studio
|
||||
// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124
|
||||
//
|
||||
// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124
|
||||
//
|
||||
// Copyright (c) 2006-2008 Alexander Chemeris
|
||||
//
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are met:
|
||||
//
|
||||
//
|
||||
// 1. Redistributions of source code must retain the above copyright notice,
|
||||
// this list of conditions and the following disclaimer.
|
||||
//
|
||||
//
|
||||
// 2. Redistributions in binary form must reproduce the above copyright
|
||||
// notice, this list of conditions and the following disclaimer in the
|
||||
// documentation and/or other materials provided with the distribution.
|
||||
//
|
||||
//
|
||||
// 3. The name of the author may be used to endorse or promote products
|
||||
// derived from this software without specific prior written permission.
|
||||
//
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
||||
// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||
// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
//
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _MSC_VER // [
|
||||
#error "Use this header only with Microsoft Visual C++ compilers!"
|
||||
#endif // _MSC_VER ]
|
||||
#ifndef VS2008_INCLUDE_STDINT_H_
|
||||
#define VS2008_INCLUDE_STDINT_H_
|
||||
|
||||
#ifndef _MSC_STDINT_H_ // [
|
||||
#ifndef __GNUC__
|
||||
#ifndef _MSC_VER // [
|
||||
#error "Use this header only with Microsoft Visual C++ compilers!"
|
||||
#endif // _MSC_VER ]
|
||||
|
||||
#ifndef _MSC_STDINT_H_ // [
|
||||
#define _MSC_STDINT_H_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
@ -72,19 +77,19 @@ extern "C" {
|
||||
// realize that, e.g. char has the same size as __int8
|
||||
// so we give up on __intX for them.
|
||||
#if (_MSC_VER < 1300)
|
||||
typedef signed char int8_t;
|
||||
typedef signed short int16_t;
|
||||
typedef signed int int32_t;
|
||||
typedef unsigned char uint8_t;
|
||||
typedef unsigned short uint16_t;
|
||||
typedef unsigned int uint32_t;
|
||||
typedef signed char int8_t;
|
||||
typedef signed short int16_t;
|
||||
typedef signed int int32_t;
|
||||
typedef unsigned char uint8_t;
|
||||
typedef unsigned short uint16_t;
|
||||
typedef unsigned int uint32_t;
|
||||
#else
|
||||
typedef signed __int8 int8_t;
|
||||
typedef signed __int16 int16_t;
|
||||
typedef signed __int32 int32_t;
|
||||
typedef unsigned __int8 uint8_t;
|
||||
typedef unsigned __int16 uint16_t;
|
||||
typedef unsigned __int32 uint32_t;
|
||||
typedef signed __int8 int8_t;
|
||||
typedef signed __int16 int16_t;
|
||||
typedef signed __int32 int32_t;
|
||||
typedef unsigned __int8 uint8_t;
|
||||
typedef unsigned __int16 uint16_t;
|
||||
typedef unsigned __int32 uint32_t;
|
||||
#endif
|
||||
typedef signed __int64 int64_t;
|
||||
typedef unsigned __int64 uint64_t;
|
||||
@ -111,13 +116,13 @@ typedef uint32_t uint_fast32_t;
|
||||
typedef uint64_t uint_fast64_t;
|
||||
|
||||
// 7.18.1.4 Integer types capable of holding object pointers
|
||||
#ifdef _WIN64 // [
|
||||
typedef signed __int64 intptr_t;
|
||||
typedef unsigned __int64 uintptr_t;
|
||||
#else // _WIN64 ][
|
||||
typedef _W64 signed int intptr_t;
|
||||
typedef _W64 unsigned int uintptr_t;
|
||||
#endif // _WIN64 ]
|
||||
#ifdef _WIN64 // [
|
||||
typedef signed __int64 intptr_t;
|
||||
typedef unsigned __int64 uintptr_t;
|
||||
#else // _WIN64 ][
|
||||
typedef _W64 signed int intptr_t;
|
||||
typedef _W64 unsigned int uintptr_t;
|
||||
#endif // _WIN64 ]
|
||||
|
||||
// 7.18.1.5 Greatest-width integer types
|
||||
typedef int64_t intmax_t;
|
||||
@ -126,7 +131,8 @@ typedef uint64_t uintmax_t;
|
||||
|
||||
// 7.18.2 Limits of specified-width integer types
|
||||
|
||||
#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) // [ See footnote 220 at page 257 and footnote 221 at page 259
|
||||
#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS)
|
||||
// [ See footnote 220 at page 257 and footnote 221 at page 259
|
||||
|
||||
// 7.18.2.1 Limits of exact-width integer types
|
||||
#define INT8_MIN ((int8_t)_I8_MIN)
|
||||
@ -171,15 +177,15 @@ typedef uint64_t uintmax_t;
|
||||
#define UINT_FAST64_MAX UINT64_MAX
|
||||
|
||||
// 7.18.2.4 Limits of integer types capable of holding object pointers
|
||||
#ifdef _WIN64 // [
|
||||
#ifdef _WIN64 // [
|
||||
# define INTPTR_MIN INT64_MIN
|
||||
# define INTPTR_MAX INT64_MAX
|
||||
# define UINTPTR_MAX UINT64_MAX
|
||||
#else // _WIN64 ][
|
||||
#else // _WIN64 ][
|
||||
# define INTPTR_MIN INT32_MIN
|
||||
# define INTPTR_MAX INT32_MAX
|
||||
# define UINTPTR_MAX UINT32_MAX
|
||||
#endif // _WIN64 ]
|
||||
#endif // _WIN64 ]
|
||||
|
||||
// 7.18.2.5 Limits of greatest-width integer types
|
||||
#define INTMAX_MIN INT64_MIN
|
||||
@ -188,7 +194,7 @@ typedef uint64_t uintmax_t;
|
||||
|
||||
// 7.18.3 Limits of other integer types
|
||||
|
||||
#ifdef _WIN64 // [
|
||||
#ifdef _WIN64 // [
|
||||
# define PTRDIFF_MIN _I64_MIN
|
||||
# define PTRDIFF_MAX _I64_MAX
|
||||
#else // _WIN64 ][
|
||||
@ -199,31 +205,31 @@ typedef uint64_t uintmax_t;
|
||||
#define SIG_ATOMIC_MIN INT_MIN
|
||||
#define SIG_ATOMIC_MAX INT_MAX
|
||||
|
||||
#ifndef SIZE_MAX // [
|
||||
# ifdef _WIN64 // [
|
||||
#ifndef SIZE_MAX // [
|
||||
# ifdef _WIN64 // [
|
||||
# define SIZE_MAX _UI64_MAX
|
||||
# else // _WIN64 ][
|
||||
# else // _WIN64 ][
|
||||
# define SIZE_MAX _UI32_MAX
|
||||
# endif // _WIN64 ]
|
||||
#endif // SIZE_MAX ]
|
||||
# endif // _WIN64 ]
|
||||
#endif // SIZE_MAX ]
|
||||
|
||||
// WCHAR_MIN and WCHAR_MAX are also defined in <wchar.h>
|
||||
#ifndef WCHAR_MIN // [
|
||||
#ifndef WCHAR_MIN // [
|
||||
# define WCHAR_MIN 0
|
||||
#endif // WCHAR_MIN ]
|
||||
#ifndef WCHAR_MAX // [
|
||||
#ifndef WCHAR_MAX // [
|
||||
# define WCHAR_MAX _UI16_MAX
|
||||
#endif // WCHAR_MAX ]
|
||||
|
||||
#define WINT_MIN 0
|
||||
#define WINT_MAX _UI16_MAX
|
||||
|
||||
#endif // __STDC_LIMIT_MACROS ]
|
||||
|
||||
#endif // __STDC_LIMIT_MACROS ]
|
||||
|
||||
// 7.18.4 Limits of other integer types
|
||||
|
||||
#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) // [ See footnote 224 at page 260
|
||||
#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS)
|
||||
// [ See footnote 224 at page 260
|
||||
|
||||
// 7.18.4.1 Macros for minimum-width integer constants
|
||||
|
||||
@ -241,7 +247,9 @@ typedef uint64_t uintmax_t;
|
||||
#define INTMAX_C INT64_C
|
||||
#define UINTMAX_C UINT64_C
|
||||
|
||||
#endif // __STDC_CONSTANT_MACROS ]
|
||||
#endif // __STDC_CONSTANT_MACROS ]
|
||||
|
||||
#endif // _MSC_STDINT_H_ ]
|
||||
#endif // __GNUC__
|
||||
|
||||
#endif // _MSC_STDINT_H_ ]
|
||||
#endif // VS2008_INCLUDE_STDINT_H_
|
@ -26,21 +26,16 @@
|
||||
* SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
|
||||
*/
|
||||
|
||||
//*#include "c.h"
|
||||
|
||||
//#include <sys/time.h>
|
||||
#ifdef __MSW32__
|
||||
#include <winsock.h> // timeval is defined in here.
|
||||
#endif
|
||||
|
||||
/* FILETIME of Jan 1 1970 00:00:00. */
|
||||
//static const unsigned __int64 epoch = UINT64CONST(116444736000000000);
|
||||
static const unsigned __int64 epoch = 11644473600000000Ui64;
|
||||
|
||||
struct timezone
|
||||
{
|
||||
int tz_minuteswest; /* minutes W of Greenwich */
|
||||
int tz_dsttime; /* type of dst correction */
|
||||
struct timezone {
|
||||
int tz_minuteswest; /* minutes W of Greenwich */
|
||||
int tz_dsttime; /* type of dst correction */
|
||||
};
|
||||
|
||||
/*
|
||||
@ -50,19 +45,18 @@ struct timezone
|
||||
* elapsed_time().
|
||||
*/
|
||||
int
|
||||
gettimeofday(struct timeval * tp, struct timezone * tzp)
|
||||
{
|
||||
FILETIME file_time;
|
||||
SYSTEMTIME system_time;
|
||||
ULARGE_INTEGER ularge;
|
||||
gettimeofday(struct timeval * tp, struct timezone * tzp) {
|
||||
FILETIME file_time;
|
||||
SYSTEMTIME system_time;
|
||||
ULARGE_INTEGER ularge;
|
||||
|
||||
GetSystemTime(&system_time);
|
||||
SystemTimeToFileTime(&system_time, &file_time);
|
||||
ularge.LowPart = file_time.dwLowDateTime;
|
||||
ularge.HighPart = file_time.dwHighDateTime;
|
||||
GetSystemTime(&system_time);
|
||||
SystemTimeToFileTime(&system_time, &file_time);
|
||||
ularge.LowPart = file_time.dwLowDateTime;
|
||||
ularge.HighPart = file_time.dwHighDateTime;
|
||||
|
||||
tp->tv_sec = (long) ((ularge.QuadPart - epoch) / 10000000L);
|
||||
tp->tv_usec = (long) (system_time.wMilliseconds * 1000);
|
||||
tp->tv_sec = (long)((ularge.QuadPart - epoch) / 10000000L);
|
||||
tp->tv_usec = (long)(system_time.wMilliseconds * 1000);
|
||||
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
// File: gettimeofday.h
|
||||
// Description: Header file for gettimeofday.c (source postgreslq.org)
|
||||
// Description: Header file for gettimeofday.c (source postgresql.org)
|
||||
// Author: zdenop
|
||||
// Created: Fri Nov 19 21:05:06 CET 2010
|
||||
//
|
||||
@ -17,10 +17,15 @@
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef VS2008_PORT_GETTIMEOFDAY_H_
|
||||
#define VS2008_PORT_GETTIMEOFDAY_H_
|
||||
|
||||
#ifdef __MSW32__
|
||||
#include <winsock.h> // timeval is defined in here.
|
||||
#endif
|
||||
|
||||
typedef struct timezone tz;
|
||||
|
||||
int gettimeofday(struct timeval * tp, struct timezone * tzp);
|
||||
int gettimeofday(struct timeval * tp, struct timezone * tzp);
|
||||
|
||||
#endif // VS2008_PORT_GETTIMEOFDAY_H_
|
||||
|
55
vs2008/port/strtok_r.cpp
Normal file
55
vs2008/port/strtok_r.cpp
Normal file
@ -0,0 +1,55 @@
|
||||
/*
|
||||
* Copyright (c) 1995, 1996, 1997 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
// source: https://github.com/heimdal/heimdal/blob/master/lib/roken/strtok_r.c
|
||||
|
||||
#include <string.h>
|
||||
|
||||
char *strtok_r(char *s1, const char *s2, char **lasts) {
|
||||
char *ret;
|
||||
|
||||
if (s1 == NULL)
|
||||
s1 = *lasts;
|
||||
while (*s1 && strchr(s2, *s1))
|
||||
++s1;
|
||||
if (*s1 == '\0')
|
||||
return NULL;
|
||||
ret = s1;
|
||||
while (*s1 && !strchr(s2, *s1))
|
||||
++s1;
|
||||
if (*s1)
|
||||
*s1++ = '\0';
|
||||
*lasts = s1;
|
||||
return ret;
|
||||
}
|
||||
|
27
vs2008/port/strtok_r.h
Normal file
27
vs2008/port/strtok_r.h
Normal file
@ -0,0 +1,27 @@
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
// File: strtok_r.h
|
||||
// Description: Header file for strtok_r.cpp
|
||||
// source: https://github.com/heimdal/heimdal/blob/master/lib/roken/
|
||||
// strtok_r.c
|
||||
// Author: zdenop
|
||||
// Created: Fri Aug 12 23:55:06 CET 2011
|
||||
//
|
||||
// (C) Copyright 2011, Google Inc.
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef VS2008_PORT_GETTIMEOFDAY_H_
|
||||
#define VS2008_PORT_GETTIMEOFDAY_H_
|
||||
|
||||
char *strtok_r(char *s1, const char *s2, char **lasts);
|
||||
|
||||
#endif // VS2008_PORT_GETTIMEOFDAY_H_
|
@ -1,20 +1,25 @@
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
// File: version.h
|
||||
// Description: define version identifier for Windows
|
||||
// Author: zdenop@gmail.com
|
||||
// Created: Fri Nov 19 21:05:06 CET 2010
|
||||
//
|
||||
// (C) Copyright 2010, Google Inc.
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
|
||||
#define VERSION "3.01"
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
// File: version.h
|
||||
// Description: define version identifier for Windows
|
||||
// Author: zdenop@gmail.com
|
||||
// Created: Fri Nov 19 21:05:06 CET 2010
|
||||
//
|
||||
// (C) Copyright 2010, Google Inc.
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef VS2008_PORT_VERSION_H_
|
||||
#define VS2008_PORT_VERSION_H_
|
||||
|
||||
#define VERSION "3.01"
|
||||
|
||||
#endif // VS2008_PORT_VERSION_H_
|
@ -1,39 +1,44 @@
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
// ISO C9x compliant stdint.h for Microsoft Visual Studio
|
||||
// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124
|
||||
//
|
||||
// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124
|
||||
//
|
||||
// Copyright (c) 2006-2008 Alexander Chemeris
|
||||
//
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are met:
|
||||
//
|
||||
//
|
||||
// 1. Redistributions of source code must retain the above copyright notice,
|
||||
// this list of conditions and the following disclaimer.
|
||||
//
|
||||
//
|
||||
// 2. Redistributions in binary form must reproduce the above copyright
|
||||
// notice, this list of conditions and the following disclaimer in the
|
||||
// documentation and/or other materials provided with the distribution.
|
||||
//
|
||||
//
|
||||
// 3. The name of the author may be used to endorse or promote products
|
||||
// derived from this software without specific prior written permission.
|
||||
//
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
||||
// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||
// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
//
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _MSC_VER // [
|
||||
#error "Use this header only with Microsoft Visual C++ compilers!"
|
||||
#endif // _MSC_VER ]
|
||||
#ifndef VS2008_INCLUDE_STDINT_H_
|
||||
#define VS2008_INCLUDE_STDINT_H_
|
||||
|
||||
#ifndef _MSC_STDINT_H_ // [
|
||||
#ifndef __GNUC__
|
||||
#ifndef _MSC_VER // [
|
||||
#error "Use this header only with Microsoft Visual C++ compilers!"
|
||||
#endif // _MSC_VER ]
|
||||
|
||||
#ifndef _MSC_STDINT_H_ // [
|
||||
#define _MSC_STDINT_H_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
@ -72,19 +77,19 @@ extern "C" {
|
||||
// realize that, e.g. char has the same size as __int8
|
||||
// so we give up on __intX for them.
|
||||
#if (_MSC_VER < 1300)
|
||||
typedef signed char int8_t;
|
||||
typedef signed short int16_t;
|
||||
typedef signed int int32_t;
|
||||
typedef unsigned char uint8_t;
|
||||
typedef unsigned short uint16_t;
|
||||
typedef unsigned int uint32_t;
|
||||
typedef signed char int8_t;
|
||||
typedef signed short int16_t;
|
||||
typedef signed int int32_t;
|
||||
typedef unsigned char uint8_t;
|
||||
typedef unsigned short uint16_t;
|
||||
typedef unsigned int uint32_t;
|
||||
#else
|
||||
typedef signed __int8 int8_t;
|
||||
typedef signed __int16 int16_t;
|
||||
typedef signed __int32 int32_t;
|
||||
typedef unsigned __int8 uint8_t;
|
||||
typedef unsigned __int16 uint16_t;
|
||||
typedef unsigned __int32 uint32_t;
|
||||
typedef signed __int8 int8_t;
|
||||
typedef signed __int16 int16_t;
|
||||
typedef signed __int32 int32_t;
|
||||
typedef unsigned __int8 uint8_t;
|
||||
typedef unsigned __int16 uint16_t;
|
||||
typedef unsigned __int32 uint32_t;
|
||||
#endif
|
||||
typedef signed __int64 int64_t;
|
||||
typedef unsigned __int64 uint64_t;
|
||||
@ -111,13 +116,13 @@ typedef uint32_t uint_fast32_t;
|
||||
typedef uint64_t uint_fast64_t;
|
||||
|
||||
// 7.18.1.4 Integer types capable of holding object pointers
|
||||
#ifdef _WIN64 // [
|
||||
typedef signed __int64 intptr_t;
|
||||
typedef unsigned __int64 uintptr_t;
|
||||
#else // _WIN64 ][
|
||||
typedef _W64 signed int intptr_t;
|
||||
typedef _W64 unsigned int uintptr_t;
|
||||
#endif // _WIN64 ]
|
||||
#ifdef _WIN64 // [
|
||||
typedef signed __int64 intptr_t;
|
||||
typedef unsigned __int64 uintptr_t;
|
||||
#else // _WIN64 ][
|
||||
typedef _W64 signed int intptr_t;
|
||||
typedef _W64 unsigned int uintptr_t;
|
||||
#endif // _WIN64 ]
|
||||
|
||||
// 7.18.1.5 Greatest-width integer types
|
||||
typedef int64_t intmax_t;
|
||||
@ -126,7 +131,8 @@ typedef uint64_t uintmax_t;
|
||||
|
||||
// 7.18.2 Limits of specified-width integer types
|
||||
|
||||
#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) // [ See footnote 220 at page 257 and footnote 221 at page 259
|
||||
#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS)
|
||||
// [ See footnote 220 at page 257 and footnote 221 at page 259
|
||||
|
||||
// 7.18.2.1 Limits of exact-width integer types
|
||||
#define INT8_MIN ((int8_t)_I8_MIN)
|
||||
@ -171,15 +177,15 @@ typedef uint64_t uintmax_t;
|
||||
#define UINT_FAST64_MAX UINT64_MAX
|
||||
|
||||
// 7.18.2.4 Limits of integer types capable of holding object pointers
|
||||
#ifdef _WIN64 // [
|
||||
#ifdef _WIN64 // [
|
||||
# define INTPTR_MIN INT64_MIN
|
||||
# define INTPTR_MAX INT64_MAX
|
||||
# define UINTPTR_MAX UINT64_MAX
|
||||
#else // _WIN64 ][
|
||||
#else // _WIN64 ][
|
||||
# define INTPTR_MIN INT32_MIN
|
||||
# define INTPTR_MAX INT32_MAX
|
||||
# define UINTPTR_MAX UINT32_MAX
|
||||
#endif // _WIN64 ]
|
||||
#endif // _WIN64 ]
|
||||
|
||||
// 7.18.2.5 Limits of greatest-width integer types
|
||||
#define INTMAX_MIN INT64_MIN
|
||||
@ -188,7 +194,7 @@ typedef uint64_t uintmax_t;
|
||||
|
||||
// 7.18.3 Limits of other integer types
|
||||
|
||||
#ifdef _WIN64 // [
|
||||
#ifdef _WIN64 // [
|
||||
# define PTRDIFF_MIN _I64_MIN
|
||||
# define PTRDIFF_MAX _I64_MAX
|
||||
#else // _WIN64 ][
|
||||
@ -199,31 +205,31 @@ typedef uint64_t uintmax_t;
|
||||
#define SIG_ATOMIC_MIN INT_MIN
|
||||
#define SIG_ATOMIC_MAX INT_MAX
|
||||
|
||||
#ifndef SIZE_MAX // [
|
||||
# ifdef _WIN64 // [
|
||||
#ifndef SIZE_MAX // [
|
||||
# ifdef _WIN64 // [
|
||||
# define SIZE_MAX _UI64_MAX
|
||||
# else // _WIN64 ][
|
||||
# else // _WIN64 ][
|
||||
# define SIZE_MAX _UI32_MAX
|
||||
# endif // _WIN64 ]
|
||||
#endif // SIZE_MAX ]
|
||||
# endif // _WIN64 ]
|
||||
#endif // SIZE_MAX ]
|
||||
|
||||
// WCHAR_MIN and WCHAR_MAX are also defined in <wchar.h>
|
||||
#ifndef WCHAR_MIN // [
|
||||
#ifndef WCHAR_MIN // [
|
||||
# define WCHAR_MIN 0
|
||||
#endif // WCHAR_MIN ]
|
||||
#ifndef WCHAR_MAX // [
|
||||
#ifndef WCHAR_MAX // [
|
||||
# define WCHAR_MAX _UI16_MAX
|
||||
#endif // WCHAR_MAX ]
|
||||
|
||||
#define WINT_MIN 0
|
||||
#define WINT_MAX _UI16_MAX
|
||||
|
||||
#endif // __STDC_LIMIT_MACROS ]
|
||||
|
||||
#endif // __STDC_LIMIT_MACROS ]
|
||||
|
||||
// 7.18.4 Limits of other integer types
|
||||
|
||||
#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) // [ See footnote 224 at page 260
|
||||
#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS)
|
||||
// [ See footnote 224 at page 260
|
||||
|
||||
// 7.18.4.1 Macros for minimum-width integer constants
|
||||
|
||||
@ -241,7 +247,9 @@ typedef uint64_t uintmax_t;
|
||||
#define INTMAX_C INT64_C
|
||||
#define UINTMAX_C UINT64_C
|
||||
|
||||
#endif // __STDC_CONSTANT_MACROS ]
|
||||
#endif // __STDC_CONSTANT_MACROS ]
|
||||
|
||||
#endif // _MSC_STDINT_H_ ]
|
||||
#endif // __GNUC__
|
||||
|
||||
#endif // _MSC_STDINT_H_ ]
|
||||
#endif // VS2008_INCLUDE_STDINT_H_
|
@ -1,20 +1,25 @@
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
// File: version.h
|
||||
// Description: define version identifier for Windows
|
||||
// Author: zdenop@gmail.com
|
||||
// Created: Fri Nov 19 21:05:06 CET 2010
|
||||
//
|
||||
// (C) Copyright 2010, Google Inc.
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
|
||||
#define VERSION "3.01"
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
// File: version.h
|
||||
// Description: define version identifier for Windows
|
||||
// Author: zdenop@gmail.com
|
||||
// Created: Fri Nov 19 21:05:06 CET 2010
|
||||
//
|
||||
// (C) Copyright 2010, Google Inc.
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef VS2008_PORT_VERSION_H_
|
||||
#define VS2008_PORT_VERSION_H_
|
||||
|
||||
#define VERSION "3.01"
|
||||
|
||||
#endif // VS2008_PORT_VERSION_H_
|
||||
|
Loading…
Reference in New Issue
Block a user