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

« back to all changes in this revision

Viewing changes to cuneiform_src/Kern/rblock/sources/new_c/_partlayout.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:
80
80
# include "new_c.h"
81
81
#include "minmax.h"
82
82
/////////////////////////////////////
83
 
//extern WORD run_options;
 
83
//extern uint16_t run_options;
84
84
//extern int nComps;
85
85
//extern CCOM_comp *pComps;
86
 
//extern BYTE *CellsPage; // *** Rom 03-03-99
 
86
//extern uchar *CellsPage; // *** Rom 03-03-99
87
87
/*
88
88
#define ROM_TYPE_TABLE 111;
89
89
#define BOUND 15
96
96
Handle hCcom;
97
97
 
98
98
////////////////////////////////////
99
 
Word32 NumberOfLettersInArea(Rect32 rect, int Number)
 
99
uint32_t NumberOfLettersInArea(Rect32 rect, int Number)
100
100
{
101
 
        Word32 Result = 0;
 
101
        uint32_t Result = 0;
102
102
        ROOT *pRoot;
103
103
        //int i;
104
104
 
469
469
{
470
470
 
471
471
//STEPA_AM
472
 
//���� ��� ���������� ��� ���������, � ��� ����������,
473
 
//�� ������������ ����� �����������
 
472
//Пока так определяем кто врезаемый, а кто обтекаемый,
 
473
//Но правильность этого сомнительна
474
474
        if(!pic)
475
475
        {
476
476
                if(GetPOLYHeight(poly1)<GetPOLYHeight(poly2))
512
512
        div_t d1;
513
513
        int defect;
514
514
 
515
 
        // ������ �� ����� ����, � ����� ��������� ��������
 
515
        // Теперь мы знаем угол, и можем повернуть картинки
516
516
        j = 0;
517
517
        hBlock = CPAGE_GetBlockFirst (hPage, TYPE_IMAGE);
518
518
        while (hBlock != NULL)
570
570
                if(block.com.Vertex[0].x!=block.com.Vertex[block.com.count-1].x)
571
571
                        block.com.Vertex[block.com.count-1].x = block.com.Vertex[0].x;
572
572
                /*********************/
573
 
                sprintf(tmp_str, "  <4 � 1 %4d %4d %4d %4d %d \n",
 
573
                sprintf(tmp_str, "  <4 О 1 %4d %4d %4d %4d %d \n",
574
574
                        block.com.Vertex[0].x, block.com.Vertex[0].y,
575
575
                        block.com.Vertex[1].x, block.com.Vertex[1].y,
576
576
                        block.com.Vertex[2].y - block.com.Vertex[1].y);
581
581
                hBlock = CPAGE_GetBlockNext(hPage, hBlock, TYPE_IMAGE);
582
582
        }
583
583
 
584
 
        sprintf(tmp_str, "  <4 � %d %d %d \n", j, 0 ,0);
 
584
        sprintf(tmp_str, "  <4 Р %d %d %d \n", j, 0 ,0);
585
585
        LDPUMA_FPuts(resFile_pict, tmp_str);
586
586
 
587
587
 
