OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) | 2 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) |
3 * | 3 * |
4 * This is part of HarfBuzz, an OpenType Layout engine library. | 4 * This is part of HarfBuzz, an OpenType Layout engine library. |
5 * | 5 * |
6 * Permission is hereby granted, without written agreement and without | 6 * Permission is hereby granted, without written agreement and without |
7 * license or royalty fees, to use, copy, modify, and distribute this | 7 * license or royalty fees, to use, copy, modify, and distribute this |
8 * software and its documentation for any purpose, provided that the | 8 * software and its documentation for any purpose, provided that the |
9 * above copyright notice and the following two paragraphs appear in | 9 * above copyright notice and the following two paragraphs appear in |
10 * all copies of this software. | 10 * all copies of this software. |
(...skipping 991 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1002 uc = item->string + item->item.pos; | 1002 uc = item->string + item->item.pos; |
1003 | 1003 |
1004 properties = props; | 1004 properties = props; |
1005 f = 0; | 1005 f = 0; |
1006 l = item->item.length; | 1006 l = item->item.length; |
1007 if (item->item.pos > 0) { | 1007 if (item->item.pos > 0) { |
1008 --f; | 1008 --f; |
1009 ++l; | 1009 ++l; |
1010 ++properties; | 1010 ++properties; |
1011 } | 1011 } |
1012 if (f + l < item->stringLength) { | 1012 if (f + l + item->item.pos < item->stringLength) { |
1013 ++l; | 1013 ++l; |
1014 } | 1014 } |
1015 getArabicProperties(uc+f, l, props); | 1015 getArabicProperties(uc+f, l, props); |
1016 | 1016 |
1017 for (i = 0; i < (int)item->num_glyphs; i++) { | 1017 for (i = 0; i < (int)item->num_glyphs; i++) { |
1018 apply[i] = 0; | 1018 apply[i] = 0; |
1019 | 1019 |
1020 if (properties[i].shape == XIsolated) | 1020 if (properties[i].shape == XIsolated) |
1021 apply[i] |= MediProperty|FinaProperty|InitProperty; | 1021 apply[i] |= MediProperty|FinaProperty|InitProperty; |
1022 else if (properties[i].shape == XMedial) | 1022 else if (properties[i].shape == XMedial) |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1079 item->item.bidiLevel % 2); | 1079 item->item.bidiLevel % 2); |
1080 | 1080 |
1081 HB_FREE_STACKARRAY(shapedChars); | 1081 HB_FREE_STACKARRAY(shapedChars); |
1082 | 1082 |
1083 if (!haveGlyphs) | 1083 if (!haveGlyphs) |
1084 return FALSE; | 1084 return FALSE; |
1085 | 1085 |
1086 HB_HeuristicPosition(item); | 1086 HB_HeuristicPosition(item); |
1087 return TRUE; | 1087 return TRUE; |
1088 } | 1088 } |
1089 | |
1090 | |
OLD | NEW |