Skip to content

Commit 1f22358

Browse files
authored
Merge pull request #664 from htacg/issue-663
Issue 663 - fixes for Haiku port - closes #663
2 parents 8731f25 + 28be79d commit 1f22358

9 files changed

+41
-17
lines changed

include/tidyplatform.h

+17-2
Original file line numberDiff line numberDiff line change
@@ -315,6 +315,15 @@ extern "C" {
315315
# endif
316316
#endif
317317

318+
/* === Convenience defines for Haiku platforms === */
319+
320+
#if defined(__HAIKU__)
321+
# define HAIKU
322+
# ifndef PLATFORM_NAME
323+
# define PLATFORM_NAME "Haiku"
324+
# endif
325+
#endif
326+
318327
/* === Convenience defines for Cygwin platforms === */
319328

320329
#if defined(__CYGWIN__)
@@ -428,7 +437,7 @@ extern "C" {
428437
#if PRESERVE_FILE_TIMES
429438

430439
# ifndef HAS_FUTIME
431-
# if defined(CYGWIN_OS) || defined(BE_OS) || defined(OS2_OS) || defined(HPUX_OS) || defined(SOLARIS_OS) || defined(LINUX_OS) || defined(BSD_BASED_OS) || defined(MAC_OS) || defined(__MSL__) || defined(IRIX_OS) || defined(AIX_OS) || defined(__BORLANDC__) || defined(__GLIBC__)
440+
# if defined(CYGWIN_OS) || defined(BE_OS) || defined(OS2_OS) || defined(HPUX_OS) || defined(SOLARIS_OS) || defined(LINUX_OS) || defined(BSD_BASED_OS) || defined(MAC_OS) || defined(__MSL__) || defined(IRIX_OS) || defined(AIX_OS) || defined(__BORLANDC__) || defined(__GLIBC__) || defined(__HAIKU__)
432441
# define HAS_FUTIME 0
433442
# else
434443
# define HAS_FUTIME 1
@@ -456,6 +465,12 @@ extern "C" {
456465
# include <utime.h>
457466
# endif
458467

468+
#if defined(__HAIKU__)
469+
#ifndef va_copy
470+
#define va_copy(dest, src) (dest = src)
471+
#endif
472+
#endif
473+
459474
/* MS Windows needs _ prefix for Unix file functions.
460475
Not required by Metrowerks Standard Library (MSL).
461476
@@ -549,7 +564,7 @@ extern "C" {
549564
# include <sys/types.h>
550565
#endif
551566

552-
#if !defined(HPUX_OS) && !defined(CYGWIN_OS) && !defined(MAC_OS_X) && !defined(BE_OS) && !defined(SOLARIS_OS) && !defined(BSD_BASED_OS) && !defined(OSF_OS) && !defined(IRIX_OS) && !defined(AIX_OS) && !defined(LINUX_OS)
567+
#if !defined(HPUX_OS) && !defined(CYGWIN_OS) && !defined(MAC_OS_X) && !defined(BE_OS) && !defined(SOLARIS_OS) && !defined(BSD_BASED_OS) && !defined(OSF_OS) && !defined(IRIX_OS) && !defined(AIX_OS) && !defined(LINUX_OS) && !defined(__HAIKU__)
553568
# undef uint
554569
typedef unsigned int uint;
555570
#endif

src/language.c

+2-1
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,13 @@
2222

2323
/**
2424
* This structure type provides universal access to all of Tidy's strings.
25+
* Note limit of 8, to be changed as more added...
2526
*/
2627
typedef struct {
2728
Bool manually_set;
2829
languageDefinition *currentLanguage;
2930
languageDefinition *fallbackLanguage;
30-
languageDefinition *languages[];
31+
languageDefinition *languages[8];
3132
} tidyLanguagesType;
3233

3334

src/language_en_gb.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#ifndef language_en_gb_h
1+
#ifndef language_en_gb_h
22
#define language_en_gb_h
33
/*
44
* language_en_gb.h
@@ -180,3 +180,4 @@ static languageDefinition language_en_gb = { whichPluralForm_en_gb, {
180180

181181

182182
#endif /* language_en_gb_h */
183+

src/language_es.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#ifndef language_es_h
1+
#ifndef language_es_h
22
#define language_es_h
33
/*
44
* language_es.h
@@ -131,3 +131,4 @@ static languageDefinition language_es = { whichPluralForm_es, {
131131

132132

133133
#endif /* language_es_h */
134+

src/language_es_mx.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#ifndef language_es_mx_h
1+
#ifndef language_es_mx_h
22
#define language_es_mx_h
33
/*
44
* language_es_mx.h
@@ -76,3 +76,4 @@ static languageDefinition language_es_mx = { whichPluralForm_es_mx, {
7676

7777

7878
#endif /* language_es_mx_h */
79+

src/language_fr.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#ifndef language_fr_h
1+
#ifndef language_fr_h
22
#define language_fr_h
33
/*
44
* language_fr.h
@@ -1172,3 +1172,4 @@ static languageDefinition language_fr = { whichPluralForm_fr, {
11721172

11731173

11741174
#endif /* language_fr_h */
1175+

src/language_pt_br.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#ifndef language_pt_br_h
1+
#ifndef language_pt_br_h
22
#define language_pt_br_h
33
/*
44
* language_pt_br.h
@@ -1294,3 +1294,4 @@ static languageDefinition language_pt_br = { whichPluralForm_pt_br, {
12941294

12951295

12961296
#endif /* language_pt_br_h */
1297+

src/language_zh_cn.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#ifndef language_zh_cn_h
1+
#ifndef language_zh_cn_h
22
#define language_zh_cn_h
33
/*
44
* language_zh_cn.h
@@ -78,3 +78,4 @@ static languageDefinition language_zh_cn = { whichPluralForm_zh_cn, {
7878

7979

8080
#endif /* language_zh_cn_h */
81+

src/tidylib.c

+10-8
Original file line numberDiff line numberDiff line change
@@ -1135,14 +1135,16 @@ int tidyDocParseFile( TidyDocImpl* doc, ctmbstr filnam )
11351135
fin = fopen( filnam, "rb" );
11361136

11371137
#if PRESERVE_FILE_TIMES
1138-
struct stat sbuf = {0};
1139-
/* get last modified time */
1140-
TidyClearMemory( &doc->filetimes, sizeof(doc->filetimes) );
1141-
if ( fin && cfgBool(doc,TidyKeepFileTimes) &&
1142-
fstat(fileno(fin), &sbuf) != -1 )
11431138
{
1144-
doc->filetimes.actime = sbuf.st_atime;
1145-
doc->filetimes.modtime = sbuf.st_mtime;
1139+
struct stat sbuf = { 0 };
1140+
/* get last modified time */
1141+
TidyClearMemory(&doc->filetimes, sizeof(doc->filetimes));
1142+
if (fin && cfgBool(doc, TidyKeepFileTimes) &&
1143+
fstat(fileno(fin), &sbuf) != -1)
1144+
{
1145+
doc->filetimes.actime = sbuf.st_atime;
1146+
doc->filetimes.modtime = sbuf.st_mtime;
1147+
}
11461148
}
11471149
#endif
11481150

@@ -1436,8 +1438,8 @@ int TY_(DocParseStream)( TidyDocImpl* doc, StreamIn* in )
14361438
Bool xmlIn = cfgBool( doc, TidyXmlTags );
14371439
TidyConfigChangeCallback callback = doc->pConfigChangeCallback;
14381440

1439-
doc->pConfigChangeCallback = NULL;
14401441
int bomEnc;
1442+
doc->pConfigChangeCallback = NULL;
14411443

14421444
assert( doc != NULL && in != NULL );
14431445
assert( doc->docIn == NULL );

0 commit comments

Comments
 (0)