Package init
This commit is contained in:
parent
8acb33f006
commit
082fbdd27c
36
README.en.md
36
README.en.md
@ -1,36 +0,0 @@
|
|||||||
# ttmkfdir
|
|
||||||
|
|
||||||
#### Description
|
|
||||||
{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**}
|
|
||||||
|
|
||||||
#### Software Architecture
|
|
||||||
Software architecture description
|
|
||||||
|
|
||||||
#### Installation
|
|
||||||
|
|
||||||
1. xxxx
|
|
||||||
2. xxxx
|
|
||||||
3. xxxx
|
|
||||||
|
|
||||||
#### Instructions
|
|
||||||
|
|
||||||
1. xxxx
|
|
||||||
2. xxxx
|
|
||||||
3. xxxx
|
|
||||||
|
|
||||||
#### Contribution
|
|
||||||
|
|
||||||
1. Fork the repository
|
|
||||||
2. Create Feat_xxx branch
|
|
||||||
3. Commit your code
|
|
||||||
4. Create Pull Request
|
|
||||||
|
|
||||||
|
|
||||||
#### Gitee Feature
|
|
||||||
|
|
||||||
1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md
|
|
||||||
2. Gitee blog [blog.gitee.com](https://blog.gitee.com)
|
|
||||||
3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore)
|
|
||||||
4. The most valuable open source project [GVP](https://gitee.com/gvp)
|
|
||||||
5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help)
|
|
||||||
6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
|
|
||||||
39
README.md
39
README.md
@ -1,39 +0,0 @@
|
|||||||
# ttmkfdir
|
|
||||||
|
|
||||||
#### 介绍
|
|
||||||
{**以下是码云平台说明,您可以替换此简介**
|
|
||||||
码云是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN)。专为开发者提供稳定、高效、安全的云端软件开发协作平台
|
|
||||||
无论是个人、团队、或是企业,都能够用码云实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)}
|
|
||||||
|
|
||||||
#### 软件架构
|
|
||||||
软件架构说明
|
|
||||||
|
|
||||||
|
|
||||||
#### 安装教程
|
|
||||||
|
|
||||||
1. xxxx
|
|
||||||
2. xxxx
|
|
||||||
3. xxxx
|
|
||||||
|
|
||||||
#### 使用说明
|
|
||||||
|
|
||||||
1. xxxx
|
|
||||||
2. xxxx
|
|
||||||
3. xxxx
|
|
||||||
|
|
||||||
#### 参与贡献
|
|
||||||
|
|
||||||
1. Fork 本仓库
|
|
||||||
2. 新建 Feat_xxx 分支
|
|
||||||
3. 提交代码
|
|
||||||
4. 新建 Pull Request
|
|
||||||
|
|
||||||
|
|
||||||
#### 码云特技
|
|
||||||
|
|
||||||
1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
|
|
||||||
2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com)
|
|
||||||
3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目
|
|
||||||
4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目
|
|
||||||
5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
|
|
||||||
6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
|
|
||||||
11
ttmkfdir-3.0.9-bug434301.patch
Normal file
11
ttmkfdir-3.0.9-bug434301.patch
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
--- ttmkfdir-3.0.9/directory.cpp.bak 2008-02-27 10:18:52.000000000 +0800
|
||||||
|
+++ ttmkfdir-3.0.9/directory.cpp 2008-02-27 10:20:24.000000000 +0800
|
||||||
|
@@ -3,6 +3,8 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
+#include <string.h>
|
||||||
|
+#include <stdlib.h>
|
||||||
|
|
||||||
|
#include "directory.h"
|
||||||
|
|
||||||
11
ttmkfdir-3.0.9-cpp.patch
Normal file
11
ttmkfdir-3.0.9-cpp.patch
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
--- ttmkfdir-3.0.9/ttf.cpp.sopwith Thu Aug 7 12:49:08 2003
|
||||||
|
+++ ttmkfdir-3.0.9/ttf.cpp Thu Aug 7 12:50:01 2003
|
||||||
|
@@ -239,7 +239,7 @@
|
||||||
|
for (i = 0; i < n; i++) {
|
||||||
|
if ((fterror = FT_Get_Sfnt_Name (face, i, &NamePtr)) != FT_Err_Ok) {
|
||||||
|
std::cout << "Warning: Can't SFNT name : " << FileName << "(" << fterror << ")" << std::endl;
|
||||||
|
- return;
|
||||||
|
+ return NULL;
|
||||||
|
};
|
||||||
|
platform = NamePtr.platform_id;
|
||||||
|
encoding = NamePtr.encoding_id;
|
||||||
20
ttmkfdir-3.0.9-encoding-dir.patch
Normal file
20
ttmkfdir-3.0.9-encoding-dir.patch
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
--- ttmkfdir-3.0.9/ttmkfdir.cpp.Origin 2006-06-15 17:58:43.000000000 +0800
|
||||||
|
+++ ttmkfdir-3.0.9/ttmkfdir.cpp 2006-06-15 17:59:07.000000000 +0800
|
||||||
|
@@ -16,7 +16,7 @@
|
||||||
|
|
||||||
|
cerr << "This Program is (C) Joerg Pommnitz, 2000" << endl;
|
||||||
|
cerr << "Usage: " << program << " [OPTION]" << endl;
|
||||||
|
- cerr << "-e, --encoding\t\tname of the encoding directory file, default is \"/usr/X11R6/lib/X11/fonts/encodings/encodings.dir\"" << endl;
|
||||||
|
+ cerr << "-e, --encoding\t\tname of the encoding directory file, default is \"/usr/share/X11/fonts/encodings/encodings.dir\"" << endl;
|
||||||
|
cerr << "-o, --output\t\tname of the destination file, default is \"fonts.scale\"" << endl;
|
||||||
|
cerr << "-d, --font-dir\t\tname of the TrueType font directory, default is \".\"" << endl;
|
||||||
|
cerr << "-f, --default-foundry\tname of the default font foundry, default is \"misc\"" << endl;
|
||||||
|
@@ -32,7 +32,7 @@
|
||||||
|
void
|
||||||
|
ParseCommandline (int argc, char *argv[])
|
||||||
|
{
|
||||||
|
- cmdline::instance()->AddOption (new Commandline::Option ("encoding", 'e', "/usr/X11R6/lib/X11/fonts/encodings/encodings.dir"));
|
||||||
|
+ cmdline::instance()->AddOption (new Commandline::Option ("encoding", 'e', "/usr/share/X11/fonts/encodings/encodings.dir"));
|
||||||
|
cmdline::instance()->AddOption (new Commandline::Option ("output", 'o', "fonts.scale"));
|
||||||
|
cmdline::instance()->AddOption (new Commandline::Option ("font-dir", 'd', "."));
|
||||||
|
cmdline::instance()->AddOption (new Commandline::Option ("default-foundry", 'f', "misc"));
|
||||||
10
ttmkfdir-3.0.9-fedora-ldflags.patch
Normal file
10
ttmkfdir-3.0.9-fedora-ldflags.patch
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
--- ttmkfdir-3.0.9.old/Makefile 2018-03-07 16:47:47.102558995 +0530
|
||||||
|
+++ ttmkfdir-3.0.9/Makefile 2018-03-07 16:57:46.484386555 +0530
|
||||||
|
@@ -29,6 +29,7 @@
|
||||||
|
CXX=g++
|
||||||
|
CXXFLAGS=-Wall -pedantic $(FREETYPE_INCL) $(DEBUG) $(OPTFLAGS)
|
||||||
|
LDFLAGS=$(FREETYPE_LIB) $(DEBUG) -lz
|
||||||
|
+override LDFLAGS += $(RPM_LD_FLAGS)
|
||||||
|
|
||||||
|
DESTDIR=
|
||||||
|
PREFIX=/usr
|
||||||
79
ttmkfdir-3.0.9-fix-crash.patch
Normal file
79
ttmkfdir-3.0.9-fix-crash.patch
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
--- ttmkfdir-3.0.9.orig/encoding.l 2003-01-08 14:25:25.000000000 +0900
|
||||||
|
+++ ttmkfdir-3.0.9/encoding.l 2005-08-03 19:24:22.000000000 +0900
|
||||||
|
@@ -21,6 +21,19 @@
|
||||||
|
|
||||||
|
static Encoding *cur_enc;
|
||||||
|
static NumericMapping *cur_map;
|
||||||
|
+static int is_created_map = 0;
|
||||||
|
+
|
||||||
|
+static void
|
||||||
|
+create_mapping(void)
|
||||||
|
+{
|
||||||
|
+ cur_map = new NumericMapping (cur_enc->size,
|
||||||
|
+ TT_PLATFORM_MICROSOFT,
|
||||||
|
+ TT_MS_ID_UNICODE_CS);
|
||||||
|
+
|
||||||
|
+ cur_enc->enc_size = 0;
|
||||||
|
+ cur_enc->start_code = 0xffff;
|
||||||
|
+ is_created_map = 1;
|
||||||
|
+}
|
||||||
|
|
||||||
|
%}
|
||||||
|
|
||||||
|
@@ -67,12 +80,6 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
<INSIDE_ENC_BLOCK>STARTMAPPING{WHITESPACES}unicode {
|
||||||
|
- cur_map = new NumericMapping (cur_enc->size,
|
||||||
|
- TT_PLATFORM_MICROSOFT,
|
||||||
|
- TT_MS_ID_UNICODE_CS);
|
||||||
|
-
|
||||||
|
- cur_enc->enc_size = 0;
|
||||||
|
- cur_enc->start_code = 0xffff;
|
||||||
|
BEGIN(INSIDE_MAP_BLOCK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -107,6 +114,12 @@
|
||||||
|
i2 = i1;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ /* avoid a crash issue */
|
||||||
|
+ if (cur_enc->size < i2)
|
||||||
|
+ cur_enc->size = i2;
|
||||||
|
+ if (!is_created_map)
|
||||||
|
+ create_mapping();
|
||||||
|
+
|
||||||
|
/* now mark all the unassigned codes */
|
||||||
|
for (long i = i1; i <= i2; i++) {
|
||||||
|
(*cur_map)[i] = -1;
|
||||||
|
@@ -114,10 +127,14 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
<INSIDE_MAP_BLOCK>{NUMBER}({WHITESPACES}{NUMBER}){0,2} {
|
||||||
|
- int numbers[3], i = 0, start_range, end_range, target, res;
|
||||||
|
+ unsigned int start_range;
|
||||||
|
+ int numbers[3], i = 0, end_range, target, res;
|
||||||
|
char *startptr;
|
||||||
|
char *endptr = yytext;
|
||||||
|
|
||||||
|
+ if (!is_created_map)
|
||||||
|
+ create_mapping();
|
||||||
|
+
|
||||||
|
for (i = 0;;i++) {
|
||||||
|
startptr = endptr;
|
||||||
|
res = std::strtol (startptr, &endptr, 0);
|
||||||
|
@@ -150,9 +167,14 @@
|
||||||
|
|
||||||
|
|
||||||
|
<INSIDE_MAP_BLOCK>ENDMAPPING {
|
||||||
|
+ /* it may not happens but to be safe */
|
||||||
|
+ if (!is_created_map)
|
||||||
|
+ create_mapping();
|
||||||
|
+
|
||||||
|
cur_enc->AddMapping (cur_map);
|
||||||
|
dest.insert (std::make_pair(cur_map->cmapkey(), cur_enc));;
|
||||||
|
BEGIN(INSIDE_ENC_BLOCK);
|
||||||
|
+ is_created_map = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
<INSIDE_UNKNOWN_MAP>ENDMAPPING {
|
||||||
44
ttmkfdir-3.0.9-fix-freetype217.patch
Normal file
44
ttmkfdir-3.0.9-fix-freetype217.patch
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
--- ttmkfdir-3.0.9/encoding.cpp.orig 2002-12-09 17:52:48.000000000 +0900
|
||||||
|
+++ ttmkfdir-3.0.9/encoding.cpp 2004-01-31 18:16:46.617118976 +0900
|
||||||
|
@@ -4,7 +4,6 @@
|
||||||
|
#include <cstring>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <zlib.h>
|
||||||
|
-#include "freetype/freetype.h"
|
||||||
|
|
||||||
|
#include "ttmkfdir.h"
|
||||||
|
#include "encoding.h"
|
||||||
|
--- ttmkfdir-3.0.9/encoding.h.orig 2002-12-09 17:52:48.000000000 +0900
|
||||||
|
+++ ttmkfdir-3.0.9/encoding.h 2004-01-31 18:19:18.600014064 +0900
|
||||||
|
@@ -6,7 +6,8 @@
|
||||||
|
#include <map>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
-#include "freetype/freetype.h"
|
||||||
|
+#include <ft2build.h>
|
||||||
|
+#include FT_FREETYPE_H
|
||||||
|
|
||||||
|
#include "util.h"
|
||||||
|
|
||||||
|
--- ttmkfdir-3.0.9/ttf.h.orig 2003-01-08 14:25:25.000000000 +0900
|
||||||
|
+++ ttmkfdir-3.0.9/ttf.h 2004-01-31 18:32:53.333155800 +0900
|
||||||
|
@@ -3,12 +3,13 @@
|
||||||
|
#define TTF_H__
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
-#include "freetype/freetype.h"
|
||||||
|
-#include "freetype/tttables.h"
|
||||||
|
-#include "freetype/ftsnames.h"
|
||||||
|
-#include "freetype/ttnameid.h"
|
||||||
|
-#include "freetype/fterrors.h"
|
||||||
|
-#include "freetype/ftmodule.h"
|
||||||
|
+#include <ft2build.h>
|
||||||
|
+#include FT_FREETYPE_H
|
||||||
|
+#include FT_SFNT_NAMES_H
|
||||||
|
+#include FT_TRUETYPE_TABLES_H
|
||||||
|
+#include FT_TRUETYPE_IDS_H
|
||||||
|
+#include FT_ERRORS_H
|
||||||
|
+#include FT_MODULE_H
|
||||||
|
|
||||||
|
#include "util.h"
|
||||||
|
#include "encoding.h"
|
||||||
107
ttmkfdir-3.0.9-font-scale.patch
Normal file
107
ttmkfdir-3.0.9-font-scale.patch
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
diff -ruN -x '*o' -x '*~' -x ttmkfdir -x parser.cpp ttmkfdir-3.0.9.orig/ttf.cpp ttmkfdir-3.0.9/ttf.cpp
|
||||||
|
--- ttmkfdir-3.0.9.orig/ttf.cpp 2006-11-29 15:46:55.000000000 +0900
|
||||||
|
+++ ttmkfdir-3.0.9/ttf.cpp 2006-11-29 17:21:40.000000000 +0900
|
||||||
|
@@ -70,7 +70,6 @@
|
||||||
|
Face::Face (const std::string &filename)
|
||||||
|
{
|
||||||
|
FT_Error fterror;
|
||||||
|
- string header_enc("-");
|
||||||
|
int face_id, face_count;
|
||||||
|
|
||||||
|
string::size_type pos = filename.rfind("/");
|
||||||
|
@@ -98,29 +97,13 @@
|
||||||
|
if ((post = (TT_Postscript *) FT_Get_Sfnt_Table(face, ft_sfnt_post)) == 0){
|
||||||
|
std::cout << "Warning: Can't get POST table : " << FileName << "(" << FT_Err_Post_Table_Missing << ")" << std::endl;
|
||||||
|
return;
|
||||||
|
- }
|
||||||
|
+ }
|
||||||
|
|
||||||
|
if ((os2 = (TT_OS2 *) FT_Get_Sfnt_Table(face, ft_sfnt_os2)) == 0) {
|
||||||
|
std::cout << "Warning: Can't get OS2 table : " << FileName << "(" << FT_Err_Table_Missing << ")" << std::endl;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
- for (int j = 0; j < 32; j++) {
|
||||||
|
- switch (os2->ulCodePageRange1 & (1 << j)) {
|
||||||
|
- case TT_CODEPAGE_RANGE_932: /* Japanese */
|
||||||
|
- header_enc = "ji";
|
||||||
|
- break;
|
||||||
|
- case TT_CODEPAGE_RANGE_936: /* Simplified Chinese */
|
||||||
|
- header_enc = "gb";
|
||||||
|
- break;
|
||||||
|
- case TT_CODEPAGE_RANGE_949: /* Korean Wansung */
|
||||||
|
- header_enc = "ks";
|
||||||
|
- break;
|
||||||
|
- case TT_CODEPAGE_RANGE_950: /* Traditional Chinese */
|
||||||
|
- header_enc = "big";
|
||||||
|
- break;
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
/*
|
||||||
|
* Iterate over all cmap entries.
|
||||||
|
*/
|
||||||
|
@@ -148,25 +131,50 @@
|
||||||
|
*/
|
||||||
|
typedef Encodings_t::const_iterator MI;
|
||||||
|
std::pair<MI, MI> bounds = Encodings::instance()->equal_range (key);
|
||||||
|
+ bool need_non_cjk_encoding = true;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* then look whether each of these encodings is present in this cmap.
|
||||||
|
*/
|
||||||
|
- for (Encodings_t::const_iterator i = bounds.first; i != bounds.second; i++) {
|
||||||
|
- if (MappingPresent (cmapidx,
|
||||||
|
- i->second->mappings[key],
|
||||||
|
- i->second->enc_size,
|
||||||
|
- i->second->start_code,
|
||||||
|
- (header_enc.compare("-")?((i->second->names[0].find(header_enc) != string::npos)?1:0):1)
|
||||||
|
- )) {
|
||||||
|
- /*
|
||||||
|
- * if the mapping is present, add all xlfd names for this mapping to the
|
||||||
|
- * list of available font names.
|
||||||
|
- */
|
||||||
|
- for (unsigned int k = 0; k < i->second->names.size (); k++) {
|
||||||
|
- add_entries (i->second->names[k],face_id);
|
||||||
|
+ for (int j = 0; j < 32; j++) {
|
||||||
|
+ string header_enc("-");
|
||||||
|
+
|
||||||
|
+ switch (os2->ulCodePageRange1 & (1 << j)) {
|
||||||
|
+ case TT_CODEPAGE_RANGE_932: /* Japanese */
|
||||||
|
+ header_enc = "ji";
|
||||||
|
+ break;
|
||||||
|
+ case TT_CODEPAGE_RANGE_936: /* Simplified Chinese */
|
||||||
|
+ header_enc = "gb";
|
||||||
|
+ break;
|
||||||
|
+ case TT_CODEPAGE_RANGE_949: /* Korean Wansung */
|
||||||
|
+ header_enc = "ks";
|
||||||
|
+ break;
|
||||||
|
+ case TT_CODEPAGE_RANGE_950: /* Traditional Chinese */
|
||||||
|
+ header_enc = "big";
|
||||||
|
+ break;
|
||||||
|
+ default:
|
||||||
|
+ if (need_non_cjk_encoding)
|
||||||
|
+ need_non_cjk_encoding = false;
|
||||||
|
+ else
|
||||||
|
+ continue;
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+ for (Encodings_t::const_iterator i = bounds.first; i != bounds.second; i++) {
|
||||||
|
+ if (MappingPresent (cmapidx,
|
||||||
|
+ i->second->mappings[key],
|
||||||
|
+ i->second->enc_size,
|
||||||
|
+ i->second->start_code,
|
||||||
|
+ (header_enc.compare("-")?((i->second->names[0].find(header_enc) != string::npos)?1:0):1)
|
||||||
|
+ )) {
|
||||||
|
+ /*
|
||||||
|
+ * if the mapping is present, add all xlfd names for this mapping to the
|
||||||
|
+ * list of available font names.
|
||||||
|
+ */
|
||||||
|
+ for (unsigned int k = 0; k < i->second->names.size (); k++) {
|
||||||
|
+ add_entries (i->second->names[k],face_id);
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
- }
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
13
ttmkfdir-3.0.9-freetype-header-fix2.patch
Normal file
13
ttmkfdir-3.0.9-freetype-header-fix2.patch
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
diff -rup ttmkfdir-3.0.9/ttf.cpp ttmkfdir-3.0.9_mod/ttf.cpp
|
||||||
|
--- ttmkfdir-3.0.9/ttf.cpp 2016-02-23 19:41:10.602175570 +0530
|
||||||
|
+++ ttmkfdir-3.0.9_mod/ttf.cpp 2016-02-23 19:40:19.104015463 +0530
|
||||||
|
@@ -3,7 +3,8 @@
|
||||||
|
#include <cctype>
|
||||||
|
#include <cstring>
|
||||||
|
|
||||||
|
-#include "freetype/tttables.h"
|
||||||
|
+#include <ft2build.h>
|
||||||
|
+#include FT_TRUETYPE_TABLES_H
|
||||||
|
#include "ttmkfdir.h"
|
||||||
|
#include "ttf.h"
|
||||||
|
#include "ttos2val.h"
|
||||||
56
ttmkfdir-3.0.9-namespace.patch
Normal file
56
ttmkfdir-3.0.9-namespace.patch
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
*** ttmkfdir-3.0.9/ttf.h.ORIG 2004-03-10 13:40:47.149814008 -0700
|
||||||
|
--- ttmkfdir-3.0.9/ttf.h 2004-03-10 13:40:50.571293864 -0700
|
||||||
|
*************** namespace ttf {
|
||||||
|
*** 50,56 ****
|
||||||
|
TT_Postscript *post;
|
||||||
|
std::string FileName;
|
||||||
|
};
|
||||||
|
! };
|
||||||
|
|
||||||
|
#endif /* TTF_H__ */
|
||||||
|
|
||||||
|
--- 50,56 ----
|
||||||
|
TT_Postscript *post;
|
||||||
|
std::string FileName;
|
||||||
|
};
|
||||||
|
! }
|
||||||
|
|
||||||
|
#endif /* TTF_H__ */
|
||||||
|
|
||||||
|
*** ttmkfdir-3.0.9/util.h.ORIG 2004-03-10 13:40:19.872960720 -0700
|
||||||
|
--- ttmkfdir-3.0.9/util.h 2004-03-10 13:40:34.059803992 -0700
|
||||||
|
*************** namespace util {
|
||||||
|
*** 17,22 ****
|
||||||
|
Singleton (void) {};
|
||||||
|
~Singleton (void) {};
|
||||||
|
};
|
||||||
|
! };
|
||||||
|
|
||||||
|
#endif // TTMKFDIRUTIL_H__
|
||||||
|
--- 17,22 ----
|
||||||
|
Singleton (void) {};
|
||||||
|
~Singleton (void) {};
|
||||||
|
};
|
||||||
|
! }
|
||||||
|
|
||||||
|
#endif // TTMKFDIRUTIL_H__
|
||||||
|
*** ttmkfdir-3.0.9/builtin.cpp.ORIG 2004-03-10 13:41:47.089701760 -0700
|
||||||
|
--- ttmkfdir-3.0.9/builtin.cpp 2004-03-10 13:41:51.327057584 -0700
|
||||||
|
*************** namespace {
|
||||||
|
*** 600,606 ****
|
||||||
|
0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff
|
||||||
|
};
|
||||||
|
|
||||||
|
! };
|
||||||
|
|
||||||
|
Encoding::BuiltinEncoding_t Encoding::builtin_encodings[] = {
|
||||||
|
{256,191,32,{TT_PLATFORM_MICROSOFT,TT_MS_ID_UNICODE_CS,iso8859_1},{"iso8859-1",}},
|
||||||
|
--- 600,606 ----
|
||||||
|
0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff
|
||||||
|
};
|
||||||
|
|
||||||
|
! }
|
||||||
|
|
||||||
|
Encoding::BuiltinEncoding_t Encoding::builtin_encodings[] = {
|
||||||
|
{256,191,32,{TT_PLATFORM_MICROSOFT,TT_MS_ID_UNICODE_CS,iso8859_1},{"iso8859-1",}},
|
||||||
|
|
||||||
20
ttmkfdir-3.0.9-segfaults.patch
Normal file
20
ttmkfdir-3.0.9-segfaults.patch
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
--- ttmkfdir-3.0.9/directory.cpp.back 2005-10-08 14:25:37.839328408 +0800
|
||||||
|
+++ ttmkfdir-3.0.9/directory.cpp 2005-10-08 14:26:00.021956136 +0800
|
||||||
|
@@ -1,5 +1,6 @@
|
||||||
|
#include <cctype>
|
||||||
|
#include <dirent.h>
|
||||||
|
+#include <stdio.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
@@ -13,6 +14,10 @@
|
||||||
|
directory::scan (const std::string &dir)
|
||||||
|
{
|
||||||
|
DIR *ttfdir = opendir(dir.c_str ());
|
||||||
|
+ if (!ttfdir) {
|
||||||
|
+ printf("%s is not exist!\n", dir.c_str ());
|
||||||
|
+ exit(-1);
|
||||||
|
+ }
|
||||||
|
|
||||||
|
this->clear ();
|
||||||
|
dirpath = dir;
|
||||||
75
ttmkfdir-3.0.9-warnings.patch
Normal file
75
ttmkfdir-3.0.9-warnings.patch
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
--- ttmkfdir-3.0.9/encoding.l~ 2005-08-03 19:33:07.000000000 +0900
|
||||||
|
+++ ttmkfdir-3.0.9/encoding.l 2005-08-03 21:52:15.000000000 +0900
|
||||||
|
@@ -115,7 +115,7 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
/* avoid a crash issue */
|
||||||
|
- if (cur_enc->size < i2)
|
||||||
|
+ if ((int) (cur_enc->size) < i2)
|
||||||
|
cur_enc->size = i2;
|
||||||
|
if (!is_created_map)
|
||||||
|
create_mapping();
|
||||||
|
@@ -127,8 +127,8 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
<INSIDE_MAP_BLOCK>{NUMBER}({WHITESPACES}{NUMBER}){0,2} {
|
||||||
|
- unsigned int start_range;
|
||||||
|
- int numbers[3], i = 0, end_range, target, res;
|
||||||
|
+ unsigned int start_range = 0, i = 0, end_range = 0;
|
||||||
|
+ int numbers[3], target = 0, res;
|
||||||
|
char *startptr;
|
||||||
|
char *endptr = yytext;
|
||||||
|
|
||||||
|
--- ttmkfdir-3.0.9/commandline.cpp~ 2002-12-09 17:29:11.000000000 +0900
|
||||||
|
+++ ttmkfdir-3.0.9/commandline.cpp 2005-08-03 21:12:40.000000000 +0900
|
||||||
|
@@ -1,6 +1,8 @@
|
||||||
|
#include <cstdlib>
|
||||||
|
|
||||||
|
+#ifndef _GNU_SOURCE
|
||||||
|
#define _GNU_SOURCE
|
||||||
|
+#endif
|
||||||
|
#include <getopt.h>
|
||||||
|
|
||||||
|
#include "commandline.h"
|
||||||
|
--- ttmkfdir-3.0.9/ttmkfdir.cpp~ 2003-01-20 08:33:11.000000000 +0900
|
||||||
|
+++ ttmkfdir-3.0.9/ttmkfdir.cpp 2005-08-03 21:08:43.000000000 +0900
|
||||||
|
@@ -76,7 +76,7 @@
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
- fprintf (output, "%d\n", fontdir.size ());
|
||||||
|
+ fprintf (output, "%d\n", (int)(fontdir.size ()));
|
||||||
|
|
||||||
|
for (vector<string>::const_iterator i = fontdir.begin (); i != fontdir.end (); i++) {
|
||||||
|
fprintf (output, "%s\n", i->c_str ());
|
||||||
|
--- ttmkfdir-3.0.9/ttf.cpp~ 2005-08-03 19:33:07.000000000 +0900
|
||||||
|
+++ ttmkfdir-3.0.9/ttf.cpp 2005-08-03 21:31:48.000000000 +0900
|
||||||
|
@@ -533,7 +533,7 @@
|
||||||
|
const char *
|
||||||
|
Face::Weight (void) const
|
||||||
|
{
|
||||||
|
- const char *result;
|
||||||
|
+ const char *result = NULL;
|
||||||
|
|
||||||
|
if (cmdline::instance()->option ("panose") && ((result = PanoseWeight ()) != 0)) {
|
||||||
|
return result;
|
||||||
|
@@ -614,7 +614,7 @@
|
||||||
|
const char *
|
||||||
|
Face::Width (void) const
|
||||||
|
{
|
||||||
|
- const char *result;
|
||||||
|
+ const char *result = NULL;
|
||||||
|
|
||||||
|
if (cmdline::instance()->option ("panose") && ((result = PanoseWidth ()) != 0)) {
|
||||||
|
return result;
|
||||||
|
--- ttmkfdir-3.0.9/encoding.cpp~ 2005-08-03 19:33:07.000000000 +0900
|
||||||
|
+++ ttmkfdir-3.0.9/encoding.cpp 2005-08-03 21:31:44.000000000 +0900
|
||||||
|
@@ -121,7 +121,7 @@
|
||||||
|
|
||||||
|
NumericMapping *m = new NumericMapping (size, b->mapdata.platform, b->mapdata.encoding);
|
||||||
|
|
||||||
|
- for (int i = 0; i < size; i++)
|
||||||
|
+ for (unsigned int i = 0; i < size; i++)
|
||||||
|
(*m)[i] = b->mapdata.mappingtable[i];
|
||||||
|
|
||||||
|
AddMapping (m);
|
||||||
80
ttmkfdir-3.0.9-zlib.patch
Normal file
80
ttmkfdir-3.0.9-zlib.patch
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
--- ttmkfdir-3.0.9/encoding.cpp 2002-12-09 03:52:48.000000000 -0500
|
||||||
|
+++ ttmkfdir-3.0.9/encoding.cpp 2003-09-12 12:32:29.000000000 -0400
|
||||||
|
@@ -2,6 +2,8 @@
|
||||||
|
#include <cstdio>
|
||||||
|
#include <cstdlib>
|
||||||
|
#include <cstring>
|
||||||
|
+#include <unistd.h>
|
||||||
|
+#include <zlib.h>
|
||||||
|
#include "freetype/freetype.h"
|
||||||
|
|
||||||
|
#include "ttmkfdir.h"
|
||||||
|
@@ -32,9 +34,16 @@
|
||||||
|
NextFile (FILE *f, char *name)
|
||||||
|
{
|
||||||
|
char file_name [1024];
|
||||||
|
- char command[1024];
|
||||||
|
+ char line_buf [1024];
|
||||||
|
+ char tmp_file_name[] = "/tmp/ttmkfdir_XXXXXX";
|
||||||
|
+ char inbuf[300000];
|
||||||
|
+ FILE *od;
|
||||||
|
+ gzFile fd;
|
||||||
|
+ int rvalue, tmpfd;
|
||||||
|
|
||||||
|
- if (fscanf (f, "%*s %[^\n]\n", file_name) == 1) {
|
||||||
|
+ if (fgets (line_buf, sizeof(line_buf), f) != NULL) {
|
||||||
|
+
|
||||||
|
+ sscanf (line_buf, "%*s %[^\n]\n", file_name);
|
||||||
|
|
||||||
|
if (file_name[0] == '/') {
|
||||||
|
name[0] = 0;
|
||||||
|
@@ -44,9 +53,25 @@
|
||||||
|
|
||||||
|
strcat (name, file_name);
|
||||||
|
|
||||||
|
- sprintf (command, "exec %s < %s", (toupper(name[strlen (name) - 1]) == 'Z')
|
||||||
|
- ? "gzip -d" : "cat", name);
|
||||||
|
- return popen (command, "r");
|
||||||
|
+ bzero(inbuf, sizeof(inbuf));
|
||||||
|
+
|
||||||
|
+ fd = gzopen (name,"rb");
|
||||||
|
+ rvalue = gzread (fd, inbuf, sizeof(inbuf));
|
||||||
|
+
|
||||||
|
+ tmpfd = mkstemp (tmp_file_name);
|
||||||
|
+ if (tmpfd == -1) {
|
||||||
|
+ return 0;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ od = fdopen (tmpfd,"w");
|
||||||
|
+ fputs (inbuf, od);
|
||||||
|
+ fflush (od);
|
||||||
|
+ fclose (od);
|
||||||
|
+
|
||||||
|
+ od = fopen (tmp_file_name,"r");
|
||||||
|
+ unlink (tmp_file_name);
|
||||||
|
+ return od;
|
||||||
|
+
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
@@ -75,7 +100,7 @@
|
||||||
|
yyrestart (input);
|
||||||
|
yylex (name, *this);
|
||||||
|
|
||||||
|
- pclose (input);
|
||||||
|
+ fclose (input);
|
||||||
|
}
|
||||||
|
|
||||||
|
fclose (f);
|
||||||
|
diff -uNr ttmkfdir-3.0.9.orig/Makefile ttmkfdir-3.0.9/Makefile
|
||||||
|
--- ttmkfdir-3.0.9.orig/Makefile 2003-08-21 17:43:13.000000000 +1000
|
||||||
|
+++ ttmkfdir-3.0.9/Makefile 2003-08-21 17:40:16.000000000 +1000
|
||||||
|
@@ -28,7 +28,7 @@
|
||||||
|
DEBUG=-ggdb
|
||||||
|
CXX=g++
|
||||||
|
CXXFLAGS=-Wall -pedantic $(FREETYPE_INCL) $(DEBUG) $(OPTFLAGS)
|
||||||
|
-LDFLAGS=$(FREETYPE_LIB) $(DEBUG)
|
||||||
|
+LDFLAGS=$(FREETYPE_LIB) $(DEBUG) -lz
|
||||||
|
|
||||||
|
DESTDIR=
|
||||||
|
PREFIX=/usr
|
||||||
BIN
ttmkfdir-3.0.9.tar.bz2
Normal file
BIN
ttmkfdir-3.0.9.tar.bz2
Normal file
Binary file not shown.
68
ttmkfdir.1
Normal file
68
ttmkfdir.1
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
.TH TTMKFDIR 1 "March 28, 2013"
|
||||||
|
.SH NAME
|
||||||
|
\fBttmkfdir\fR\ - Utility to create fonts.scale files for truetype fonts
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.B ttmkfdir
|
||||||
|
.RB [OPTION]
|
||||||
|
.SH DESCRIPTION
|
||||||
|
.PP
|
||||||
|
Originally written by Joerg Pommnitz, ttmkfdir is a tool to create valid and complete fonts.scale file from TrueType fonts. It is very useful when you plan to use a TrueType enabled font server that is based on the X11R6 sample implementation (xfsft for instance). Great care has been taken to correctly identify the encodings that a given TrueType font supports.
|
||||||
|
|
||||||
|
The ttmkfdir comes with Red Hat Linux has experienced quite some modifications or improvements, include:
|
||||||
|
|
||||||
|
\fR\- migration to FreeType 2 library
|
||||||
|
.TP
|
||||||
|
\fR\- more accurate checking for big font files
|
||||||
|
.TP
|
||||||
|
\fR\- support for both two X core font backends, Freetype and XTT
|
||||||
|
.TP
|
||||||
|
\fR\- Truetype collection(ttc) font file support
|
||||||
|
.TP
|
||||||
|
\fR\- additional CJK friendly features
|
||||||
|
.TP
|
||||||
|
\fR\- bug fixes
|
||||||
|
|
||||||
|
|
||||||
|
.SH OPTIONS
|
||||||
|
Here is the detailed usage of Red Hat version of ttmkfdir.
|
||||||
|
.TP
|
||||||
|
.B -h, --help
|
||||||
|
It shows the menus and combo box in iok UI
|
||||||
|
.TP
|
||||||
|
.B -e, --encoding <encodings.dir>
|
||||||
|
ttmkfdir is doing its job by checking each TrueType font file against fontenc layer, please refer www.xfree86.org/current/fonts.html for details. Default encodings.dir file is /usr/X11R6/lib/X11/fonts/encodings/encodings.dir
|
||||||
|
.TP
|
||||||
|
.B -o, --output
|
||||||
|
Specify output, default is fonts.scale in the current directory
|
||||||
|
.TP
|
||||||
|
.B -d, --font-dir
|
||||||
|
Specify TrueType font directory, default is the current directory
|
||||||
|
.TP
|
||||||
|
.B -f, --default-foundry
|
||||||
|
Specify name of the default font foundry, default is "misc"
|
||||||
|
.TP
|
||||||
|
.B -m, --max-missing
|
||||||
|
Specify the maximum number of missing characters per encoding, default is 5. This option applies to the encoding that has less than 256 codepoint definitions.
|
||||||
|
.TP
|
||||||
|
.B -a, --max-missing-percentage
|
||||||
|
Specify the maximum percentage of missing characters per encoding, default is 2. This option applies to the encoding that has more than 256 codepoint definitions.
|
||||||
|
.TP
|
||||||
|
.B -b, --font-backend
|
||||||
|
For X FreeType backend, use value "1", for XTT backend use value "2", default value is 1. When you have TrueType Collection font(.ttc), you need to use this option.
|
||||||
|
.TP
|
||||||
|
.B -x, --additional-entries
|
||||||
|
Additional entries mean those extra TTCaps stuff for XTT backend, mainly for bold and italic font support. Or for FreeType backend, because FreeType still doesn't support bold and italic font, ttmkfdir can generate extra "dummy" XLFDs, so applications who asking those fonts won't complain.
|
||||||
|
|
||||||
|
Default value is "0" means off,otherwise use "1" to switch it on.
|
||||||
|
.TP
|
||||||
|
.B -c, --completeness
|
||||||
|
use less strict completeness tests for encoding tables
|
||||||
|
.TP
|
||||||
|
.B -p, --panose
|
||||||
|
use panose information
|
||||||
|
|
||||||
|
.SH AUTHOR
|
||||||
|
Yu Shao <yshao@redhat.com> and Pravin Satpute <psatpute@redhat.com>
|
||||||
|
.PP
|
||||||
|
.SH LICENSE
|
||||||
|
GNU Library General Public License
|
||||||
51
ttmkfdir.spec
Normal file
51
ttmkfdir.spec
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
Summary: Utility to create fonts.scale files for truetype fonts
|
||||||
|
Name: ttmkfdir
|
||||||
|
Version: 3.0.9
|
||||||
|
Release: 56
|
||||||
|
License: LGPLv2+
|
||||||
|
Source0: %{name}-%{version}.tar.bz2
|
||||||
|
Source1: ttmkfdir.1
|
||||||
|
Patch: ttmkfdir-3.0.9-cpp.patch
|
||||||
|
Patch1: ttmkfdir-3.0.9-zlib.patch
|
||||||
|
Patch2: ttmkfdir-3.0.9-fix-freetype217.patch
|
||||||
|
Patch3: ttmkfdir-3.0.9-namespace.patch
|
||||||
|
Patch4: ttmkfdir-3.0.9-fix-crash.patch
|
||||||
|
Patch5: ttmkfdir-3.0.9-warnings.patch
|
||||||
|
Patch6: ttmkfdir-3.0.9-segfaults.patch
|
||||||
|
Patch7: ttmkfdir-3.0.9-encoding-dir.patch
|
||||||
|
Patch8: ttmkfdir-3.0.9-font-scale.patch
|
||||||
|
Patch9: ttmkfdir-3.0.9-bug434301.patch
|
||||||
|
Patch10: ttmkfdir-3.0.9-freetype-header-fix2.patch
|
||||||
|
Patch11: ttmkfdir-3.0.9-fedora-ldflags.patch
|
||||||
|
|
||||||
|
BuildRequires: freetype-devel >= 2.0 flex libtool
|
||||||
|
BuildRequires: bzip2-devel zlib-devel gcc-c++
|
||||||
|
|
||||||
|
%description
|
||||||
|
ttmkfdir is a utility used to create fonts.scale files in
|
||||||
|
TrueType font directories in order to prepare them for use
|
||||||
|
by the font server.
|
||||||
|
|
||||||
|
%package_help
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%autosetup -p1
|
||||||
|
|
||||||
|
%build
|
||||||
|
%make_build OPTFLAGS="$RPM_OPT_FLAGS"
|
||||||
|
|
||||||
|
%install
|
||||||
|
%make_install
|
||||||
|
install -d $RPM_BUILD_ROOT/%{_mandir}/man1/
|
||||||
|
cp -p %{SOURCE1} $RPM_BUILD_ROOT/%{_mandir}/man1/
|
||||||
|
|
||||||
|
%files
|
||||||
|
%{_bindir}/ttmkfdir
|
||||||
|
|
||||||
|
%files help
|
||||||
|
%doc README
|
||||||
|
%{_mandir}/man1/
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Tue Dec 3 2019 mengxian <mengxian@huawei.com> - 3.0.9-56
|
||||||
|
- Package init
|
||||||
Loading…
x
Reference in New Issue
Block a user