602
602
        {
603
603
                LayoutPart1 ();
604
604
 
605
 
                LDPUMA_FPuts(resFile_pict, "  <4 � ����� �������� \n");
 
605
                LDPUMA_FPuts(resFile_pict, "  <4 Н После поворота \n");
606
606
 
607
607
                PageRoatateBlocks (hPage);
608
608
 
609
 
                LDPUMA_FPuts(resFile_pict, "  <4 � ����� �������� \n");
610
 
                LDPUMA_FPuts(resFile_pict, "  <3 � �������� \n");
611
 
                LDPUMA_FPuts(resFile_pict, "  <2 � �������� \n");
 
609
                LDPUMA_FPuts(resFile_pict, "  <4 К После поворота \n");
 
610
                LDPUMA_FPuts(resFile_pict, "  <3 К Картинки \n");
 
611
                LDPUMA_FPuts(resFile_pict, "  <2 К Страница \n");
612
612
 
613
613
                // ************************************************
614
614
                free (CellsPage); // *** Rom 03-03-99
622
622
{
623
623
        int j;
624
624
 
625
 
        //!!! Redart 14.01.08 - �������� � ������� ������� ����� �� 1
 
625
        //!!! Redart 14.01.08 - Уменьшил с верхнюю границу цикла на 1
626
626
        for(j = i; j < max - 1; j++)
627
627
        {
628
628
                all_polys[j] = all_polys[j+1];
638
638
        BLOCK *p;
639
639
        //BLOCK *q;
640
640
        //BLOCK *r;
641
 
        DWORD nAverageHeight;
 
641
 uint32_t nAverageHeight;
642
642
 
643
643
        ROOT *pRoot;
644
644
 
645
645
        RecRaster rec;
646
646
        RecVersions vs;
647
 
        Int16 Language;
648
 
 
649
 
 
650
 
        DWORD i = 0;
 
647
        int16_t Language;
 
648
 
 
649
 
 
650
 uint32_t i = 0;
651
651
        int nRealLetters = 0;
652
652
        nAverageHeight = 0;
653
653
 
680
680
                        goto AGAIN_PQ;
681
681
                }
682
682
 
683
 
                if((DWORD)(p->Rect.xRight-p->Rect.xLeft) < nAverageHeight)
 
683
                if((uint32_t)(p->Rect.xRight-p->Rect.xLeft) < nAverageHeight)
684
684
                {
685
685
                        /*
686
686
                        q = p -> pNext;
752
752
        BLOCK * p = NULL;
753
753
        Bool32 rc = TRUE;
754
754
        int    count;
755
 
        Word32 BlockNumber;
756
 
        Int32  Min, PrevMin;
 
755
        uint32_t BlockNumber;
 
756
        int32_t  Min, PrevMin;
757
757
        Handle hBlock = NULL; // ***** Rom 01-03-99
758
758
        Handle h;
759
759
        Handle h_next;
767
767
        POLY_   block;
768
768
        POLY_   * all_polys;
769
769
 
770
 
        LDPUMA_FPuts(resFile_blocks, "  <2 � �������� =");
 
770
        LDPUMA_FPuts(resFile_blocks, "  <2 Н Страница =");
771
771
        LDPUMA_FPuts(resFile_blocks, file_name);
772
772
        LDPUMA_FPuts(resFile_blocks, " \n");
773
 
        //LDPUMA_FPuts(resFile_blocks, "  <2 � �������� \n");
774
 
        LDPUMA_FPuts(resFile_blocks, "  <3 � ��������� \n");
775
 
        //LDPUMA_FPuts(resFile_blocks, "  <4 � ����� ���������� ����������� \n");
776
 
        LDPUMA_FPuts(resFile_blocks, "  <4 � ��������� ������ ������� ������������� \n");
 
773
        //LDPUMA_FPuts(resFile_blocks, "  <2 Н Страница \n");
 
774
        LDPUMA_FPuts(resFile_blocks, "  <3 Н Фрагменты \n");
 
775
        //LDPUMA_FPuts(resFile_blocks, "  <4 Н Перед обработкой пересечений \n");
 
776
        LDPUMA_FPuts(resFile_blocks, "  <4 Н Результат работы старого фрагментатора \n");
777
777
 
778
778
 
779
779
        BlocksExtract(); // inserted by Rom to remove NULL-sized blocks
804
804
                                                * COMPS_QUANTUM * sizeof (POLY_)));
805
805
                                }
806
806
 
807
 
                all_polys[i].com.type = TYPE_TEXT;//�����, ��������, �������;
808
 
                //all_polys[i].com.number = ++count;//���������� �����
809
 
                all_polys[i].com.number = p->nNumber;//���������� �����
 
807
                all_polys[i].com.type = TYPE_TEXT;//Текст, Картинка, Таблица;
 
808
                //all_polys[i].com.number = ++count;//порядковый номер
 
809
                all_polys[i].com.number = p->nNumber;//порядковый номер
810
810
                all_polys[i].com.Color = 0;
811
811
                all_polys[i].com.count = 4;
812
812
                all_polys[i].com.Vertex[0].x = p->Rect.xLeft;
819
819
                all_polys[i].com.Vertex[3].y = p->Rect.yBottom;
820
820
                all_polys[i].alphabet = 0;
821
821
 
822
 
                sprintf(tmp_str, "  <4 � 1 %4d %4d %4d %4d %d \n",
 
822
                sprintf(tmp_str, "  <4 О 1 %4d %4d %4d %4d %d \n",
823
823
                        all_polys[i].com.Vertex[0].x, all_polys[i].com.Vertex[0].y,
824
824
                        all_polys[i].com.Vertex[1].x, all_polys[i].com.Vertex[1].y,
825
825
                        all_polys[i].com.Vertex[2].y - all_polys[i].com.Vertex[1].y);
830
830
        }
831
831
        max = i;
832
832
 
833
 
        sprintf(tmp_str, "  <4 � %d %d %d \n", i,0 ,0);
 
833
        sprintf(tmp_str, "  <4 Р %d %d %d \n", i,0 ,0);
834
834
        LDPUMA_FPuts(resFile_blocks, tmp_str);
835
 
        LDPUMA_FPuts(resFile_blocks, "  <4 � ��������� ������ ������� ������������� \n");
 
835
        LDPUMA_FPuts(resFile_blocks, "  <4 К Результат работы старого фрагментатора \n");
836
836
 
837
837
        i=0;
838
838
        for(h = CPAGE_GetBlockFirst(hPage,TYPE_IMAGE);
1027
1027
        }
1028
1028
        // **********************************************
1029
1029
 
1030
 
        //LDPUMA_FPuts(resFile_blocks, "  <4 � ����� ��������� ����������� \n");
1031
 
        LDPUMA_FPuts(resFile_blocks, "  <4 � ����� \n");
 
1030
        //LDPUMA_FPuts(resFile_blocks, "  <4 Н После обработки пересечений \n");
 
1031
        LDPUMA_FPuts(resFile_blocks, "  <4 Н Финал \n");
1032
1032
 
1033
1033
        PrevMin = -2000;
1034
1034
        Min = -1000;
1069
1069
                if(all_polys[i].com.count == 4)
1070
1070
                {
1071
1071
                        j++;
1072
 
                        sprintf(tmp_str, "  <4 � 1 %4d %4d %4d %4d %d \n",
 
1072
                        sprintf(tmp_str, "  <4 О 1 %4d %4d %4d %4d %d \n",
1073
1073
                                all_polys[i].com.Vertex[0].x, all_polys[i].com.Vertex[0].y,
1074
1074
                                all_polys[i].com.Vertex[1].x, all_polys[i].com.Vertex[1].y,
1075
1075
                                all_polys[i].com.Vertex[2].y - all_polys[i].com.Vertex[1].y);
1087
1087
                CPAGE_SetBlockUserNum(hPage, hBlock, BlockNumber);
1088
1088
    }
1089
1089
 
1090
 
        sprintf(tmp_str, "  <4 � %d %d %d \n", j, 0 ,0);
 
1090
        sprintf(tmp_str, "  <4 Р %d %d %d \n", j, 0 ,0);
1091
1091
        LDPUMA_FPuts(resFile_blocks, tmp_str);
1092
 
        LDPUMA_FPuts(resFile_blocks, "  <4 � ����� \n");
1093
 
        LDPUMA_FPuts(resFile_blocks, "  <3 � ��������� \n");
1094
 
        LDPUMA_FPuts(resFile_blocks, "  <2 � �������� \n");
 
1092
        LDPUMA_FPuts(resFile_blocks, "  <4 К Финал \n");
 
1093
        LDPUMA_FPuts(resFile_blocks, "  <3 К Фрагменты \n");
 
1094
        LDPUMA_FPuts(resFile_blocks, "  <2 К Страница \n");
1095
1095
 
1096
1096
 
1097
1097
 
1147
1147
                }
1148
1148
        }
1149
1149
 
1150
 
//��������
 
1150
//Негативы
1151
1151
 
1152
1152
        h = CPAGE_GetBlockFirst(hPage,TYPE_IMAGE);
1153
1153
        while(h)
1180
1180
return rc;
1181
1181
}
1182
1182
//#######################################################
1183
 
void CalculatePageIncline(Handle hCCOM, Int32 * lpNominator, Int32 * lpDenominator)
 
1183
void CalculatePageIncline(Handle hCCOM, int32_t * lpNominator, int32_t * lpDenominator)
1184
1184
{
1185
 
//  PageLayoutBlocks((Int32)hCCOM);
 
1185
//  PageLayoutBlocks((int32_t)hCCOM);
1186
1186
 
1187
1187
  *lpDenominator = INCLINE_FACTOR;
1188
1188
  *lpNominator   = nIncline;