X7ROOT File Manager
Current Path:
/opt/alt/libicu65/usr/share/doc/alt-libicu65-devel/samples/layout
opt
/
alt
/
libicu65
/
usr
/
share
/
doc
/
alt-libicu65-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
(12.92 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