Fossil SCM

Fix "Corrupt line endings in cat/finfo on Windows with CR+LF files", reported on ML.

jan.nijtmans 2014-11-26 10:13 trunk
Commit f2fc37c063af9fae4fac87d754ba7448ddc7ef8c
1 file changed +10
+10
--- src/blob.c
+++ src/blob.c
@@ -24,10 +24,14 @@
2424
# include "miniz.c"
2525
#else
2626
# include <zlib.h>
2727
#endif
2828
#include "blob.h"
29
+#if defined(_WIN32)
30
+#include <fcntl.h>
31
+#include <io.h>
32
+#endif
2933
3034
#if INTERFACE
3135
/*
3236
** A Blob can hold a string or a binary object of arbitrary size. The
3337
** size changes as necessary.
@@ -823,12 +827,18 @@
823827
nWrote = blob_size(pBlob);
824828
#if defined(_WIN32)
825829
if( fossil_utf8_to_console(blob_buffer(pBlob), nWrote, 0) >= 0 ){
826830
return nWrote;
827831
}
832
+ fflush(stdout);
833
+ _setmode(_fileno(stdout), _O_BINARY);
828834
#endif
829835
fwrite(blob_buffer(pBlob), 1, nWrote, stdout);
836
+#if defined(_WIN32)
837
+ fflush(stdout);
838
+ _setmode(_fileno(stdout), _O_TEXT);
839
+#endif
830840
}else{
831841
file_mkfolder(zFilename, 1);
832842
out = fossil_fopen(zFilename, "wb");
833843
if( out==0 ){
834844
fossil_fatal_recursive("unable to open file \"%s\" for writing",
835845
--- src/blob.c
+++ src/blob.c
@@ -24,10 +24,14 @@
24 # include "miniz.c"
25 #else
26 # include <zlib.h>
27 #endif
28 #include "blob.h"
 
 
 
 
29
30 #if INTERFACE
31 /*
32 ** A Blob can hold a string or a binary object of arbitrary size. The
33 ** size changes as necessary.
@@ -823,12 +827,18 @@
823 nWrote = blob_size(pBlob);
824 #if defined(_WIN32)
825 if( fossil_utf8_to_console(blob_buffer(pBlob), nWrote, 0) >= 0 ){
826 return nWrote;
827 }
 
 
828 #endif
829 fwrite(blob_buffer(pBlob), 1, nWrote, stdout);
 
 
 
 
830 }else{
831 file_mkfolder(zFilename, 1);
832 out = fossil_fopen(zFilename, "wb");
833 if( out==0 ){
834 fossil_fatal_recursive("unable to open file \"%s\" for writing",
835
--- src/blob.c
+++ src/blob.c
@@ -24,10 +24,14 @@
24 # include "miniz.c"
25 #else
26 # include <zlib.h>
27 #endif
28 #include "blob.h"
29 #if defined(_WIN32)
30 #include <fcntl.h>
31 #include <io.h>
32 #endif
33
34 #if INTERFACE
35 /*
36 ** A Blob can hold a string or a binary object of arbitrary size. The
37 ** size changes as necessary.
@@ -823,12 +827,18 @@
827 nWrote = blob_size(pBlob);
828 #if defined(_WIN32)
829 if( fossil_utf8_to_console(blob_buffer(pBlob), nWrote, 0) >= 0 ){
830 return nWrote;
831 }
832 fflush(stdout);
833 _setmode(_fileno(stdout), _O_BINARY);
834 #endif
835 fwrite(blob_buffer(pBlob), 1, nWrote, stdout);
836 #if defined(_WIN32)
837 fflush(stdout);
838 _setmode(_fileno(stdout), _O_TEXT);
839 #endif
840 }else{
841 file_mkfolder(zFilename, 1);
842 out = fossil_fopen(zFilename, "wb");
843 if( out==0 ){
844 fossil_fatal_recursive("unable to open file \"%s\" for writing",
845

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button