X7ROOT File Manager
Current Path:
/opt/alt/libicu/usr/share/doc/alt-libicu-devel/samples/layout
opt
/
alt
/
libicu
/
usr
/
share
/
doc
/
alt-libicu-devel
/
samples
/
layout
/
??
..
??
FontMap.GDI
(426 B)
??
FontMap.Gnome
(392 B)
??
FontMap.cpp
(7.34 KB)
??
FontMap.h
(1.84 KB)
??
FontTableCache.cpp
(2.37 KB)
??
FontTableCache.h
(1.06 KB)
??
GDIFontInstance.cpp
(9.6 KB)
??
GDIFontInstance.h
(3.6 KB)
??
GDIFontMap.cpp
(1.32 KB)
??
GDIFontMap.h
(1.23 KB)
??
GDIGUISupport.cpp
(862 B)
??
GDIGUISupport.h
(949 B)
??
GUISupport.h
(890 B)
??
GnomeFontInstance.cpp
(5.43 KB)
??
GnomeFontInstance.h
(3.79 KB)
??
GnomeFontMap.cpp
(1.39 KB)
??
GnomeFontMap.h
(1.21 KB)
??
GnomeGUISupport.cpp
(1.05 KB)
??
GnomeGUISupport.h
(961 B)
??
LayoutSample.rc
(3.37 KB)
??
Makefile
(2.92 KB)
??
Makefile.in
(2.92 KB)
??
RenderingSurface.h
(1.09 KB)
??
Sample.txt
(1.66 KB)
??
ScriptCompositeFontInstance.cpp
(3.2 KB)
??
ScriptCompositeFontInstance.h
(6.15 KB)
??
Surface.cpp
(892 B)
??
Surface.h
(519 B)
??
UnicodeReader.cpp
(4.1 KB)
??
UnicodeReader.h
(999 B)
??
arraymem.h
(646 B)
??
cgnomelayout.c
(8.45 KB)
??
clayout.c
(9.82 KB)
??
cmaps.cpp
(5.3 KB)
??
cmaps.h
(2.06 KB)
??
gdiglue.cpp
(1.67 KB)
??
gdiglue.h
(983 B)
??
gnomeglue.cpp
(1.64 KB)
??
gnomeglue.h
(986 B)
??
gnomelayout.cpp
(8.5 KB)
??
gsupport.h
(370 B)
??
layout.cpp
(9.8 KB)
??
layout.sln
(1.17 KB)
??
layout.vcxproj
(13.15 KB)
??
layout.vcxproj.filters
(3.06 KB)
??
paragraph.cpp
(7.58 KB)
??
paragraph.h
(2.18 KB)
??
pflow.c
(9.27 KB)
??
pflow.h
(940 B)
??
readme.html
(7.32 KB)
??
resource.h
(907 B)
??
rsurface.cpp
(712 B)
??
rsurface.h
(528 B)
??
sfnt.h
(4.9 KB)
??
ucreader.cpp
(509 B)
??
ucreader.h
(422 B)
Editing: UnicodeReader.cpp
/* ****************************************************************************** * © 2016 and later: Unicode, Inc. and others. * * License & terms of use: http://www.unicode.org/copyright.html#License * ****************************************************************************** ****************************************************************************** * Copyright (C) 1998-2005, International Business Machines Corporation and * * others. All Rights Reserved. * ****************************************************************************** */ #include <errno.h> #include <stdio.h> #include <string.h> #include "unicode/utypes.h" #include "unicode/unistr.h" #include "layout/LETypes.h" #include "GUISupport.h" #include "UnicodeReader.h" #define BYTE(b) (((int) b) & 0xFF) /* * Read the text from a file. The text must start with a Unicode Byte * Order Mark (BOM) so that we know what order to read the bytes in. */ const UChar *UnicodeReader::readFile(const char *fileName, GUISupport *guiSupport, int32_t &charCount) { FILE *f; int32_t fileSize; UChar *charBuffer; char *byteBuffer; char startBytes[4] = {'\xA5', '\xA5', '\xA5', '\xA5'}; char errorMessage[128]; const char *cp = ""; int32_t signatureLength = 0; f = fopen(fileName, "rb"); if( f == NULL ) { sprintf(errorMessage,"Couldn't open %s: %s \n", fileName, strerror(errno)); guiSupport->postErrorMessage(errorMessage, "Text File Error"); return 0; } fseek(f, 0, SEEK_END); fileSize = ftell(f); fseek(f, 0, SEEK_SET); fread(startBytes, sizeof(char), 4, f); if (startBytes[0] == '\xFE' && startBytes[1] == '\xFF') { cp = "UTF-16BE"; signatureLength = 2; } else if (startBytes[0] == '\xFF' && startBytes[1] == '\xFE') { if (startBytes[2] == '\x00' && startBytes[3] == '\x00') { cp = "UTF-32LE"; signatureLength = 4; } else { cp = "UTF-16LE"; signatureLength = 2; } } else if (startBytes[0] == '\xEF' && startBytes[1] == '\xBB' && startBytes[2] == '\xBF') { cp = "UTF-8"; signatureLength = 3; } else if (startBytes[0] == '\x0E' && startBytes[1] == '\xFE' && startBytes[2] == '\xFF') { cp = "SCSU"; signatureLength = 3; } else if (startBytes[0] == '\x00' && startBytes[1] == '\x00' && startBytes[2] == '\xFE' && startBytes[3] == '\xFF') { cp = "UTF-32BE"; signatureLength = 4; } else { sprintf(errorMessage, "Couldn't detect the encoding of %s: (%2.2X, %2.2X, %2.2X, %2.2X)\n", fileName, BYTE(startBytes[0]), BYTE(startBytes[1]), BYTE(startBytes[2]), BYTE(startBytes[3])); guiSupport->postErrorMessage(errorMessage, "Text File Error"); fclose(f); return 0; } fileSize -= signatureLength; fseek(f, signatureLength, SEEK_SET); byteBuffer = new char[fileSize]; if(byteBuffer == 0) { sprintf(errorMessage,"Couldn't get memory for reading %s: %s \n", fileName, strerror(errno)); guiSupport->postErrorMessage(errorMessage, "Text File Error"); fclose(f); return 0; } fread(byteBuffer, sizeof(char), fileSize, f); if( ferror(f) ) { sprintf(errorMessage,"Couldn't read %s: %s \n", fileName, strerror(errno)); guiSupport->postErrorMessage(errorMessage, "Text File Error"); fclose(f); delete[] byteBuffer; return 0; } fclose(f); UnicodeString myText(byteBuffer, fileSize, cp); delete[] byteBuffer; charCount = myText.length(); charBuffer = LE_NEW_ARRAY(UChar, charCount + 1); if(charBuffer == 0) { sprintf(errorMessage,"Couldn't get memory for reading %s: %s \n", fileName, strerror(errno)); guiSupport->postErrorMessage(errorMessage, "Text File Error"); return 0; } myText.extract(0, myText.length(), charBuffer); charBuffer[charCount] = 0; // NULL terminate for easier reading in the debugger return charBuffer; }
Upload File
Create Folder