Behdad Esfahbod | 15 Oct 06:26 2014

harfbuzz: Branch 'master' - 2 commits

 src/hb-open-type-private.hh |   75 +++++++++++++++++++++++++++++++++++---------
 src/hb-private.hh           |   41 ------------------------
 src/hb-uniscribe.cc         |    6 +++
 3 files changed, 66 insertions(+), 56 deletions(-)

New commits:
commit 5a5640d8506ccfc99fd119e89e829170d1fea421
Author: Behdad Esfahbod <behdad@...>
Date:   Tue Oct 14 21:26:13 2014 -0700

    Move code around

diff --git a/src/hb-open-type-private.hh b/src/hb-open-type-private.hh
index 9807569..a58e790 100644
--- a/src/hb-open-type-private.hh
+++ b/src/hb-open-type-private.hh
 <at>  <at>  -552,57 +552,57  <at>  <at>  struct BEInt<Type, 2>
   private: uint8_t v[2];
 };
 template <typename Type>
-struct BEInt<Type, 4>
+struct BEInt<Type, 3>
 {
   public:
   inline void set (Type V)
   {
-    v[0] = (V >> 24) & 0xFF;
-    v[1] = (V >> 16) & 0xFF;
-    v[2] = (V >>  8) & 0xFF;
-    v[3] = (V      ) & 0xFF;
(Continue reading)

notifier | 15 Oct 05:11 2014

behdad/harfbuzz coverage decreased (-1.47%) on master

behdad/harfbuzz coverage decreased (-1.47%) for commit: Fix misc warnings Fixes https://github.com/behdad/harfbuzz/pull/51 by behdad
<div>
<a href="https://coveralls.io/builds/1336408"></a>
<a href="https://coveralls.io/repos/34061">behdad/harfbuzz</a>
<span class="negative">coverage decreased (-1.47%)</span>
for commit:
<span><a href="http://github.com/behdad/harfbuzz/commit/5c87120b8178566ddae99d9825edc24f9b87ea3d">Fix misc warnings

Fixes https://github.com/behdad/harfbuzz/pull/51</a></span>
by
<a href="https://github.com/behdad" class="committer">behdad</a>
</div>
Behdad Esfahbod | 15 Oct 05:07 2014

harfbuzz: Branch 'master'

 src/hb-buffer-deserialize-json.rl |    4 ++--
 src/hb-ot-layout-gsub-table.hh    |    2 +-
 src/hb-private.hh                 |    6 +++---
 3 files changed, 6 insertions(+), 6 deletions(-)

New commits:
commit 5c87120b8178566ddae99d9825edc24f9b87ea3d
Author: Behdad Esfahbod <behdad@...>
Date:   Tue Oct 14 20:07:31 2014 -0700

    Fix misc warnings

    Fixes https://github.com/behdad/harfbuzz/pull/51

diff --git a/src/hb-buffer-deserialize-json.rl b/src/hb-buffer-deserialize-json.rl
index 7351b2a..91b350f 100644
--- a/src/hb-buffer-deserialize-json.rl
+++ b/src/hb-buffer-deserialize-json.rl
 <at>  <at>  -117,8 +117,8  <at>  <at>  _hb_buffer_deserialize_glyphs_json (hb_buffer_t *buffer,

   const char *tok = NULL;
   int cs;
-  hb_glyph_info_t info;
-  hb_glyph_position_t pos;
+  hb_glyph_info_t info = {0};
+  hb_glyph_position_t pos = {0};
   %%{
     write init;
     write exec;
diff --git a/src/hb-ot-layout-gsub-table.hh b/src/hb-ot-layout-gsub-table.hh
index 2b421a9..7d6a5a7 100644
--- a/src/hb-ot-layout-gsub-table.hh
+++ b/src/hb-ot-layout-gsub-table.hh
 <at>  <at>  -200,7 +200,7  <at>  <at>  struct SingleSubst
     TRACE_SERIALIZE (this);
     if (unlikely (!c->extend_min (u.format))) return TRACE_RETURN (false);
     unsigned int format = 2;
-    int delta;
+    int delta = 0;
     if (num_glyphs) {
       format = 1;
       /* TODO(serialize) check for wrap-around */
diff --git a/src/hb-private.hh b/src/hb-private.hh
index cac021a..40d02ea 100644
--- a/src/hb-private.hh
+++ b/src/hb-private.hh
 <at>  <at>  -951,12 +951,12  <at>  <at>  hb_codepoint_parse (const char *s, unsigned int len, int base, hb_codepoint_t *o

 struct hb_options_t
 {
-  int initialized : 1;
-  int uniscribe_bug_compatible : 1;
+  unsigned int initialized : 1;
+  unsigned int uniscribe_bug_compatible : 1;
 };

 union hb_options_union_t {
-  int i;
+  unsigned int i;
   hb_options_t opts;
 };
 ASSERT_STATIC (sizeof (int) == sizeof (hb_options_union_t));
Bob Hallissy | 14 Oct 00:01 2014

feature "execution" order

I apologize in advance if this information is already available -- please just point me to it if so. Or, if it is straightforward to deduce this from the source code, I'm happy to try that -- but I took a brief look and wasn't successful so I'll need some coaching.

As we are aware, Uniscribe makes multiple passes over the text, more-or-less one pass per feature. In the Arabic spec, for example, Microsoft says:
All OTL processing is divided into a set of predefined features(described and illustrated in the Features section of this document). Each feature is applied, one by one, to the appropriate glyphs in the syllable and OTLS processes them. Uniscribe makes as many calls to the OTL Services as there are features.
and:
Regardless of the model an application chooses for supporting layout of complex scripts, Uniscribe requires a fixed order for executing features within a run of text to consistently obtain the proper basic form. This is achieved by calling features one-by-one in the standard order listed below.
and finally the list of features, in order: ccmp, isol, fina, medi, init, rlig, calt, liga, dlig, cswh, mset, curs, kern, mark, and mkmk.

(This is, of course, not what the OT spec says should be done, but that is water under the bridge and we are stuck with Uniscribe compatibility)

What I'd like to know is what is the equivalent sequence for Harfbuzz?  Presumably Harfbuzz implements additional features (clig, locl, rtla, rtlm and salt come to mind) and it would be helpful to know where they fall in the sequence. Also, where do things like Stylistic Sets (ssxx) and Character Variants (cvxx) fall in this list?

(And while this post is about Arabic, presumably other scripts have similar needs).

Thanks for any help you can provide,

Bob



<div>
    I apologize in advance if this information is already available --
    please just point me to it if so. Or, if it is straightforward to
    deduce this from the source code, I'm happy to try that -- but I
    took a brief look and wasn't successful so I'll need some coaching.<br><br>
    As we are aware, Uniscribe makes multiple passes over the text,
    more-or-less one pass per feature. In the <a href="http://www.microsoft.com/typography/OpenTypeDev/arabic/intro.htm">Arabic
      spec</a>, for example, Microsoft says:<br><blockquote type="cite">
<span>All
        OTL processing is divided into a set of predefined<span class="Apple-converted-space">&nbsp;</span></span>features<span>(described and
        illustrated in the Features section of this document). Each
        feature is applied, one by one, to the appropriate glyphs in the
        syllable and OTLS processes them. Uniscribe makes as many calls
        to the OTL Services as there are features.</span>
</blockquote>
    and:<br><blockquote type="cite"><span>Regardless
        of the model an application chooses for supporting layout of
        complex scripts, Uniscribe requires a fixed order for executing
        features within a run of text to consistently obtain the proper
        basic form. This is achieved by calling features one-by-one in
        the standard order listed below.</span></blockquote>
    and finally the list of features, in order: ccmp, isol, fina, medi,
    init, rlig, calt, liga, dlig, cswh, mset, curs, kern, mark, and mkmk.<br><br>
    (This is, of course, not what the OT spec says should be done, but
    that is water under the bridge and we are stuck with Uniscribe
    compatibility)<br><br>
    What I'd like to know is what is the equivalent sequence for
    Harfbuzz?&nbsp; Presumably Harfbuzz implements additional features (clig,
    locl, rtla, rtlm and salt come to mind) and it would be helpful to
    know where they fall in the sequence. Also, where do things like
    Stylistic Sets (ssxx) and Character Variants (cvxx) fall in this
    list?<br><br>
    (And while this post is about Arabic, presumably other scripts have
    similar needs).<br><br>
    Thanks for any help you can provide,<br><br>
    Bob<br><br><br><br>
</div>
Behdad Esfahbod | 10 Oct 03:12 2014

Discovering 'vert' feature

I'm helping Dominik port Chrome's vertical text support to HarfBuzz, and we've
hit a buggy font in Windows, that we need to work around.

"SimSun" on Windows 7, only declares the 'vert' feature under script 'hani'
(fine) language-system "CHN ".  No tag maps to "CHN ".  It's a font bug.

In Windows 8 family, someone **tried** to fix it.  They tweaked the features
until it worked for them.  So it has the 'vert' feature for script 'hani', now
in language system "ZHS " as well as "CHN ", but also for script 'latn' as
default language-system.  So now, if the itemizer failed to mark the correct
script, HarfBuzz tries 'latn' and gets the right feature.  But if it looks
under 'hani' but there's no language tag, it still fails.

So, I'm tempted to try this fixup: if feature is 'vert', and we found no
feature, then walk the feature list and enable the first feature found that
has tag 'vert'.

How does that sound?

https://github.com/behdad/harfbuzz/issues/63

--

-- 
behdad
http://behdad.org/
Rolf Langenhuijzen | 4 Oct 02:11 2014
Picon
Picon

Need to read family name (nameID/fontTools/TTX related)

Hello,

Sorry to hijack the Harfbuzz list for this, I think this is more fontTools/TTX related, but I didn’t see an
(active?) TTX list to post this to…

Basically I’d like to read the name table in a Python script. I thought this could be done rather easy with
fontTools/TTX, but no idea really. Any pointers??

I came across this https://github.com/tchollingsworth/ttname which is basically what I need, however I
don’t need write stuff and basically only need to read the name table. I started forking it, but then
noticed it depends on some older fontTools version, looking at how it wants to use the XML reader (import fontTools.ttLib.xmlImport).
So if this is a good start I would dive into that XML reading/parsing and perhaps update ttname if it’s
worth it..

As I was looking for the Family Name in particular I’m now running a subprocess.Popen to “otfinfo
--family" grabbing that information ;)
It’s a bit dirty, but for prototyping it works..

Kind regards,
Rolf

Travis CI | 2 Oct 22:57 2014

Fixed: behdad/harfbuzz#429 (master - a1f27ac)

behdad / harfbuzz (master)
Build #429 was fixed.
1 minute and 31 seconds
Behdad Esfahbod a1f27ac Changeset →
  Update test expectation for previous commit

Would you like to test your private code?

Travis Pro could be your new best friend!

<div>
    <div>
      <table class="repository"><tr>
<td><span><a href="http://clicks.travis-ci.org/track/click/30007208/travis-ci.org?p=eyJzIjoiVmxVaFY1S3J6aDc4bWRVM3A4WlBRSjZqSDdBIiwidiI6MSwicCI6IntcInVcIjozMDAwNzIwOCxcInZcIjoxLFwidXJsXCI6XCJodHRwczpcXFwvXFxcL3RyYXZpcy1jaS5vcmdcXFwvYmVoZGFkXFxcL2hhcmZidXp6XCIsXCJpZFwiOlwiNmYxYjM4YzNiNTg1NDNmODg3MThlNDYzMzhmMTYyNDNcIixcInVybF9pZHNcIjpbXCJjMDViODE3ZjVlN2ZjYTlmMTE3ZTBhOWE1OWZmMjc0OThmN2NjN2QwXCJdfSJ9">behdad / harfbuzz</a> (<a href="http://clicks.travis-ci.org/track/click/30007208/github.com?p=eyJzIjoiMFpmX3o2M2pHbXU2MFlCYWp4MUk3MkFEVm9VIiwidiI6MSwicCI6IntcInVcIjozMDAwNzIwOCxcInZcIjoxLFwidXJsXCI6XCJodHRwczpcXFwvXFxcL2dpdGh1Yi5jb21cXFwvYmVoZGFkXFxcL2hhcmZidXp6XFxcL3RyZWVcXFwvbWFzdGVyXCIsXCJpZFwiOlwiNmYxYjM4YzNiNTg1NDNmODg3MThlNDYzMzhmMTYyNDNcIixcInVybF9pZHNcIjpbXCIzMDVjM2I2NTk5ZDZhMDI1NDk4NGQ1MGVjMGUyZTc5Y2UxZTdmODM2XCJdfSJ9">master</a>)</span></td>
        </tr></table>
<div class="success">
        <div class="content">
          <table>
<tr>
<td><div class="status-image"></div></td>
                <td class="build-message"><span><a href="http://clicks.travis-ci.org/track/click/30007208/travis-ci.org?p=eyJzIjoiS2RpZEZDYlB1cDZLYzFmYk0tUlQ5Smp0Z2NFIiwidiI6MSwicCI6IntcInVcIjozMDAwNzIwOCxcInZcIjoxLFwidXJsXCI6XCJodHRwczpcXFwvXFxcL3RyYXZpcy1jaS5vcmdcXFwvYmVoZGFkXFxcL2hhcmZidXp6XFxcL2J1aWxkc1xcXC8zNjkwOTc1MVwiLFwiaWRcIjpcIjZmMWIzOGMzYjU4NTQzZjg4NzE4ZTQ2MzM4ZjE2MjQzXCIsXCJ1cmxfaWRzXCI6W1wiNWNhNzZhYzk3ZDliY2FhNjdjYjExZjRlOGRiNDdjZjc5NDg0OWE0YlwiXX0ifQ">Build #429 was fixed.</a></span></td>
                <td align="right" class="time">
<div class="stop-watch"></div> <span>1 minute and 31 seconds</span>
</td>
              </tr>
<tr>
<td class="profile-image"></td>
                <td class="grey">Behdad Esfahbod</td>
                <td align="right" class="grey">
<a href="http://clicks.travis-ci.org/track/click/30007208/github.com?p=eyJzIjoiaHZNTjZtUU9jOENnRVFZZUVJZGpQaERTX0Q0IiwidiI6MSwicCI6IntcInVcIjozMDAwNzIwOCxcInZcIjoxLFwidXJsXCI6XCJodHRwczpcXFwvXFxcL2dpdGh1Yi5jb21cXFwvYmVoZGFkXFxcL2hhcmZidXp6XFxcL2NvbW1pdFxcXC9hMWYyN2FjM2M0OGNmZTZkNTMyZGM0MjJjZjI1Njk1MmZlYTQ3MmVkXCIsXCJpZFwiOlwiNmYxYjM4YzNiNTg1NDNmODg3MThlNDYzMzhmMTYyNDNcIixcInVybF9pZHNcIjpbXCI1MGRiMjliMDcyM2ZhZjhjNTcwZDcyZTNjNDZmZjdkYjcwODMxYTE3XCJdfSJ9">a1f27ac</a> <a href="http://clicks.travis-ci.org/track/click/30007208/github.com?p=eyJzIjoiWG5iblZGTXdCQnBFbmhHcjhZaW9oMXpVN1prIiwidiI6MSwicCI6IntcInVcIjozMDAwNzIwOCxcInZcIjoxLFwidXJsXCI6XCJodHRwczpcXFwvXFxcL2dpdGh1Yi5jb21cXFwvYmVoZGFkXFxcL2hhcmZidXp6XFxcL2NvbXBhcmVcXFwvOGFmYWYwOTY4NzBkLi4uYTFmMjdhYzNjNDhjXCIsXCJpZFwiOlwiNmYxYjM4YzNiNTg1NDNmODg3MThlNDYzMzhmMTYyNDNcIixcInVybF9pZHNcIjpbXCJhMjc2YWFhMTE5NDdiZjY4MTY1Yzg0YWQ0ZDFjZDg2Y2YwZDBjMTc2XCJdfSJ9">Changeset &rarr;</a>
</td>
              </tr>
<tr>
<td>&nbsp;</td>
                <td class="grey" colspan="2">Update test expectation for previous commit</td>
              </tr>
</table>
</div>
      </div>

      <table border="0" class="footer"><tr>
<td>
            </td>
          <td class="grey">
            <a href="http://clicks.travis-ci.org/track/click/30007208/docs.travis-ci.com?p=eyJzIjoiUW9VS25Uelc1YmItYVM3OWtmTEJ0Mk1tV0xrIiwidiI6MSwicCI6IntcInVcIjozMDAwNzIwOCxcInZcIjoxLFwidXJsXCI6XCJodHRwOlxcXC9cXFwvZG9jcy50cmF2aXMtY2kuY29tXCIsXCJpZFwiOlwiNmYxYjM4YzNiNTg1NDNmODg3MThlNDYzMzhmMTYyNDNcIixcInVybF9pZHNcIjpbXCI1ZmE3OTJiOGY5Nzk0YTkzNmU0OWZiNzcwNDI0NzJkNjU5N2ZmMDhjXCJdfSJ9">Documentation</a> about Travis CI<br>
            For help please join our IRC channel <a href="irc://irc.freenode.net/travis">irc.freenode.net#travis</a>.<br>
            Choose who receives these build notification emails in your <a href="http://clicks.travis-ci.org/track/click/30007208/docs.travis-ci.com?p=eyJzIjoiUEM3cUFrRnQzVm14b0FTUHlDS0VON1VnNnVjIiwidiI6MSwicCI6IntcInVcIjozMDAwNzIwOCxcInZcIjoxLFwidXJsXCI6XCJodHRwOlxcXC9cXFwvZG9jcy50cmF2aXMtY2kuY29tXFxcL3VzZXJcXFwvbm90aWZpY2F0aW9uc1wiLFwiaWRcIjpcIjZmMWIzOGMzYjU4NTQzZjg4NzE4ZTQ2MzM4ZjE2MjQzXCIsXCJ1cmxfaWRzXCI6W1wiNGY1YzYwZDBkY2IxOGQ5ZGQzYTMwMzFkYjNjMjc1MTk4NmIyMmNhMFwiXX0ifQ">configuration file</a>.
          </td>
        </tr></table>
<div>
        <div class="section footnote">
          <p class="grey">Would you like to test your private code?</p>
          <p class="grey"><a href="http://clicks.travis-ci.org/track/click/30007208/travis-ci.com?p=eyJzIjoiOHZ5Q0hsejFOUHJZUEwtUXA5emRwdkE4Z1VNIiwidiI6MSwicCI6IntcInVcIjozMDAwNzIwOCxcInZcIjoxLFwidXJsXCI6XCJodHRwOlxcXC9cXFwvdHJhdmlzLWNpLmNvbT91dG1fc291cmNlPWJ1aWxkX2VtYWlsX2Zvb3RlciZ1dG1fY2FtcGFpZ249dHJhdmlzLWNpLm9yZyZ1dG1fbWVkaXVtPWVtYWlsXCIsXCJpZFwiOlwiNmYxYjM4YzNiNTg1NDNmODg3MThlNDYzMzhmMTYyNDNcIixcInVybF9pZHNcIjpbXCIyMDAwYzI0MjkxOWZkYWYzNzVlNDhhM2Q5OTM4ZGY4MDc3YzZlMTk4XCJdfSJ9">Travis Pro</a> could be your new best friend!</p>
        </div>

        <div class="tiny-footer">
          <p class="grey"> 
            <span>Travis CI is powered by </span><a href="http://clicks.travis-ci.org/track/click/30007208/bluebox.net?p=eyJzIjoienNMcGV6WlNPLUQ1Uzh1YnN4OVk5SW1tTGhjIiwidiI6MSwicCI6IntcInVcIjozMDAwNzIwOCxcInZcIjoxLFwidXJsXCI6XCJodHRwOlxcXC9cXFwvYmx1ZWJveC5uZXRcIixcImlkXCI6XCI2ZjFiMzhjM2I1ODU0M2Y4ODcxOGU0NjMzOGYxNjI0M1wiLFwidXJsX2lkc1wiOltcIjBmZTEzMmY2NGJkMjQ2ODhlMGM5MDM2MDcyNDA2NGY2NDRlMWVjMzFcIl19In0"></a>
          </p>
        </div>
      </div>

    </div>

</div>
Travis CI | 2 Oct 22:45 2014

Broken: behdad/harfbuzz#428 (master - 8afaf09)

behdad / harfbuzz (master)
Build #428 was broken.
3 minutes and 14 seconds
Behdad Esfahbod 8afaf09 Changeset →
  [ft] Add NO_HINTING in a couple other places

Would you like to test your private code?

Travis Pro could be your new best friend!

<div>
    <div>
      <table class="repository"><tr>
<td><span><a href="http://clicks.travis-ci.org/track/click/30007208/travis-ci.org?p=eyJzIjoiRVBKd3JEbzNobEo5YXR4SElvY1lUOE1oR1BNIiwidiI6MSwicCI6IntcInVcIjozMDAwNzIwOCxcInZcIjoxLFwidXJsXCI6XCJodHRwczpcXFwvXFxcL3RyYXZpcy1jaS5vcmdcXFwvYmVoZGFkXFxcL2hhcmZidXp6XCIsXCJpZFwiOlwiYjM4YTA5YzVlNWI1NDdiOTk3ZDYyMjZkNjcyYmRhMTRcIixcInVybF9pZHNcIjpbXCJjMDViODE3ZjVlN2ZjYTlmMTE3ZTBhOWE1OWZmMjc0OThmN2NjN2QwXCJdfSJ9">behdad / harfbuzz</a> (<a href="http://clicks.travis-ci.org/track/click/30007208/github.com?p=eyJzIjoiWE03Y1RRcUlhVkFlNk1TNWZCazFLZ1hKbzM0IiwidiI6MSwicCI6IntcInVcIjozMDAwNzIwOCxcInZcIjoxLFwidXJsXCI6XCJodHRwczpcXFwvXFxcL2dpdGh1Yi5jb21cXFwvYmVoZGFkXFxcL2hhcmZidXp6XFxcL3RyZWVcXFwvbWFzdGVyXCIsXCJpZFwiOlwiYjM4YTA5YzVlNWI1NDdiOTk3ZDYyMjZkNjcyYmRhMTRcIixcInVybF9pZHNcIjpbXCIzMDVjM2I2NTk5ZDZhMDI1NDk4NGQ1MGVjMGUyZTc5Y2UxZTdmODM2XCJdfSJ9">master</a>)</span></td>
        </tr></table>
<div class="failure">
        <div class="content">
          <table>
<tr>
<td><div class="status-image"></div></td>
                <td class="build-message"><span><a href="http://clicks.travis-ci.org/track/click/30007208/travis-ci.org?p=eyJzIjoibnk3YkJZakdqMG9hWHFZaXFoYUdQMDhxY3VrIiwidiI6MSwicCI6IntcInVcIjozMDAwNzIwOCxcInZcIjoxLFwidXJsXCI6XCJodHRwczpcXFwvXFxcL3RyYXZpcy1jaS5vcmdcXFwvYmVoZGFkXFxcL2hhcmZidXp6XFxcL2J1aWxkc1xcXC8zNjkwODUwN1wiLFwiaWRcIjpcImIzOGEwOWM1ZTViNTQ3Yjk5N2Q2MjI2ZDY3MmJkYTE0XCIsXCJ1cmxfaWRzXCI6W1wiNWNhNzZhYzk3ZDliY2FhNjdjYjExZjRlOGRiNDdjZjc5NDg0OWE0YlwiXX0ifQ">Build #428 was broken.</a></span></td>
                <td align="right" class="time">
<div class="stop-watch"></div> <span>3 minutes and 14 seconds</span>
</td>
              </tr>
<tr>
<td class="profile-image"></td>
                <td class="grey">Behdad Esfahbod</td>
                <td align="right" class="grey">
<a href="http://clicks.travis-ci.org/track/click/30007208/github.com?p=eyJzIjoiaTBHNktTYms5M2lBRG9CTjNvcmRXZkFxM1RrIiwidiI6MSwicCI6IntcInVcIjozMDAwNzIwOCxcInZcIjoxLFwidXJsXCI6XCJodHRwczpcXFwvXFxcL2dpdGh1Yi5jb21cXFwvYmVoZGFkXFxcL2hhcmZidXp6XFxcL2NvbW1pdFxcXC84YWZhZjA5Njg3MGQ3ODk1Y2YyZmZmYjY0MzhiMDJjMGFkMWI2YzUyXCIsXCJpZFwiOlwiYjM4YTA5YzVlNWI1NDdiOTk3ZDYyMjZkNjcyYmRhMTRcIixcInVybF9pZHNcIjpbXCI1MGRiMjliMDcyM2ZhZjhjNTcwZDcyZTNjNDZmZjdkYjcwODMxYTE3XCJdfSJ9">8afaf09</a> <a href="http://clicks.travis-ci.org/track/click/30007208/github.com?p=eyJzIjoid0xZdTh4X1BqNkk4LWctci1QMmltLTJBeGtnIiwidiI6MSwicCI6IntcInVcIjozMDAwNzIwOCxcInZcIjoxLFwidXJsXCI6XCJodHRwczpcXFwvXFxcL2dpdGh1Yi5jb21cXFwvYmVoZGFkXFxcL2hhcmZidXp6XFxcL2NvbXBhcmVcXFwvNzIyODAxMTQxMWYwLi4uOGFmYWYwOTY4NzBkXCIsXCJpZFwiOlwiYjM4YTA5YzVlNWI1NDdiOTk3ZDYyMjZkNjcyYmRhMTRcIixcInVybF9pZHNcIjpbXCJhMjc2YWFhMTE5NDdiZjY4MTY1Yzg0YWQ0ZDFjZDg2Y2YwZDBjMTc2XCJdfSJ9">Changeset &rarr;</a>
</td>
              </tr>
<tr>
<td>&nbsp;</td>
                <td class="grey" colspan="2">[ft] Add NO_HINTING in a couple other places</td>
              </tr>
</table>
</div>
      </div>

      <table border="0" class="footer"><tr>
<td>
            </td>
          <td class="grey">
            <a href="http://clicks.travis-ci.org/track/click/30007208/docs.travis-ci.com?p=eyJzIjoiZFZfWHI1VHkwcFlhdkZTbzYxN0x0ZkdJLTBnIiwidiI6MSwicCI6IntcInVcIjozMDAwNzIwOCxcInZcIjoxLFwidXJsXCI6XCJodHRwOlxcXC9cXFwvZG9jcy50cmF2aXMtY2kuY29tXCIsXCJpZFwiOlwiYjM4YTA5YzVlNWI1NDdiOTk3ZDYyMjZkNjcyYmRhMTRcIixcInVybF9pZHNcIjpbXCI1ZmE3OTJiOGY5Nzk0YTkzNmU0OWZiNzcwNDI0NzJkNjU5N2ZmMDhjXCJdfSJ9">Documentation</a> about Travis CI<br>
            For help please join our IRC channel <a href="irc://irc.freenode.net/travis">irc.freenode.net#travis</a>.<br>
            Choose who receives these build notification emails in your <a href="http://clicks.travis-ci.org/track/click/30007208/docs.travis-ci.com?p=eyJzIjoialM4cEhaSVNuWVA0alU1V2x5NnJ1Q0JTWVhjIiwidiI6MSwicCI6IntcInVcIjozMDAwNzIwOCxcInZcIjoxLFwidXJsXCI6XCJodHRwOlxcXC9cXFwvZG9jcy50cmF2aXMtY2kuY29tXFxcL3VzZXJcXFwvbm90aWZpY2F0aW9uc1wiLFwiaWRcIjpcImIzOGEwOWM1ZTViNTQ3Yjk5N2Q2MjI2ZDY3MmJkYTE0XCIsXCJ1cmxfaWRzXCI6W1wiNGY1YzYwZDBkY2IxOGQ5ZGQzYTMwMzFkYjNjMjc1MTk4NmIyMmNhMFwiXX0ifQ">configuration file</a>.
          </td>
        </tr></table>
<div>
        <div class="section footnote">
          <p class="grey">Would you like to test your private code?</p>
          <p class="grey"><a href="http://clicks.travis-ci.org/track/click/30007208/travis-ci.com?p=eyJzIjoiend2eWlFMm52a3plQk5sMVhoT0h2bXZLNVEwIiwidiI6MSwicCI6IntcInVcIjozMDAwNzIwOCxcInZcIjoxLFwidXJsXCI6XCJodHRwOlxcXC9cXFwvdHJhdmlzLWNpLmNvbT91dG1fc291cmNlPWJ1aWxkX2VtYWlsX2Zvb3RlciZ1dG1fY2FtcGFpZ249dHJhdmlzLWNpLm9yZyZ1dG1fbWVkaXVtPWVtYWlsXCIsXCJpZFwiOlwiYjM4YTA5YzVlNWI1NDdiOTk3ZDYyMjZkNjcyYmRhMTRcIixcInVybF9pZHNcIjpbXCIyMDAwYzI0MjkxOWZkYWYzNzVlNDhhM2Q5OTM4ZGY4MDc3YzZlMTk4XCJdfSJ9">Travis Pro</a> could be your new best friend!</p>
        </div>

        <div class="tiny-footer">
          <p class="grey"> 
            <span>Travis CI is powered by </span><a href="http://clicks.travis-ci.org/track/click/30007208/bluebox.net?p=eyJzIjoiUHBwVm84emFNSlZtNTdCRWwzaHNsdWpPc0owIiwidiI6MSwicCI6IntcInVcIjozMDAwNzIwOCxcInZcIjoxLFwidXJsXCI6XCJodHRwOlxcXC9cXFwvYmx1ZWJveC5uZXRcIixcImlkXCI6XCJiMzhhMDljNWU1YjU0N2I5OTdkNjIyNmQ2NzJiZGExNFwiLFwidXJsX2lkc1wiOltcIjBmZTEzMmY2NGJkMjQ2ODhlMGM5MDM2MDcyNDA2NGY2NDRlMWVjMzFcIl19In0"></a>
          </p>
        </div>
      </div>

    </div>

</div>
Behdad Esfahbod | 2 Oct 22:54 2014

harfbuzz: Branch 'master'

 test/shaping/tests/arabic-fallback-shaping.tests |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit a1f27ac3c48cfe6d532dc422cf256952fea472ed
Author: Behdad Esfahbod <behdad@...>
Date:   Thu Oct 2 16:54:33 2014 -0400

    Update test expectation for previous commit

diff --git a/test/shaping/tests/arabic-fallback-shaping.tests b/test/shaping/tests/arabic-fallback-shaping.tests
index 0240448..e3eaf3f 100644
--- a/test/shaping/tests/arabic-fallback-shaping.tests
+++ b/test/shaping/tests/arabic-fallback-shaping.tests
 <at>  <at>  -1 +1  <at>  <at> 
-fonts/sha1sum/df768b9c257e0c9c35786c47cae15c46571d56be.ttf:U+0633,U+064F,U+0644,U+064E,U+0651,U+0627,U+0651,U+0650,U+0645,U+062A,U+06CC:[uni06CC.fina=10+1655|uni062A.medi=9+868|uni0645.init=8+1098|uni0650=2 <at> 208,0+0|uni0651=2 <at> 272,768+0|uni064E=2 <at> 944,1216+0|uni0651=2 <at> 1008,768+0|uni06440627.fina=2+1470|uni064F=0 <at> 576,-32+0|uni0633.init=0+1585]
+fonts/sha1sum/df768b9c257e0c9c35786c47cae15c46571d56be.ttf:U+0633,U+064F,U+0644,U+064E,U+0651,U+0627,U+0651,U+0650,U+0645,U+062A,U+06CC:[uni06CC.fina=10+1655|uni062A.medi=9+868|uni0645.init=8+1098|uni0650=2 <at> 221,0+0|uni0651=2 <at> 260,736+0|uni064E=2 <at> 935,1259+0|uni0651=2 <at> 974,736+0|uni06440627.fina=2+1470|uni064F=0 <at> 558,-10+0|uni0633.init=0+1585]
Behdad Esfahbod | 2 Oct 22:40 2014

harfbuzz: Branch 'master' - 10 commits

 .travis.yml          |   33 ++++++++-------------------------
 README               |    3 +++
 README.md            |    1 +
 src/check-defs.sh    |    2 +-
 src/check-symbols.sh |    6 +++---
 src/hb-ft.cc         |    4 ++--
 6 files changed, 18 insertions(+), 31 deletions(-)

New commits:
commit 8afaf096870d7895cf2fffb6438b02c0ad1b6c52
Author: Behdad Esfahbod <behdad@...>
Date:   Thu Oct 2 16:40:41 2014 -0400

    [ft] Add NO_HINTING in a couple other places

diff --git a/src/hb-ft.cc b/src/hb-ft.cc
index 16bf51f..c42d484 100644
--- a/src/hb-ft.cc
+++ b/src/hb-ft.cc
 <at>  <at>  -136,7 +136,7  <at>  <at>  hb_ft_get_glyph_v_origin (hb_font_t *font HB_UNUSED,
 			  void *user_data HB_UNUSED)
 {
   FT_Face ft_face = (FT_Face) font_data;
-  int load_flags = FT_LOAD_DEFAULT;
+  int load_flags = FT_LOAD_DEFAULT | FT_LOAD_NO_HINTING;

   if (unlikely (FT_Load_Glyph (ft_face, glyph, load_flags)))
     return false;
 <at>  <at>  -185,7 +185,7  <at>  <at>  hb_ft_get_glyph_extents (hb_font_t *font HB_UNUSED,
 			 void *user_data HB_UNUSED)
 {
   FT_Face ft_face = (FT_Face) font_data;
-  int load_flags = FT_LOAD_DEFAULT;
+  int load_flags = FT_LOAD_DEFAULT | FT_LOAD_NO_HINTING;

   if (unlikely (FT_Load_Glyph (ft_face, glyph, load_flags)))
     return false;
commit 7228011411f0e490ad1ba9894dd0d576823903ea
Author: Behdad Esfahbod <behdad@...>
Date:   Wed Oct 1 18:58:43 2014 -0400

    [travis] Fix clang again

diff --git a/.travis.yml b/.travis.yml
index 702fea0..4b3e0f8 100644
--- a/.travis.yml
+++ b/.travis.yml
 <at>  <at>  -19,7 +19,7  <at>  <at>  install:
 script:
   - NOCONFIGURE=1 ./autogen.sh
   - ./configure --with-freetype --with-glib --with-gobject --with-cairo --with-icu --with-graphite2
-  - make && make check && { rm -f src/.libs/NONE.gcov && touch src/NONE && test $CC == gcc && coveralls; }
+  - make && make check && { rm -f src/.libs/NONE.gcov; touch src/NONE; test $CC != gcc || coveralls; }
 notifications:
   irc: "irc.freenode.org#harfbuzz"
   email: harfbuzz@...
commit 406a020e5228d4a04da6282f5a75165bab7a483e
Author: Behdad Esfahbod <behdad@...>
Date:   Wed Oct 1 18:54:55 2014 -0400

    [travis] Fail build if coveralls fails

diff --git a/.travis.yml b/.travis.yml
index 548f26e..702fea0 100644
--- a/.travis.yml
+++ b/.travis.yml
 <at>  <at>  -8,7 +8,7  <at>  <at>  env:
     - CFLAGS="-Werror --coverage"
     - CXXFLAGS="-Werror --coverage"
     - LDFLAGS="--coverage"
-before_install:
+install:
   - sudo apt-get install pkg-config ragel gtk-doc-tools # for autogen.sh
   - sudo apt-get install libfreetype6-dev # for font functions
   - sudo apt-get install libglib2.0-dev # for font functions / tests / utils
 <at>  <at>  -16,21 +16,10  <at>  <at>  before_install:
   - sudo apt-get install libicu-dev # for extra unicode functions
   - sudo apt-get install libgraphite2-dev # for extra shapers
   - sudo pip install cpp-coveralls # for coveralls.io code coverage tracking
-install:
-  - true
-before_script:
-  - true
 script:
   - NOCONFIGURE=1 ./autogen.sh
   - ./configure --with-freetype --with-glib --with-gobject --with-cairo --with-icu --with-graphite2
-  - make && make check
-after_success:
-  - rm -f src/.libs/NONE.gcov; touch src/NONE # coveralls needs some help
-  - if test $CC == gcc; then coveralls; fi # currently only gcc works
-after_failure:
-  - true
-after_script:
-  - true
+  - make && make check && { rm -f src/.libs/NONE.gcov && touch src/NONE && test $CC == gcc && coveralls; }
 notifications:
   irc: "irc.freenode.org#harfbuzz"
   email: harfbuzz@...
commit a8aa20260dbd9af9cbcc7d545fa8b41b07aae276
Author: Behdad Esfahbod <behdad@...>
Date:   Wed Oct 1 18:48:40 2014 -0400

    [travis] Only run coveralls under gcc

diff --git a/.travis.yml b/.travis.yml
index be4522a..548f26e 100644
--- a/.travis.yml
+++ b/.travis.yml
 <at>  <at>  -25,9 +25,8  <at>  <at>  script:
   - ./configure --with-freetype --with-glib --with-gobject --with-cairo --with-icu --with-graphite2
   - make && make check
 after_success:
-  - rm -f src/.libs/NONE.gcov # coveralls chokes on this
-  - touch src/NONE # see if this makes coveralls happy
-  - coveralls
+  - rm -f src/.libs/NONE.gcov; touch src/NONE # coveralls needs some help
+  - if test $CC == gcc; then coveralls; fi # currently only gcc works
 after_failure:
   - true
 after_script:
commit 5de0407337d630117e424b7c715b7cbd432f4ef9
Author: Behdad Esfahbod <behdad@...>
Date:   Wed Oct 1 18:18:25 2014 -0400

    Help clang with gcov

diff --git a/src/check-defs.sh b/src/check-defs.sh
index 357347f..65a2467 100755
--- a/src/check-defs.sh
+++ b/src/check-defs.sh
 <at>  <at>  -21,7 +21,7  <at>  <at>  for def in $defs; do
 	lib=`echo "$def" | sed 's/[.]def$//;s <at> .*/ <at>  <at> '`
 	so=.libs/lib${lib}.so

-	EXPORTED_SYMBOLS="`nm "$so" | grep ' [BCDGINRSTVW] ' | grep -v ' _fini\>\| _init\>\| _fdata\>\|
_ftext\>\| _fbss\>\| __bss_start\>\| __bss_start__\>\| __bss_end__\>\| _edata\>\| _end\>\|
_bss_end__\>\| __end__\>' | cut -d' ' -f3`"
+	EXPORTED_SYMBOLS="`nm "$so" | grep ' [BCDGINRSTVW] ' | grep -v ' _fini\>\| _init\>\| _fdata\>\|
_ftext\>\| _fbss\>\| __bss_start\>\| __bss_start__\>\| __bss_end__\>\| _edata\>\| _end\>\|
_bss_end__\>\| __end__\>\| __gcov_flush\>\| llvm_' | cut -d' ' -f3`"

 	if test -f "$so"; then

diff --git a/src/check-symbols.sh b/src/check-symbols.sh
index 91eefd4..b2bf43f 100755
--- a/src/check-symbols.sh
+++ b/src/check-symbols.sh
 <at>  <at>  -19,12 +19,12  <at>  <at>  tested=false
 for suffix in so dylib; do
 	so=.libs/libharfbuzz.$suffix
 	if ! test -f "$so"; then continue; fi
-	prefix=
 	
-	EXPORTED_SYMBOLS="`nm "$so" | grep ' [BCDGINRSTVW] ' | grep -v ' _fini\>\| _init\>\| _fdata\>\|
_ftext\>\| _fbss\>\| __bss_start\>\| __bss_start__\>\| __bss_end__\>\| _edata\>\| _end\>\|
_bss_end__\>\| __end__\>' | cut -d' ' -f3`"
+	EXPORTED_SYMBOLS="`nm "$so" | grep ' [BCDGINRSTVW] ' | grep -v ' _fini\>\| _init\>\| _fdata\>\|
_ftext\>\| _fbss\>\| __bss_start\>\| __bss_start__\>\| __bss_end__\>\| _edata\>\| _end\>\|
_bss_end__\>\| __end__\>\| __gcov_flush\>\| llvm_' | cut -d' ' -f3`"
+
 	prefix=`basename "$so" | sed 's/libharfbuzz/hb/; s/-/_/g; s/[.].*//'`

-	# Ob mac, C symbols are prefixed with _
+	# On mac, C symbols are prefixed with _
 	if test $suffix = dylib; then prefix="_$prefix"; fi

 	echo "Processing $so"
commit ef40ca8e5e830231539dc61088b58e907a840629
Author: Behdad Esfahbod <behdad@...>
Date:   Wed Oct 1 18:07:27 2014 -0400

    [travis] Try to make coverage work with clang

diff --git a/.travis.yml b/.travis.yml
index 25c028d..be4522a 100644
--- a/.travis.yml
+++ b/.travis.yml
 <at>  <at>  -4,8 +4,10  <at>  <at>  compiler:
   - gcc
 env:
   global:
-    - FEATURES="--with-freetype --with-glib --with-gobject --with-cairo --with-icu --with-graphite2"
-    - CPPFLAGS="-Werror -fprofile-arcs -ftest-coverage" LDFLAGS="-lgcov"
+    - CPPFLAGS=""
+    - CFLAGS="-Werror --coverage"
+    - CXXFLAGS="-Werror --coverage"
+    - LDFLAGS="--coverage"
 before_install:
   - sudo apt-get install pkg-config ragel gtk-doc-tools # for autogen.sh
   - sudo apt-get install libfreetype6-dev # for font functions
 <at>  <at>  -20,9 +22,8  <at>  <at>  before_script:
   - true
 script:
   - NOCONFIGURE=1 ./autogen.sh
-  - ./configure $FEATURES CPPFLAGS="$CPPFLAGS" LDFLAGS="$LDFLAGS"
-  - make
-  - make check
+  - ./configure --with-freetype --with-glib --with-gobject --with-cairo --with-icu --with-graphite2
+  - make && make check
 after_success:
   - rm -f src/.libs/NONE.gcov # coveralls chokes on this
   - touch src/NONE # see if this makes coveralls happy
commit 52784da17b7278f2587168234878bb15d918c9fe
Author: Behdad Esfahbod <behdad@...>
Date:   Wed Oct 1 17:57:43 2014 -0400

    [travis] Minor

diff --git a/README b/README
index c238604..d34bc74 100644
--- a/README
+++ b/README
 <at>  <at>  -1,3 +1,6  <at>  <at> 
+[![Build Status](https://travis-ci.org/behdad/harfbuzz.svg)](https://travis-ci.org/behdad/harfbuzz)
+[![Coverage Status](https://img.shields.io/coveralls/behdad/harfbuzz.svg)](https://coveralls.io/r/behdad/harfbuzz)
+
 This is HarfBuzz, a text shaping library.

 For bug reports, mailing list, and other information please visit:
 <at>  <at>  -5,6 +8,3  <at>  <at>  For bug reports, mailing list, and other information please visit:
   http://harfbuzz.org/

 For license information, see the file COPYING.
-
-[![Build Status](https://travis-ci.org/behdad/harfbuzz.svg)](https://travis-ci.org/behdad/harfbuzz)
-[![Coverage Status](https://img.shields.io/coveralls/behdad/harfbuzz.svg)](https://coveralls.io/r/behdad/harfbuzz)
commit f2c9005f5123c7f9b227fd9ac9a3438c5fe4cf47
Author: Behdad Esfahbod <behdad@...>
Date:   Wed Oct 1 17:45:17 2014 -0400

    Add README.md symlink to make github happy

diff --git a/README.md b/README.md
new file mode 120000
index 0000000..100b938
--- /dev/null
+++ b/README.md
 <at>  <at>  -0,0 +1  <at>  <at> 
+README
\ No newline at end of file
commit 40987e8aaca4155d9cff211549e8d23f24c334e5
Author: Behdad Esfahbod <behdad@...>
Date:   Wed Oct 1 17:44:30 2014 -0400

    [travis] Re-enable clang

diff --git a/.travis.yml b/.travis.yml
index cc706c1..25c028d 100644
--- a/.travis.yml
+++ b/.travis.yml
 <at>  <at>  -1,6 +1,6  <at>  <at> 
 language: cpp
 compiler:
-  #- clang
+  - clang
   - gcc
 env:
   global:
 <at>  <at>  -20,12 +20,6  <at>  <at>  before_script:
   - true
 script:
   - NOCONFIGURE=1 ./autogen.sh
-  - echo CC=$CC
-  - echo CXX=$CXX
-  - echo CPP=$CPP
-  - echo LD=$LD
-  - echo CPPFLAGS="$CPPFLAGS"
-  - echo LDFLAGS="$LDFLAGS"
   - ./configure $FEATURES CPPFLAGS="$CPPFLAGS" LDFLAGS="$LDFLAGS"
   - make
   - make check
commit 5400ac476e5a5bcc66559fcfb05a683a6b433ea1
Author: Behdad Esfahbod <behdad@...>
Date:   Wed Oct 1 17:41:41 2014 -0400

    Add build and coverage status links

diff --git a/README b/README
index 74e739d..c238604 100644
--- a/README
+++ b/README
 <at>  <at>  -5,3 +5,6  <at>  <at>  For bug reports, mailing list, and other information please visit:
   http://harfbuzz.org/

 For license information, see the file COPYING.
+
+[![Build Status](https://travis-ci.org/behdad/harfbuzz.svg)](https://travis-ci.org/behdad/harfbuzz)
+[![Coverage Status](https://img.shields.io/coveralls/behdad/harfbuzz.svg)](https://coveralls.io/r/behdad/harfbuzz)
Travis CI | 2 Oct 00:57 2014

Broken: behdad/harfbuzz#426 (master - 406a020)

behdad / harfbuzz (master)
Build #426 was broken.
1 minute and 22 seconds
Behdad Esfahbod 406a020 Changeset →
  [travis] Fail build if coveralls fails

Would you like to test your private code?

Travis Pro could be your new best friend!

<div>
    <div>
      <table class="repository"><tr>
<td><span><a href="http://clicks.travis-ci.org/track/click/30007208/travis-ci.org?p=eyJzIjoiZExuNlJpOTc5UEFJSjA1clFpSkhaeV9OV3Q4IiwidiI6MSwicCI6IntcInVcIjozMDAwNzIwOCxcInZcIjoxLFwidXJsXCI6XCJodHRwczpcXFwvXFxcL3RyYXZpcy1jaS5vcmdcXFwvYmVoZGFkXFxcL2hhcmZidXp6XCIsXCJpZFwiOlwiYTVkOTA0Mjk2MDQ5NDczZDgwMGRkYmM1NjRjZmE1NTFcIixcInVybF9pZHNcIjpbXCJjMDViODE3ZjVlN2ZjYTlmMTE3ZTBhOWE1OWZmMjc0OThmN2NjN2QwXCJdfSJ9">behdad / harfbuzz</a> (<a href="http://clicks.travis-ci.org/track/click/30007208/github.com?p=eyJzIjoiS05NNlQzc0JkLUVwWU9NSC0yd0syRldwOVpNIiwidiI6MSwicCI6IntcInVcIjozMDAwNzIwOCxcInZcIjoxLFwidXJsXCI6XCJodHRwczpcXFwvXFxcL2dpdGh1Yi5jb21cXFwvYmVoZGFkXFxcL2hhcmZidXp6XFxcL3RyZWVcXFwvbWFzdGVyXCIsXCJpZFwiOlwiYTVkOTA0Mjk2MDQ5NDczZDgwMGRkYmM1NjRjZmE1NTFcIixcInVybF9pZHNcIjpbXCIzMDVjM2I2NTk5ZDZhMDI1NDk4NGQ1MGVjMGUyZTc5Y2UxZTdmODM2XCJdfSJ9">master</a>)</span></td>
        </tr></table>
<div class="failure">
        <div class="content">
          <table>
<tr>
<td><div class="status-image"></div></td>
                <td class="build-message"><span><a href="http://clicks.travis-ci.org/track/click/30007208/travis-ci.org?p=eyJzIjoiUUJaMmUyVXZBUmtsSWdTWFBKWXMxcFJjYktNIiwidiI6MSwicCI6IntcInVcIjozMDAwNzIwOCxcInZcIjoxLFwidXJsXCI6XCJodHRwczpcXFwvXFxcL3RyYXZpcy1jaS5vcmdcXFwvYmVoZGFkXFxcL2hhcmZidXp6XFxcL2J1aWxkc1xcXC8zNjgyMjE4NVwiLFwiaWRcIjpcImE1ZDkwNDI5NjA0OTQ3M2Q4MDBkZGJjNTY0Y2ZhNTUxXCIsXCJ1cmxfaWRzXCI6W1wiNWNhNzZhYzk3ZDliY2FhNjdjYjExZjRlOGRiNDdjZjc5NDg0OWE0YlwiXX0ifQ">Build #426 was broken.</a></span></td>
                <td align="right" class="time">
<div class="stop-watch"></div> <span>1 minute and 22 seconds</span>
</td>
              </tr>
<tr>
<td class="profile-image"></td>
                <td class="grey">Behdad Esfahbod</td>
                <td align="right" class="grey">
<a href="http://clicks.travis-ci.org/track/click/30007208/github.com?p=eyJzIjoiUG0waWdvb2VoVHo1QTNqMXpXVXl3ZkpTVl9BIiwidiI6MSwicCI6IntcInVcIjozMDAwNzIwOCxcInZcIjoxLFwidXJsXCI6XCJodHRwczpcXFwvXFxcL2dpdGh1Yi5jb21cXFwvYmVoZGFkXFxcL2hhcmZidXp6XFxcL2NvbW1pdFxcXC80MDZhMDIwZTUyMjhkNGEwNGRhNjI4MmY1YTc1MTY1YmFiN2E0ODNlXCIsXCJpZFwiOlwiYTVkOTA0Mjk2MDQ5NDczZDgwMGRkYmM1NjRjZmE1NTFcIixcInVybF9pZHNcIjpbXCI1MGRiMjliMDcyM2ZhZjhjNTcwZDcyZTNjNDZmZjdkYjcwODMxYTE3XCJdfSJ9">406a020</a> <a href="http://clicks.travis-ci.org/track/click/30007208/github.com?p=eyJzIjoiRXpwRzVqcHZtYWdYeWtUM3pteVRUUi03NmZvIiwidiI6MSwicCI6IntcInVcIjozMDAwNzIwOCxcInZcIjoxLFwidXJsXCI6XCJodHRwczpcXFwvXFxcL2dpdGh1Yi5jb21cXFwvYmVoZGFkXFxcL2hhcmZidXp6XFxcL2NvbXBhcmVcXFwvYThhYTIwMjYwZGJkLi4uNDA2YTAyMGU1MjI4XCIsXCJpZFwiOlwiYTVkOTA0Mjk2MDQ5NDczZDgwMGRkYmM1NjRjZmE1NTFcIixcInVybF9pZHNcIjpbXCJhMjc2YWFhMTE5NDdiZjY4MTY1Yzg0YWQ0ZDFjZDg2Y2YwZDBjMTc2XCJdfSJ9">Changeset &rarr;</a>
</td>
              </tr>
<tr>
<td>&nbsp;</td>
                <td class="grey" colspan="2">[travis] Fail build if coveralls fails</td>
              </tr>
</table>
</div>
      </div>

      <table border="0" class="footer"><tr>
<td>
            </td>
          <td class="grey">
            <a href="http://clicks.travis-ci.org/track/click/30007208/docs.travis-ci.com?p=eyJzIjoiVThwMmp1bXdmeU5pTkVFZzhoZ0tDX3pZczQwIiwidiI6MSwicCI6IntcInVcIjozMDAwNzIwOCxcInZcIjoxLFwidXJsXCI6XCJodHRwOlxcXC9cXFwvZG9jcy50cmF2aXMtY2kuY29tXCIsXCJpZFwiOlwiYTVkOTA0Mjk2MDQ5NDczZDgwMGRkYmM1NjRjZmE1NTFcIixcInVybF9pZHNcIjpbXCI1ZmE3OTJiOGY5Nzk0YTkzNmU0OWZiNzcwNDI0NzJkNjU5N2ZmMDhjXCJdfSJ9">Documentation</a> about Travis CI<br>
            For help please join our IRC channel <a href="irc://irc.freenode.net/travis">irc.freenode.net#travis</a>.<br>
            Choose who receives these build notification emails in your <a href="http://clicks.travis-ci.org/track/click/30007208/docs.travis-ci.com?p=eyJzIjoieGMwR2FTYjFVTlpZazBwRG5VT2FNdlM5SUJjIiwidiI6MSwicCI6IntcInVcIjozMDAwNzIwOCxcInZcIjoxLFwidXJsXCI6XCJodHRwOlxcXC9cXFwvZG9jcy50cmF2aXMtY2kuY29tXFxcL3VzZXJcXFwvbm90aWZpY2F0aW9uc1wiLFwiaWRcIjpcImE1ZDkwNDI5NjA0OTQ3M2Q4MDBkZGJjNTY0Y2ZhNTUxXCIsXCJ1cmxfaWRzXCI6W1wiNGY1YzYwZDBkY2IxOGQ5ZGQzYTMwMzFkYjNjMjc1MTk4NmIyMmNhMFwiXX0ifQ">configuration file</a>.
          </td>
        </tr></table>
<div>
        <div class="section footnote">
          <p class="grey">Would you like to test your private code?</p>
          <p class="grey"><a href="http://clicks.travis-ci.org/track/click/30007208/travis-ci.com?p=eyJzIjoibGVmel9pY19RV3FMRnZtNGZ5WEZvY3E4cHJRIiwidiI6MSwicCI6IntcInVcIjozMDAwNzIwOCxcInZcIjoxLFwidXJsXCI6XCJodHRwOlxcXC9cXFwvdHJhdmlzLWNpLmNvbT91dG1fc291cmNlPWJ1aWxkX2VtYWlsX2Zvb3RlciZ1dG1fY2FtcGFpZ249dHJhdmlzLWNpLm9yZyZ1dG1fbWVkaXVtPWVtYWlsXCIsXCJpZFwiOlwiYTVkOTA0Mjk2MDQ5NDczZDgwMGRkYmM1NjRjZmE1NTFcIixcInVybF9pZHNcIjpbXCIyMDAwYzI0MjkxOWZkYWYzNzVlNDhhM2Q5OTM4ZGY4MDc3YzZlMTk4XCJdfSJ9">Travis Pro</a> could be your new best friend!</p>
        </div>

        <div class="tiny-footer">
          <p class="grey"> 
            <span>Travis CI is powered by </span><a href="http://clicks.travis-ci.org/track/click/30007208/bluebox.net?p=eyJzIjoieDZGckdaNXBBTURuTWpUSlNoT1JlZmYzYjRRIiwidiI6MSwicCI6IntcInVcIjozMDAwNzIwOCxcInZcIjoxLFwidXJsXCI6XCJodHRwOlxcXC9cXFwvYmx1ZWJveC5uZXRcIixcImlkXCI6XCJhNWQ5MDQyOTYwNDk0NzNkODAwZGRiYzU2NGNmYTU1MVwiLFwidXJsX2lkc1wiOltcIjBmZTEzMmY2NGJkMjQ2ODhlMGM5MDM2MDcyNDA2NGY2NDRlMWVjMzFcIl19In0"></a>
          </p>
        </div>
      </div>

    </div>

</div>

Gmane