Dear Michael,
Shame - I guess this missed the 3.4.3 release deadline (unless we can
get the patch, and triple review it soon); but we can get it in for
3.4.4 no doubt - and clearly pushing to master is easy enough.
I enclose the patch. It is a simple patch in that it removes the existing bug fix patching from the
graphite source, creates a new patch that only patches what libo needs to modify in the code,
simplifies the libo specific makefile for graphite and updates the file references.
I assume 1.0.1 is mostly just bug fixes Martin ?
Well we went up to 1.0.2 to fix a windows build bug, but yes. And there are some memory savings and
general all round goodness improvements inside the graphite engine. There is no actual code change
within libo. One particular improvement is in bidi mirroring which it would be nice to have in
3.4.3 but not esesential. It should also go into master.
I don't really know how to submit a patch across 2 git repos, but here it is.
Yours,
Martin
diff --git a/ooo.lst.in b/ooo.lst.in
index 3652a39..cbf1fb6 100644
--- a/ooo.lst.in
+++ b/ooo.lst.in
@@ -79,7 +79,7 @@ debc62758716a169df9f62e6ab2bc634-zlib-1.2.3.tar.gz
0ff7d225d087793c8c2c680d77aac3e7-mdds_0.5.3.tar.bz2
f02578f5218f217a9f20e9c30e119c6a-boost_1_44_0.tar.bz2
9ed97fce60a9a65852402248a6659492-hunspell-1.3.1.tar.gz
-0625a7d661f899a8ce263fc8a9879108-graphite2-0.9.2.tgz
+3115c721f5cb7c464f01c2dddccfaba6-graphite2-1.0.2.tgz
http://download.go-oo.org/extern
185d60944ea767075d27247c3162b3bc-unowinreg.dll
b4cae0700aa1c2aef7eb7f345365e6f1-translate-toolkit-1.8.1.tar.bz2
diff --git a/graphite/graphite2-0.9.2.patch b/graphite/graphite2-0.9.2.patch
deleted file mode 100644
index a775c1f..0000000
--- a/graphite/graphite2-0.9.2.patch
+++ /dev/null
@@ -1,453 +0,0 @@
-diff -r 5369cdd12120 CMakeLists.txt
---- misc/build/graphite2-0.9.2/CMakeLists.txt Sat Feb 12 22:54:16 2011 +0700
-+++ misc/build/graphite2-0.9.2/CMakeLists.txt Fri Feb 18 16:05:40 2011 +0700
-@@ -61,7 +61,7 @@
- add_subdirectory(gr2fonttest)
- add_subdirectory(tests)
- add_subdirectory(doc)
--set(version 0.0.0)
-+set(version 2.0.0)
- set(libdir ${CMAKE_INSTALL_PREFIX}/lib)
- set(includedir ${CMAKE_INSTALL_PREFIX}/include)
-
-diff -r 5369cdd12120 gr2fonttest/gr2FontTest.cpp
---- misc/build/graphite2-0.9.2/gr2fonttest/gr2FontTest.cpp Sat Feb 12 22:54:16 2011 +0700
-+++ misc/build/graphite2-0.9.2/gr2fonttest/gr2FontTest.cpp Fri Feb 18 16:05:40 2011 +0700
-@@ -758,13 +758,11 @@
- float advanceWidth = gr_seg_advance_X(pSeg);
- fprintf(log, "Advance width = %6.1f\n", advanceWidth);
- unsigned int numchar = gr_seg_n_cinfo(pSeg);
-- gr_uint32 *firsts = (gr_uint32 *)malloc(numchar * sizeof(gr_uint32));
-- gr_uint32 *lasts = (gr_uint32 *)malloc(numchar * sizeof(gr_uint32));
-- gr_seg_char_slots(pSeg, firsts, lasts, 0, 0);
- fprintf(log, "\nChar\tUnicode\tBefore\tAfter\n");
- for (unsigned int j = 0; j < numchar; j++)
- {
-- fprintf(log, "%d\t%04X\t%d\t%d\n", j, gr_cinfo_unicode_char(gr_seg_cinfo(pSeg, j)),
firsts[j], lasts[j]);
-+ const gr_char_info *c = gr_seg_cinfo(pSeg, j);
-+ fprintf(log, "%d\t%04X\t%d\t%d\n", j, gr_cinfo_unicode_char(c), gr_cinfo_before(c),
gr_cinfo_after(c));
- }
- free(map);
- gr_seg_destroy(pSeg);
-diff -r 5369cdd12120 include/graphite2/Segment.h
---- misc/build/graphite2-0.9.2/include/graphite2/Segment.h Sat Feb 12 22:54:16 2011 +0700
-+++ misc/build/graphite2-0.9.2/include/graphite2/Segment.h Fri Feb 18 16:05:40 2011 +0700
-@@ -135,6 +135,20 @@
- */
- GR2_API int gr_cinfo_break_weight(const gr_char_info* p/*not NULL*/);
-
-+/** Returns the slot index that after this character is after in the slot stream
-+ *
-+ * @return after slot index between 0 and gr_seg_n_slots()
-+ * @param p Pointer to charinfo to return information on.
-+ */
-+GR2_API int gr_cinfo_after(const gr_char_info* p/*not NULL*/);
-+
-+/** Returns the slot index that before this character is before in the slot stream
-+ *
-+ * @return before slot index between 0 and gr_seg_n_slots()
-+ * @param p Pointer to charinfo to return information on.
-+ */
-+GR2_API int gr_cinfo_before(const gr_char_info* p/*not NULL*/);
-+
- /** Returns the number of unicode characters in a string.
- *
- * @return number of characters in the string
-@@ -205,22 +219,6 @@
- */
- GR2_API const gr_slot* gr_seg_last_slot(gr_segment* pSeg/*not NULL*/); //may give a base slot
or a slot which is attached to another
-
--/** Calculates the underlying character to glyph associations.
-- *
-- * @param pSeg Pointer to the segment we want information on.
-- * @param begins An array of gr_seg_n_cinfo integers giving slot index for each
-- * charinfo. The value corresponds to which slot a cursor would be before
-- * if an underlying cursor were before the charinfo at this index.
-- * @param ends An array of gr_seg_n_cinfo integers giving the slot index for each
-- * charinfo. The value at an index corresponds to which slot a cursor would
-- * be after if an underlying cursor were after the charinfo at the index.
-- * @param sbegins An array of gr_seg_n_cinfo gr_slot * corresponding to the gr_slot at
-- * index given by begins. The pointer to the array may be NULL.
-- * @param sends An array of gr_seg_n_cinfo gr_slot * corresponding to the gr_slot at the
-- * index given by ends. The pointer to the array may be NULL.
-- */
--GR2_API void gr_seg_char_slots(const gr_segment *pSeg, gr_uint32 *begins, gr_uint32 *ends,
gr_slot **sbegins, gr_slot **sends);
--
- /** Returns the next slot along in the segment.
- *
- * Slots are held in a linked list. This returns the next in the linked list. The slot
-@@ -306,6 +304,13 @@
- */
- GR2_API int gr_slot_after(const gr_slot* p/*not NULL*/);
-
-+/** Returns the index of this slot in the segment
-+ *
-+ * Returns the index given to this slot during final positioning. This corresponds to the value
returned br gr_cinfo_before()
-+ * and gr_cinfo_after()
-+ */
-+GR2_API unsigned int gr_slot_index(const gr_slot* p/*not NULL*/);
-+
- /** Return a slot attribute value
- *
- * Given a slot and an attribute along with a possible subattribute, return the
-diff -r 5369cdd12120 src/CMakeLists.txt
---- misc/build/graphite2-0.9.2/src/CMakeLists.txt Sat Feb 12 22:54:16 2011 +0700
-+++ misc/build/graphite2-0.9.2/src/CMakeLists.txt Fri Feb 18 16:05:40 2011 +0700
-@@ -25,7 +25,7 @@
- INCLUDE(CheckTypeSize)
- INCLUDE(CheckCXXSourceCompiles)
-
--set(GRAPHITE_API_MAJOR 1)
-+set(GRAPHITE_API_MAJOR 2)
- set(GRAPHITE_API_MINOR 0)
- set(GRAPHITE_API_AGE 0)
- set(GRAPHITE_SO_VERSION ${GRAPHITE_API_MAJOR}.${GRAPHITE_API_MINOR}.${GRAPHITE_API_AGE})
-diff -r 5369cdd12120 src/CharInfo.h
---- misc/build/graphite2-0.9.2/src/CharInfo.h Sat Feb 12 22:54:16 2011 +0700
-+++ misc/build/graphite2-0.9.2/src/CharInfo.h Fri Feb 18 16:05:40 2011 +0700
-@@ -29,16 +29,23 @@
- {
-
- public:
-+ CharInfo() : m_before(-1), m_after(0) {}
- void init(int cid) { m_char = cid; }
- unsigned int unicodeChar() const { return m_char; }
- void feats(int offset) { m_featureid = offset; }
- int fid() const { return m_featureid; }
- int breakWeight() const { return m_break; }
- void breakWeight(int val) { m_break = val; }
-+ int after() const { return m_after; }
-+ void after(int val) { m_after = val; }
-+ int before() const { return m_before; }
-+ void before(int val) { m_before = val; }
-
- CLASS_NEW_DELETE
- private:
- int m_char; // Unicode character from character stream
-+ int m_before; // slot index before us, comes before
-+ int m_after; // slot index after us, comes after
- uint8 m_featureid; // index into features list in the segment
- int8 m_break; // breakweight coming from lb table
- };
-diff -r 5369cdd12120 src/Segment.cpp
---- misc/build/graphite2-0.9.2/src/Segment.cpp Sat Feb 12 22:54:16 2011 +0700
-+++ misc/build/graphite2-0.9.2/src/Segment.cpp Fri Feb 18 16:05:40 2011 +0700
-@@ -283,6 +283,7 @@
- {
- Position currpos;
- Slot *s, *ls = NULL;
-+ int iSlot = 0;
- float cMin = 0.;
- float clusterMin = 0.;
- Rect bbox;
-@@ -292,8 +293,16 @@
-
- if (m_dir & 1)
- {
-- for (s = iEnd; s && s != iStart->prev(); s = s->prev())
-+ for (s = iEnd, iSlot = m_numGlyphs - 1; s && s != iStart->prev(); s = s->prev(), --iSlot)
- {
-+ for (int j = s->before(); j <= s->after(); j++)
-+ {
-+ CharInfo *c = charinfo(j);
-+ if (c->before() == -1 || iSlot < c->before()) c->before(iSlot);
-+ if (c->after() < iSlot) c->after(iSlot);
-+ }
-+ s->index(iSlot);
-+
- if (s->isBase())
- {
- clusterMin = currpos.x;
-@@ -306,8 +315,16 @@
- }
- else
- {
-- for (s = iStart; s && s != iEnd->next(); s = s->next())
-+ for (s = iStart, iSlot = 0; s && s != iEnd->next(); s = s->next(), ++iSlot)
- {
-+ for (int j = s->before(); j <= s->after(); j++)
-+ {
-+ CharInfo *c = charinfo(j);
-+ if (c->before() == -1 || iSlot < c->before()) c->before(iSlot);
-+ if (c->after() < iSlot) c->after(iSlot);
-+ }
-+ s->index(iSlot);
-+
- if (s->isBase())
- {
- clusterMin = currpos.x;
-@@ -321,35 +338,6 @@
- if (iStart == m_first && iEnd == m_last) m_advance = currpos;
- }
-
--
--void Segment::getCharSlots(uint32 *begins, uint32 *ends, Slot **sbegins, Slot **sends) const
--{
-- Slot *s;
-- uint32 i;
-- if (!begins || !ends) return;
-- memset(begins, 0xFF, m_numCharinfo * sizeof(uint32));
-- memset(ends, 0, m_numCharinfo * sizeof(uint32));
--
-- for (s = m_first, i = 0; s; s = s->next(), i++)
-- {
-- for (int j = s->before(); j <= s->after(); j++)
-- {
-- assert(j >= 0);
-- assert(j < static_cast<int>(m_numCharinfo));
-- if (i < begins[j])
-- {
-- begins[j] = i;
-- if (sbegins) sbegins[j] = s;
-- }
-- if (i > ends[j])
-- {
-- ends[j] = i;
-- if (sends) sends[j] = s;
-- }
-- }
-- }
--}
--
- #ifndef DISABLE_TRACING
- void Segment::logSegment(gr_encform enc, const void* pStart, size_t nChars) const
- {
-diff -r 5369cdd12120 src/Segment.h
---- misc/build/graphite2-0.9.2/src/Segment.h Sat Feb 12 22:54:16 2011 +0700
-+++ misc/build/graphite2-0.9.2/src/Segment.h Fri Feb 18 16:05:40 2011 +0700
-@@ -118,7 +118,6 @@
- int defaultOriginal() const { return m_defaultOriginal; }
- const Face * getFace() const { return m_face; }
- const Features & getFeatures(unsigned int /*charIndex*/) { assert(m_feats.size() == 1);
return m_feats[0]; }
-- void getCharSlots(uint32 *begins, uint32 *ends, Slot **sbegins, Slot **sends) const;
-
- CLASS_NEW_DELETE
-
-diff -r 5369cdd12120 src/Slot.cpp
---- misc/build/graphite2-0.9.2/src/Slot.cpp Sat Feb 12 22:54:16 2011 +0700
-+++ misc/build/graphite2-0.9.2/src/Slot.cpp Fri Feb 18 16:05:40 2011 +0700
-@@ -188,15 +188,15 @@
- }
- }
-
--int Slot::getAttr(const Segment *seg, attrCode index, uint8 subindex) const
-+int Slot::getAttr(const Segment *seg, attrCode ind, uint8 subindex) const
- {
- if (!this) return 0;
-- if (index == gr_slatUserDefnV1)
-+ if (ind == gr_slatUserDefnV1)
- {
-- index = gr_slatUserDefn;
-+ ind = gr_slatUserDefn;
- subindex = 0;
- }
-- switch (index)
-+ switch (ind)
- {
- case gr_slatAdvX :
- return static_cast<int>(m_advance.x);
-@@ -259,15 +259,15 @@
- }
- }
-
--void Slot::setAttr(Segment *seg, attrCode index, uint8 subindex, int16 value, const SlotMap & map)
-+void Slot::setAttr(Segment *seg, attrCode ind, uint8 subindex, int16 value, const SlotMap & map)
- {
- if (!this) return;
-- if (index == gr_slatUserDefnV1)
-+ if (ind == gr_slatUserDefnV1)
- {
-- index = gr_slatUserDefn;
-+ ind = gr_slatUserDefn;
- subindex = 0;
- }
-- switch (index)
-+ switch (ind)
- {
- case gr_slatAdvX :
- m_advance = Position(value, m_advance.y);
-diff -r 5369cdd12120 src/Slot.h
---- misc/build/graphite2-0.9.2/src/Slot.h Sat Feb 12 22:54:16 2011 +0700
-+++ misc/build/graphite2-0.9.2/src/Slot.h Fri Feb 18 16:05:40 2011 +0700
-@@ -47,6 +47,8 @@
- Position advancePos() const { return m_advance; }
- int before() const { return m_before; }
- int after() const { return m_after; }
-+ uint32 index() const { return m_index; }
-+ void index(uint32 val) { m_index = val; }
-
- Slot();
- void set(const Slot & slot, int charOffset, uint8 numUserAttr);
-@@ -58,10 +60,10 @@
- void setGlyph(Segment *seg, uint16 glyphid, const GlyphFace * theGlyph = NULL);
- void setRealGid(uint16 realGid) { m_realglyphid = realGid; }
- void origin(const Position &pos) { m_position = pos + m_shift; }
-- void originate(int index) { m_original = index; }
-+ void originate(int ind) { m_original = ind; }
- int original() const { return m_original; }
-- void before(int index) { m_before = index; }
-- void after(int index) { m_after = index; }
-+ void before(int ind) { m_before = ind; }
-+ void after(int ind) { m_after = ind; }
- bool isBase() const { return (!m_parent); }
- void update(int numSlots, int numCharInfo, Position &relpos);
- Position finalise(const Segment* seg, const Font* font, Position* base, Rect* bbox, float*
cMin, uint8 attrLevel, float *clusterMin);
-@@ -75,8 +77,8 @@
- uint16 *userAttrs() { return m_userAttr; }
- void userAttrs(uint16 *p) { m_userAttr = p; }
- void markInsertBefore(bool state) { if (!state) m_flags |= SLOT_INSERT; else m_flags &=
~SLOT_INSERT; }
-- void setAttr(Segment* seg, attrCode index, uint8 subindex, int16 val, const SlotMap & map);
-- int getAttr(const Segment *seg, attrCode index, uint8 subindex) const;
-+ void setAttr(Segment* seg, attrCode ind, uint8 subindex, int16 val, const SlotMap & map);
-+ int getAttr(const Segment *seg, attrCode ind, uint8 subindex) const;
- void attachTo(Slot *ap) { m_parent = ap; }
- Slot *attachedTo() const { return m_parent; }
- Slot* firstChild() const { return m_child; }
-@@ -96,8 +98,9 @@
- unsigned short m_glyphid; // glyph id
- uint16 m_realglyphid;
- uint32 m_original; // charinfo that originated this slot (e.g. for feature values)
-- uint32 m_before; // charinfo index of before association
-- uint32 m_after; // charinfo index of after association
-+ uint32 m_before; // charinfo index of before association
-+ uint32 m_after; // charinfo index of after association
-+ uint32 m_index; // slot index given to this slot during finalising
- Slot *m_parent; // index to parent we are attached to
- Slot *m_child; // index to first child slot that attaches to us
- Slot *m_sibling; // index to next child that attaches to our parent
-diff -r 5369cdd12120 src/gr_char_info.cpp
---- misc/build/graphite2-0.9.2/src/gr_char_info.cpp Sat Feb 12 22:54:16 2011 +0700
-+++ misc/build/graphite2-0.9.2/src/gr_char_info.cpp Fri Feb 18 16:05:40 2011 +0700
-@@ -39,4 +39,16 @@
- return p->breakWeight();
- }
-
--} // extern "C"
-\ No newline at end of file
-+int gr_cinfo_after(const gr_char_info *p/*not NULL*/)
-+{
-+ assert(p);
-+ return p->after();
-+}
-+
-+int gr_cinfo_before(const gr_char_info *p/*not NULL*/)
-+{
-+ assert(p);
-+ return p->before();
-+}
-+
-+} // extern "C"
-diff -r 5369cdd12120 src/gr_segment.cpp
---- misc/build/graphite2-0.9.2/src/gr_segment.cpp Sat Feb 12 22:54:16 2011 +0700
-+++ misc/build/graphite2-0.9.2/src/gr_segment.cpp Fri Feb 18 16:05:40 2011 +0700
-@@ -162,11 +162,5 @@
- return static_cast<const gr_slot*>(pSeg->last());
- }
-
--void gr_seg_char_slots(const gr_segment *pSeg, gr_uint32 *begins, gr_uint32 *ends, gr_slot
**sbegins, gr_slot **sends)
--{
-- assert(pSeg && begins && ends);
-- pSeg->getCharSlots(begins, ends, reinterpret_cast<Slot**>(sbegins),
reinterpret_cast<Slot**>(sends));
--}
--
-
- } // extern "C"
-diff -r 5369cdd12120 src/gr_slot.cpp
---- misc/build/graphite2-0.9.2/src/gr_slot.cpp Sat Feb 12 22:54:16 2011 +0700
-+++ misc/build/graphite2-0.9.2/src/gr_slot.cpp Fri Feb 18 16:05:40 2011 +0700
-@@ -121,6 +121,12 @@
- return p->after();
- }
-
-+unsigned int gr_slot_index(const gr_slot *p/*not NULL*/)
-+{
-+ assert(p);
-+ return p->index();
-+}
-+
- int gr_slot_attr(const gr_slot* p/*not NULL*/, const gr_segment* pSeg/*not NULL*/, gr_attrCode
index, gr_uint8 subindex)
- {
- assert(p);
-diff current src/List.h
---- misc/build/graphite2-0.9.2/src/List.h Sat Feb 12 22:54:16 2011 +0700
-+++ misc/build/graphite2-0.9.2/src/List.h Fri Feb 18 16:05:40 2011 +0700
-@@ -51,6 +51,6 @@
- template <typename I>
- Vector(I first, const I last) : m_first(0), m_last(0), m_end(0) {
insert(begin(), first, last); }
-- ~Vector() { free(m_first); }
-+ ~Vector() { clear(); free(m_first); }
-
- iterator begin() { return m_first; }
- const_iterator begin() const { return m_first; }
-
---- misc/graphite2-0.9.2/src/Code.cpp 2011-02-12 16:54:16.000000000 +0100
-+++ misc/build/graphite2-0.9.2/src/Code.cpp 2011-03-11 11:28:11.700215286 +0100
-@@ -168,7 +168,7 @@
- face.getGlyphFaceCache()->numAttrs(),
- face.numFeatures(),
- {1,1,1,1,1,1,1,1,
-- 1,1,1,1,1,1,1,-1,
-+ 1,1,1,1,1,1,1,(uint8)-1,
- 1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,0,0,
- 0,0,0,0,0,0,0,0,
---- misc/graphite2-0.9.2/include/graphite2/Types.h 2011-02-12 16:54:16.000000000 +0100
-+++ misc/build/graphite2-0.9.2/include/graphite2/Types.h 2011-03-15 21:38:06.264788098 +0100
-@@ -36,7 +36,7 @@
- };
-
- // Definitions for library publicly exported symbols
--#if defined _WIN32 || defined __CYGWIN__
-+#if ( defined _WIN32 || defined __CYGWIN__ ) && !defined GR2_STATIC
- #ifdef GR2_EXPORTING
- #ifdef __GNUC__
- #define GR2_API __attribute__((dllexport))
-diff -r b3a86877ec68 src/Pass.cpp
---- misc/build/graphite2-0.9.2/src/Pass.cpp Wed May 11 09:34:52 2011 +0700
-+++ misc/build/graphite2-0.9.2/src/Pass.cpp Mon May 16 13:54:00 2011 +0700
-@@ -513,6 +513,7 @@
- bool Pass::testConstraint(const Rule &r, Machine & m) const
- {
- if (r.sort - r.preContext > (int)m.slotMap().size() - m.slotMap().context()) return false;
-+ if (m.slotMap().context() - r.preContext < 0) return false;
- if (!*r.constraint) return true;
- assert(r.constraint->constraint());
-
-@@ -527,6 +528,7 @@
- Machine::status_t status = Machine::finished;
- for (int n = r.sort; n && map; --n, ++map)
- {
-+ if (!*map) continue;
- const int32 ret = r.constraint->run(m, map, status);
- if (!ret || status != Machine::finished)
- {
-diff -r b3a86877ec68 src/Rule.h
---- misc/build/graphite2-0.9.2/src/Rule.h Wed May 11 09:34:52 2011 +0700
-+++ misc/build/graphite2-0.9.2/src/Rule.h Mon May 16 13:54:00 2011 +0700
-@@ -187,8 +187,9 @@
- // Merge the new sorted rules list into the current sorted result set.
- const RuleEntry * lre = begin(), * rre = state.rules;
- RuleEntry * out = m_rules + (m_begin == m_rules)*MAX_RULES;
-+ const RuleEntry * lrend = out + MAX_RULES;
- m_begin = out;
-- while (lre != end())
-+ while (lre != end() && out != lrend)
- {
- if (*lre < *rre) *out++ = *lre++;
- else if (*rre < *lre) { *out++ = *rre++; }
-@@ -196,12 +197,12 @@
-
- if (rre == state.rules_end)
- {
-- while (lre != end()) { *out++ = *lre++; }
-+ while (lre != end() && out != lrend) { *out++ = *lre++; }
- m_end = out;
- return;
- }
- }
-- while (rre != state.rules_end) { *out++ = *rre++; }
-+ while (rre != state.rules_end && out != lrend) { *out++ = *rre++; }
- m_end = out;
- }
-
-
diff --git a/graphite/graphite2.patch b/graphite/graphite2.patch
new file mode 100644
index 0000000..fcd486c
--- /dev/null
+++ b/graphite/graphite2.patch
@@ -0,0 +1,11 @@
+--- misc/graphite2-1.0.2/include/graphite2/Types.h 2011-02-12 16:54:16.000000000 +0100
++++ misc/build/graphite2-1.0.2/include/graphite2/Types.h 2011-03-15 21:38:06.264788098 +0100
+@@ -36,7 +36,7 @@
+ };
+
+ // Definitions for library publicly exported symbols
+-#if defined _WIN32 || defined __CYGWIN__
++#if ( defined _WIN32 || defined __CYGWIN__ ) && !defined GR2_STATIC
+ #ifdef GR2_EXPORTING
+ #ifdef __GNUC__
+ #define GR2_API __attribute__((dllexport))
diff --git a/graphite/graphite_make.patch b/graphite/graphite_make.patch
index f28ed6d..73b6205 100644
--- a/graphite/graphite_make.patch
+++ b/graphite/graphite_make.patch
@@ -1,6 +1,6 @@
---- misc/build/graphite2-0.9.2/src/makefile.mk Fri Mar 4 10:20:30 2011 +0700
-+++ misc/build/graphite2-0.9.2/src/makefile.mk Fri Mar 4 10:20:30 2011 +0700
-@@ -1,1 +1,54 @@
+--- misc/build/graphite2-1.0.2/src/makefile.mk Fri Mar 4 10:20:30 2011 +0700
++++ misc/build/graphite2-1.0.2/src/makefile.mk Fri Mar 4 10:20:30 2011 +0700
+@@ -1,1 +1,34 @@
-dummy
+EXTERNAL_WARNINGS_NOT_ERRORS := TRUE
+
@@ -18,37 +18,17 @@
+CFLAGS+=-O3 -DNDEBUG
+.ENDIF
+
-+VMACHINE=call
++_NS := GR2
++
++GR2_MACHINE=call
+.IF "$(COM)"=="GCC"
-+VMACHINE=direct
++GR2_MACHINE=direct
+CFLAGSCXX+=-fpermissive
+.ENDIF
+
-+SLOFILES= \
-+ $(SLO)/$(VMACHINE)_machine.obj \
-+ $(SLO)/gr_char_info.obj \
-+ $(SLO)/gr_features.obj \
-+ $(SLO)/gr_face.obj \
-+ $(SLO)/gr_font.obj \
-+ $(SLO)/gr_segment.obj \
-+ $(SLO)/gr_slot.obj \
-+ $(SLO)/CachedFace.obj \
-+ $(SLO)/CmapCache.obj \
-+ $(SLO)/Code.obj \
-+ $(SLO)/Face.obj \
-+ $(SLO)/FeatureMap.obj \
-+ $(SLO)/Font.obj \
-+ $(SLO)/GlyphFace.obj \
-+ $(SLO)/GlyphFaceCache.obj \
-+ $(SLO)/NameTable.obj \
-+ $(SLO)/Pass.obj \
-+ $(SLO)/SegCache.obj \
-+ $(SLO)/SegCacheEntry.obj \
-+ $(SLO)/SegCacheStore.obj \
-+ $(SLO)/Segment.obj \
-+ $(SLO)/Silf.obj \
-+ $(SLO)/Slot.obj \
-+ $(SLO)/TtfUtil.obj
++.INCLUDE : files.mk
++
++SLOFILES= $(foreach,i,$(GR2_SOURCES:b) $(SLO)/$i.obj)
+
+LIB1ARCHIV=$(LB)$/lib$(TARGET).a
+LIB1TARGET=$(SLB)$/$(TARGET).lib
@@ -56,4 +36,3 @@
+OUT2INC=../include/graphite2
+
+.INCLUDE : target.mk
-
diff --git a/graphite/makefile.mk b/graphite/makefile.mk
index e580b40..ab6bce7 100644
--- a/graphite/makefile.mk
+++ b/graphite/makefile.mk
@@ -45,9 +45,9 @@ all:
# --- Files --------------------------------------------------------
.IF "$(ENABLE_GRAPHITE)"=="TRUE"
-TARFILE_NAME=graphite2-0.9.2
-TARFILE_MD5=0625a7d661f899a8ce263fc8a9879108
-PATCH_FILES= graphite2-0.9.2.patch \
+TARFILE_NAME=graphite2-1.0.2
+TARFILE_MD5=3115c721f5cb7c464f01c2dddccfaba6
+PATCH_FILES= graphite2.patch \
graphite_make.patch
ADDITIONAL_FILES= \
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.