~ubuntu-branches/ubuntu/trusty/cuneiform/trusty

« back to all changes in this revision

Viewing changes to cuneiform_src/Kern/rling/sources/cpp/crled.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Jakub Wilk, c-assert.diff, slovenian-slv.diff
  • Date: 2011-01-26 21:53:07 UTC
  • mfrom: (5.1.1 experimental)
  • Revision ID: james.westby@ubuntu.com-20110126215307-62x61mcesr607qb7
Tags: 1.0.0+dfsg-2
* Upload to unstable.
* Explicitly build-depend on pkg-config. Thanks to Stefano Rivera for the
  bug report.
* Add Vcs-* fields.
* Use the standard C assert() macro, rather than custom Cuneiform one.
  [c-assert.diff]
* Pass CFLAGS, CXXFLAGS and LDFLAGS (get from dpkg-buildflags) to cmake
  (closes: #608345). Thanks to Sami Liedes for the bug report.
  + Build depend on dpkg-dev (>= 1.15.7).
* Pass --parallel to dh.
  + Bump debhelper minimum version to 7.4.10.
* Update debian/copyright to the latest DEP-5 version.
* Bump year in debian/copyright.
* Explicitly link to GraphicsMagick (rather than via the ImageMagick
  compatibility layer).
* Don't ship /usr/lib/cuneiform/*.so symlinks. These libraries are
  considered private, at least until #598616 is fixed.
* Rename some private variables in debian/rules to make them lowercase.
* Update patch headers.
* Provide proper ‘build-arch’ and ‘build-indep’ targets in debian/rules.
* Document input format in the manual page (closes: #572061). Thanks to
  Janusz S. Bień for the bug report.
* Use ‘slv’ (rather than ‘slo’) as language code for Slovenian.
  [slovenian-slv.diff]
* Fix package description: Slovenian is supported, Slovak is not.
* Improve documentation of the language (-l) option (closes: #602512).
  Thanks to Jari Aalto for the bug report.
* Install reasons file for vrms.

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
Copyright (c) 1993-2008, Cognitive Technologies
3
3
All rights reserved.
4
4
 
5
 
����������� ��������� ��������������� � ������������� ��� � ���� ��������� ����,
6
 
��� � � �������� �����, � ����������� ��� ���, ��� ���������� ��������� �������:
7
 
 
8
 
      * ��� ��������� ��������������� ��������� ���� ������ ���������� ���������
9
 
        ���� ����������� �� ��������� �����, ���� ������ ������� � �����������
10
 
        ����� �� ��������.
11
 
      * ��� ��������� ��������������� ��������� ���� � ������������ �/��� �
12
 
        ������ ����������, ������������ ��� ���������������, ������ �����������
13
 
        ��������� ���� ���������� �� ��������� �����, ���� ������ ������� �
14
 
        ����������� ����� �� ��������.
15
 
      * �� �������� Cognitive Technologies, �� ����� �� ����������� �� �����
16
 
        ���� ������������ � �������� �������� ��������� �/��� �����������
17
 
        ���������, ���������� �� ���� ��, ��� ���������������� �����������
18
 
        ����������.
19
 
 
20
 
��� ��������� ������������� ����������� ��������� ���� �/��� ������� ������ "���
21
 
��� ����" ��� ������-���� ���� ��������, ���������� ���� ��� ���������������,
22
 
������� �������� ������������ �������� � ����������� ��� ���������� ����, �� ��
23
 
������������� ���. �� �������� ��������� ���� � �� ���� ������ ����, �������
24
 
����� �������� �/��� �������� �������������� ���������, �� � ���� ������ ��
25
 
��Ѩ� ���������������, ������� ����� �����, ���������, ����������� ���
26
 
������������� ������, ��������� � �������������� ��� ���������� ����������
27
 
������������� ������������� ��������� (������� ������ ������, ��� ������,
28
 
������� ���������, ��� ������ �/��� ������ �������, ���������� ��-�� ��������
29
 
������� ��� �/��� ������ ��������� �������� ��������� � ������� �����������,
30
 
�� �� ������������� ����� ��������), �� �� ������������� ���, ���� ���� �����
31
 
�������� ��� ������ ���� ���� �������� � ����������� ����� ������� � ������.
 
5
Разрешается повторное распространение и использование как в виде исходного кода,
 
6
так и в двоичной форме, с изменениями или без, при соблюдении следующих условий:
 
7
 
 
8
      * При повторном распространении исходного кода должны оставаться указанное
 
9
        выше уведомление об авторском праве, этот список условий и последующий
 
10
        отказ от гарантий.
 
11
      * При повторном распространении двоичного кода в документации и/или в
 
12
        других материалах, поставляемых при распространении, должны сохраняться
 
13
        указанная выше информация об авторском праве, этот список условий и
 
14
        последующий отказ от гарантий.
 
15
      * Ни название Cognitive Technologies, ни имена ее сотрудников не могут
 
16
        быть использованы в качестве средства поддержки и/или продвижения
 
17
        продуктов, основанных на этом ПО, без предварительного письменного
 
18
        разрешения.
 
19
 
 
20
ЭТА ПРОГРАММА ПРЕДОСТАВЛЕНА ВЛАДЕЛЬЦАМИ АВТОРСКИХ ПРАВ И/ИЛИ ДРУГИМИ ЛИЦАМИ "КАК
 
21
ОНА ЕСТЬ" БЕЗ КАКОГО-ЛИБО ВИДА ГАРАНТИЙ, ВЫРАЖЕННЫХ ЯВНО ИЛИ ПОДРАЗУМЕВАЕМЫХ,
 
22
ВКЛЮЧАЯ ГАРАНТИИ КОММЕРЧЕСКОЙ ЦЕННОСТИ И ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ, НО НЕ
 
23
ОГРАНИЧИВАЯСЬ ИМИ. НИ ВЛАДЕЛЕЦ АВТОРСКИХ ПРАВ И НИ ОДНО ДРУГОЕ ЛИЦО, КОТОРОЕ
 
24
МОЖЕТ ИЗМЕНЯТЬ И/ИЛИ ПОВТОРНО РАСПРОСТРАНЯТЬ ПРОГРАММУ, НИ В КОЕМ СЛУЧАЕ НЕ
 
25
НЕСЁТ ОТВЕТСТВЕННОСТИ, ВКЛЮЧАЯ ЛЮБЫЕ ОБЩИЕ, СЛУЧАЙНЫЕ, СПЕЦИАЛЬНЫЕ ИЛИ
 
26
ПОСЛЕДОВАВШИЕ УБЫТКИ, СВЯЗАННЫЕ С ИСПОЛЬЗОВАНИЕМ ИЛИ ПОНЕСЕННЫЕ ВСЛЕДСТВИЕ
 
27
НЕВОЗМОЖНОСТИ ИСПОЛЬЗОВАНИЯ ПРОГРАММЫ (ВКЛЮЧАЯ ПОТЕРИ ДАННЫХ, ИЛИ ДАННЫЕ,
 
28
СТАВШИЕ НЕГОДНЫМИ, ИЛИ УБЫТКИ И/ИЛИ ПОТЕРИ ДОХОДОВ, ПОНЕСЕННЫЕ ИЗ-ЗА ДЕЙСТВИЙ
 
29
ТРЕТЬИХ ЛИЦ И/ИЛИ ОТКАЗА ПРОГРАММЫ РАБОТАТЬ СОВМЕСТНО С ДРУГИМИ ПРОГРАММАМИ,
 
30
НО НЕ ОГРАНИЧИВАЯСЬ ЭТИМИ СЛУЧАЯМИ), НО НЕ ОГРАНИЧИВАЯСЬ ИМИ, ДАЖЕ ЕСЛИ ТАКОЙ
 
31
ВЛАДЕЛЕЦ ИЛИ ДРУГОЕ ЛИЦО БЫЛИ ИЗВЕЩЕНЫ О ВОЗМОЖНОСТИ ТАКИХ УБЫТКОВ И ПОТЕРЬ.
32
32
 
33
33
Redistribution and use in source and binary forms, with or without modification,
34
34
are permitted provided that the following conditions are met:
66
66
 
67
67
CRLEd::CRLEd()
68
68
{
69
 
        mpEdBuffer = (PWord8)RLINGLock(mhEdBuffer = RLINGAlloc(CRL_ED_BUFFER_SIZE));
70
 
        mpEdOutBuffer = (PWord8)RLINGLock(mhEdOutBuffer = RLINGAlloc(CRL_ED_BUFFER_SIZE));
 
69
        mpEdBuffer = (puchar)RLINGLock(mhEdBuffer = RLINGAlloc(CRL_ED_BUFFER_SIZE));
 
70
        mpEdOutBuffer = (puchar)RLINGLock(mhEdOutBuffer = RLINGAlloc(CRL_ED_BUFFER_SIZE));
71
71
        memcpy(mHalfSpaces,"\x1e\x1f",3);
72
72
        memset(&mSdd, 0, sizeof(mSdd));
73
73
        memset(&mFdd, 0, sizeof(mFdd));
87
87
        mpEdFileBound = &mpEdBuffer[CRL_ED_BUFFER_SIZE];
88
88
}
89
89
 
90
 
Bool32 CRLEd::MakeWord(CSTR_rast b, CSTR_rast e, PWord8 pLanguage)
 
90
Bool32 CRLEd::MakeWord(CSTR_rast b, CSTR_rast e, puchar pLanguage)
91
91
{
92
 
        Word8           *l,p;
 
92
        uchar           *l,p;
93
93
        CSTR_rast       c;
94
94
        UniVersions     uni;
95
 
        Int16           k,i,n,h,wb, nlig, nl;
 
95
        int16_t           k,i,n,h,wb, nlig, nl;
96
96
        CSTR_rast_attr  a;
97
 
        Int16           top,bottom,left,right;
 
97
        int16_t           top,bottom,left,right;
98
98
 
99
99
        Init();
100
100
 
120
120
    mSdd.code     =0x0a;
121
121
    mSdd.descr_lth=0x26;
122
122
    mSdd.resolution=300;
123
 
    Write((Word8*)&mSdd,sizeof(mSdd));
 
123
    Write((uchar*)&mSdd,sizeof(mSdd));
124
124
        // start fragm_disk_descr
125
125
    mFdd.code=0x0b;
126
126
    mFdd.language = *pLanguage;
127
127
    mFdd.height   = h;
128
128
    mFdd.w_width  = wb;
129
129
    mFdd.kegl     = 10;
130
 
    Write((Word8*)&mFdd,sizeof(mFdd));
 
130
    Write((uchar*)&mFdd,sizeof(mFdd));
131
131
 
132
132
        // start fragm_disk
133
133
    mFd.code=0x0b;
134
 
    Write((Word8*)&mFd,sizeof(mFd));
 
134
    Write((uchar*)&mFd,sizeof(mFd));
135
135
 
136
136
        for(c=b;c&&c!=e;c=CSTR_GetNext(c))
137
137
    {
144
144
                mBmr.width   =a.w;
145
145
                mBmr.height  =a.h;
146
146
                CSTR_GetCollectionUni(c,&uni);
147
 
                n=(Int16)uni.lnAltCnt;
 
147
                n=(int16_t)uni.lnAltCnt;
148
148
                if(n>7) n=7;
149
149
                if(n<1) n=1;
150
150
 
151
151
                if( n && memchr(mHalfSpaces,uni.Alt[0].Liga,2) )
152
152
        {
153
 
                        Write((Word8*)&mBmr,sizeof(mBmr));
 
153
                        Write((uchar*)&mBmr,sizeof(mBmr));
154
154
                        p=uni.Alt[0].Prob;
155
155
 
156
156
                        if( p&1 )
159
159
                        p++;
160
160
                        mVr.code = uni.Alt[0].Liga;
161
161
                        mVr.prob = p;
162
 
                        Write((Word8*)&mVr,sizeof(mVr));
 
162
                        Write((uchar*)&mVr,sizeof(mVr));
163
163
                        continue;  // half spaces for spelling analisys
164
164
        }
165
165
                nlig = strlen((char*)uni.Alt[0].Code);
169
169
 
170
170
                for(nl=0;nl<nlig;nl++)
171
171
                {
172
 
                        Write((Word8*)&mBmr,sizeof(mBmr));
 
172
                        Write((uchar*)&mBmr,sizeof(mBmr));
173
173
 
174
174
                        for(k=i=0;k<n;)
175
175
                        {
182
182
                                                p = p+1; // last even propability
183
183
                                        mVr.code = *l;
184
184
                                        mVr.prob =  p;
185
 
                                        Write((Word8*)&mVr,sizeof(mVr));
 
185
                                        Write((uchar*)&mVr,sizeof(mVr));
186
186
                                }
187
187
                        }
188
188
                }
192
192
        return TRUE;
193
193
}
194
194
 
195
 
Bool32 CRLEd::AddWord(CSTR_rast b, CSTR_rast e, PWord8 pLanguage)
 
195
Bool32 CRLEd::AddWord(CSTR_rast b, CSTR_rast e, puchar pLanguage)
196
196
{
197
 
        Word8           *l,p;
 
197
        uchar           *l,p;
198
198
        CSTR_rast       c;
199
199
        UniVersions     uni;
200
 
        Int16           k,i,n, nlig, nl;
 
200
        int16_t           k,i,n, nlig, nl;
201
201
        CSTR_rast_attr  a;
202
202
 
203
203
        for(c=b;c && c!=e;c=CSTR_GetNext(c))
220
220
                mBmr.width   =a.w;
221
221
                mBmr.height  =a.h;
222
222
                CSTR_GetCollectionUni(c,&uni);
223
 
                n=(Int16)uni.lnAltCnt;
 
223
                n=(int16_t)uni.lnAltCnt;
224
224
                if(n>7) n=7;
225
225
                if(n<1) n=1;
226
226
 
227
227
                if( n && memchr(mHalfSpaces,uni.Alt[0].Liga,2) )
228
228
        {
229
 
                        Write((Word8*)&mBmr,sizeof(mBmr));
 
229
                        Write((uchar*)&mBmr,sizeof(mBmr));
230
230
                        p=uni.Alt[0].Prob;
231
231
 
232
232
                        if( p&1 )
235
235
                        p++;
236
236
                        mVr.code = uni.Alt[0].Liga;
237
237
                        mVr.prob = p;
238
 
                        Write((Word8*)&mVr,sizeof(mVr));
 
238
                        Write((uchar*)&mVr,sizeof(mVr));
239
239
                        continue;  // half spaces for spelling analisys
240
240
        }
241
241
                nlig = strlen((char*)uni.Alt[0].Code);
245
245
 
246
246
                for(nl=0;nl<nlig;nl++)
247
247
                {
248
 
                        Write((Word8*)&mBmr,sizeof(mBmr));
 
248
                        Write((uchar*)&mBmr,sizeof(mBmr));
249
249
 
250
250
                        for(k=i=0;k<n;)
251
251
                        {
260
260
 
261
261
                                        mVr.code = *l;
262
262
                                        mVr.prob =  p;
263
 
                                        Write((Word8*)&mVr,sizeof(mVr));
 
263
                                        Write((uchar*)&mVr,sizeof(mVr));
264
264
                                }
265
265
                        }
266
266
                }
269
269
        return TRUE;
270
270
}
271
271
 
272
 
void CRLEd::Write(PWord8 pP, Word16 wSize)
 
272
void CRLEd::Write(puchar pP, uint16_t wSize)
273
273
{
274
274
        if (mpEdFileBound -  mpEdFileEnd < wSize)
275
275
    {
280
280
        mpEdFileEnd += wSize;
281
281
}
282
282
 
283
 
Bool32 CRLEd::ExcludeToVers(Int32 size, PChar8 pStr)
 
283
Bool32 CRLEd::ExcludeToVers(int32_t size, char* pStr)
284
284
{
285
 
        Word8  *p,*pe;
 
285
        uchar  *p,*pe;
286
286
        //struct  vers_ref     vf;
287
287
        //struct  bit_map_ref  bm;
288
288
        struct  VersRef     vf;
289
289
        struct  BitMapRef   bm;
290
 
        Int32   i;
 
290
        int32_t   i;
291
291
        Bool32  new_bmp;
292
292
 
293
293
        //i=-1;
351
351
        return TRUE;
352
352
}
353
353
 
354
 
Rect16 CRLEd::GetRectElement(Word32 i)
 
354
Rect16 CRLEd::GetRectElement(uint32_t i)
355
355
{
356
356
        Rect16 Out={0,0,0,0};
357
357
 
362
362
        return Out;
363
363
}
364
364
 
365
 
RecVersions CRLEd::GetVersElement(Word32 i, PWord32 wNVers)
 
365
RecVersions CRLEd::GetVersElement(uint32_t i, uint32_t * wNVers)
366
366
{
367
367
        RecVersions Out ={0,0,0};
368
368