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

« back to all changes in this revision

Viewing changes to cuneiform_src/Kern/exc/src/locompmn.c

  • 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:
61
61
#include "struct.h"
62
62
#include "v1comp.h"
63
63
 
64
 
BWS *locomp_seglist(Word8* raster, BWS *bwsp, BWS *bwe, Int16 height, Int16 width);
 
64
BWS *locomp_seglist(uchar* raster, BWS *bwsp, BWS *bwe, int16_t height, int16_t width);
65
65
 
66
66
//      Memory service
67
67
#define MAX_BOX_NUMB            100*4
74
74
static MN * first_dead_comp;
75
75
static BWS * segm_repr_end;
76
76
static BWS * op, *np;
77
 
static Int16 ol, nl;
78
 
static Int16 rast_lc;
79
 
static Int16 lineno;
 
77
static int16_t ol, nl;
 
78
static int16_t rast_lc;
 
79
static int16_t lineno;
80
80
 
81
81
 
82
82
static BWS lines[LINE_POOL_LENGTH+9];
83
 
static Word8 boxes[BOXSIZE * MAX_BOX_NUMB];
 
83
static uchar boxes[BOXSIZE * MAX_BOX_NUMB];
84
84
static MN main_numbers[MAX_INT_NUMB];
85
85
 
86
86
   // Oleg : 18-08-1994 : link DIFFRV.C
87
87
   // Vald: 10-03-96 07:18pm set it const
88
 
const Word8* segment_pool=(Word8*)lines;
 
88
const uchar* segment_pool=(uchar*)lines;
89
89
 
90
90
#define end_line_pool  (lines + LINE_POOL_LENGTH)
91
 
#define box_alloc(bp) bp = boxalloc; boxalloc = (BOX *)((Word8*)boxalloc + BOXSIZE)
 
91
#define box_alloc(bp) bp = boxalloc; boxalloc = (BOX *)((uchar*)boxalloc + BOXSIZE)
92
92
 
93
93
static jmp_buf locomp_err;
94
94
 
102
102
static void merge_line();
103
103
static void dead_line();
104
104
 
105
 
MN * c_locomp (Word8* raster, Int16 bw, Int16 h, Int16 upper, Int16 left)
 
105
MN * c_locomp (uchar* raster, int16_t bw, int16_t h, int16_t upper, int16_t left)
106
106
{
107
107
 lineno = upper-1; rast_lc = left;
108
108
 if (setjmp(locomp_err)) return NULL;
114
114
 
115
115
static void locomp_begin()
116
116
{
117
 
 Int16 i;
 
117
 int16_t i;
118
118
 MN * mn;
119
119
 first_dead_comp = NULL;
120
120
 segm_repr_end->b = 0; (segm_repr_end++)->w = -0x7000;
186
186
 BOX * bp, *bpw;
187
187
 BOXINT * ip;
188
188
 MN *mn;
189
 
 bp = op->box; ip = (BOXINT *)((Word8*)bp + bp->boxptr);
 
189
 bp = op->box; ip = (BOXINT *)((uchar*)bp + bp->boxptr);
190
190
 if (bp->boxptr > BOXBOUNDARY) goto fullbox; bp->boxptr += sizeof (*ip);
191
191
resume:
192
192
 np->box = bp; ip->l = np->b; ip->d = nl - ol;
198
198
 if (boxalloc == boxallocend) longjmp(locomp_err,1);
199
199
 bpw->boxmain = mn = bp->boxmain; mn->mnboxcnt++;
200
200
 bpw->boxnext = bp->boxnext; bp->boxnext = bpw;
201
 
 bp = bpw; ip = (BOXINT *)((Word8*)bp + sizeof(BOX));
 
201
 bp = bpw; ip = (BOXINT *)((uchar*)bp + sizeof(BOX));
202
202
 bp->boxptr = sizeof(BOX) + sizeof(BOXINT); bp->boxflag = 0;
203
203
 bp->boxleft = bp->boxright = nl; goto resume;
204
204
}
241
241
 MN *mn, *mno, *mnw;
242
242
 BOX *bp, *bpo;
243
243
 BOXINT *ip;
244
 
 Int16 n;
 
244
 int16_t n;
245
245
 
246
246
 bpo = op->box; bpo->boxflag |= BOXEND;
247
 
 ip = (BOXINT *)((Word8*)bpo + bpo->boxptr); ip->l = 0; bpo->boxptr++;
 
247
 ip = (BOXINT *)((uchar*)bpo + bpo->boxptr); ip->l = 0; bpo->boxptr++;
248
248
 bpo->boxey = lineno; bpo->boxex = ol; bpo->boxel = op->b;
249
249
 
250
250
 bp = np->box; mn = bp->boxmain; mno = bpo->boxmain;
267
267
 BOX *bp;
268
268
 MN *mn;
269
269
 BOXINT *ip;
270
 
 bp = op->box; ip = (BOXINT *)((Word8*)bp + bp->boxptr++); ip->l = 0;
 
270
 bp = op->box; ip = (BOXINT *)((uchar*)bp + bp->boxptr++); ip->l = 0;
271
271
 bp->boxey = lineno; bp->boxex = ol; bp->boxel = op->b;
272
272
 bp->boxflag |= BOXFREEEND;
273
273
 mn = bp->boxmain; mn->mnends++; if (--(mn->mncounter)) return;