2
2
Copyright (c) 1993-2008, Cognitive Technologies
5
����������� ��������� ��������������� � ������������� ��� � ���� ��������� ����,
6
��� � � �������� �����, � ����������� ��� ���, ��� ���������� ��������� �������:
8
* ��� ��������� ��������������� ��������� ���� ������ ���������� ���������
9
���� ����������� �� ��������� �����, ���� ������ ������� � �����������
11
* ��� ��������� ��������������� ��������� ���� � ������������ �/��� �
12
������ ����������, ������������ ��� ���������������, ������ �����������
13
��������� ���� ���������� �� ��������� �����, ���� ������ ������� �
14
����������� ����� �� ��������.
15
* �� �������� Cognitive Technologies, �� ����� �� ����������� �� �����
16
���� ������������ � �������� �������� ��������� �/��� �����������
17
���������, ���������� �� ���� ��, ��� ���������������� �����������
20
��� ��������� ������������� ����������� ��������� ���� �/��� ������� ������ "���
21
��� ����" ��� ������-���� ���� ��������, ���������� ���� ��� ���������������,
22
������� �������� ������������ �������� � ����������� ��� ���������� ����, �� ��
23
������������� ���. �� �������� ��������� ���� � �� ���� ������ ����, �������
24
����� �������� �/��� �������� �������������� ���������, �� � ���� ������ ��
25
��Ѩ� ���������������, ������� ����� �����, ���������, ����������� ���
26
������������� ������, ��������� � �������������� ��� ���������� ����������
27
������������� ������������� ��������� (������� ������ ������, ��� ������,
28
������� ���������, ��� ������ �/��� ������ �������, ���������� ��-�� ��������
29
������� ��� �/��� ������ ��������� �������� ��������� � ������� �����������,
30
�� �� ������������� ����� ��������), �� �� ������������� ���, ���� ���� �����
31
�������� ��� ������ ���� ���� �������� � ����������� ����� ������� � ������.
5
Разрешается повторное распространение и использование как в виде исходного кода,
6
так и в двоичной форме, с изменениями или без, при соблюдении следующих условий:
8
* При повторном распространении исходного кода должны оставаться указанное
9
выше уведомление об авторском праве, этот список условий и последующий
11
* При повторном распространении двоичного кода в документации и/или в
12
других материалах, поставляемых при распространении, должны сохраняться
13
указанная выше информация об авторском праве, этот список условий и
14
последующий отказ от гарантий.
15
* Ни название Cognitive Technologies, ни имена ее сотрудников не могут
16
быть использованы в качестве средства поддержки и/или продвижения
17
продуктов, основанных на этом ПО, без предварительного письменного
20
ЭТА ПРОГРАММА ПРЕДОСТАВЛЕНА ВЛАДЕЛЬЦАМИ АВТОРСКИХ ПРАВ И/ИЛИ ДРУГИМИ ЛИЦАМИ "КАК
21
ОНА ЕСТЬ" БЕЗ КАКОГО-ЛИБО ВИДА ГАРАНТИЙ, ВЫРАЖЕННЫХ ЯВНО ИЛИ ПОДРАЗУМЕВАЕМЫХ,
22
ВКЛЮЧАЯ ГАРАНТИИ КОММЕРЧЕСКОЙ ЦЕННОСТИ И ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ, НО НЕ
23
ОГРАНИЧИВАЯСЬ ИМИ. НИ ВЛАДЕЛЕЦ АВТОРСКИХ ПРАВ И НИ ОДНО ДРУГОЕ ЛИЦО, КОТОРОЕ
24
МОЖЕТ ИЗМЕНЯТЬ И/ИЛИ ПОВТОРНО РАСПРОСТРАНЯТЬ ПРОГРАММУ, НИ В КОЕМ СЛУЧАЕ НЕ
25
НЕСЁТ ОТВЕТСТВЕННОСТИ, ВКЛЮЧАЯ ЛЮБЫЕ ОБЩИЕ, СЛУЧАЙНЫЕ, СПЕЦИАЛЬНЫЕ ИЛИ
26
ПОСЛЕДОВАВШИЕ УБЫТКИ, СВЯЗАННЫЕ С ИСПОЛЬЗОВАНИЕМ ИЛИ ПОНЕСЕННЫЕ ВСЛЕДСТВИЕ
27
НЕВОЗМОЖНОСТИ ИСПОЛЬЗОВАНИЯ ПРОГРАММЫ (ВКЛЮЧАЯ ПОТЕРИ ДАННЫХ, ИЛИ ДАННЫЕ,
28
СТАВШИЕ НЕГОДНЫМИ, ИЛИ УБЫТКИ И/ИЛИ ПОТЕРИ ДОХОДОВ, ПОНЕСЕННЫЕ ИЗ-ЗА ДЕЙСТВИЙ
29
ТРЕТЬИХ ЛИЦ И/ИЛИ ОТКАЗА ПРОГРАММЫ РАБОТАТЬ СОВМЕСТНО С ДРУГИМИ ПРОГРАММАМИ,
30
НО НЕ ОГРАНИЧИВАЯСЬ ЭТИМИ СЛУЧАЯМИ), НО НЕ ОГРАНИЧИВАЯСЬ ИМИ, ДАЖЕ ЕСЛИ ТАКОЙ
31
ВЛАДЕЛЕЦ ИЛИ ДРУГОЕ ЛИЦО БЫЛИ ИЗВЕЩЕНЫ О ВОЗМОЖНОСТИ ТАКИХ УБЫТКОВ И ПОТЕРЬ.
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:
63
63
#include <string.h>
64
64
#include "stdafx.h"
65
65
#include "rout_own.h"
66
#include "ligas.h" // ������ � HHH 01.09.2000 E.P.
66
#include "ligas.h" // Теперь в HHH 01.09.2000 E.P.
68
static BOOL Static_MakeText(Handle hObject, long reason);
69
static BOOL TableStub();
70
static BOOL IncludeTable();
68
static Bool Static_MakeText(Handle hObject, long reason);
69
static Bool TableStub();
70
static Bool IncludeTable();
72
72
//********************************************************************
77
������� �������� � ����:
78
"<< ������� 1: ����� 1, �������� 2, ����� 2 >>"
80
����� ����� �����������, ���� gPreserveLineBreaks = TRUE.
77
Таблицы выдаются в виде:
78
"<< Таблица 1: строк 1, столбцов 2, ячеек 2 >>"
80
Концы строк сохраняются, если gPreserveLineBreaks = TRUE.
83
83
return BrowsePage(Static_MakeText,
120
120
case BROWSE_PARAGRAPH_END:
125
125
case BROWSE_TABLE_START:
128
// �������� ������� � ����� ��������
128
// Включить таблицу в текст страницы
129
129
if (gTableTextOptions & ROUT_TABLE_TEXT_INCLUDED)
130
130
{if (!IncludeTable()) return FALSE;}
132
// ���������� ����� ������� � ������ ��������
132
// Обозначить место таблицы в тексте страницы
133
133
{if (!TableStub()) return FALSE;}
137
137
case BROWSE_TABLE_END:
144
// �������� �� ������� � ��������
144
// Слежение за словами и строками
145
145
WORDS_CONTROL(reason);
147
return TRUE; // ���������� ��������
147
return TRUE; // Продолжить просмотр
149
149
//********************************************************************
152
// �������� ����� ������
152
// Записать конец строки
154
154
CHECK_MEMORY(10);
156
// ��� ������ Words.cpp
156
// Для модуля Words.cpp
157
157
gCharBack = gMemCur;
159
159
Byte *p = (Byte*)gEOL;
185
185
gCharBack = gMemCur;
187
// �������, ����������� ��� ������������ SmartText,
188
// ����� ������ 253; �� ������� ����������
189
// ��� ���� ��������� ��������
187
// Пробелы, вставленные для выравнивания SmartText,
188
// имеют оценку 253; их следует пропускать
189
// для всех остальных форматов
190
190
if (c1 == ' ' && alt->probability == 253 &&
191
191
gFormat != ROUT_FMT_SmartText
195
// ����������� ������ �������������
195
// Специальные случаи перекодировки
198
// ����������� �������� - ���������,
199
// �� �������� ��� ����. 26.05.99
201
case (BYTE)206: case (BYTE)207:
202
case (BYTE)174: case (BYTE)190:
203
if( gLanguage==LANG_FRENCH )
207
198
// unknows symbol
330
322
//********************************************************************
331
BOOL PutString(char *s)
323
Bool PutString(char *s)
333
// ������ ������ � �����.
334
// ���������� �������� ������ �����, ��� �����
335
// ������������� ������������ NEW_LINE
325
// Запись строки в ответ.
326
// Желательно избегать концов строк, для этого
327
// рекомендуется использовать NEW_LINE
337
ULONG lth = strlen(s);
329
ulong lth = strlen(s);
342
CHECK_MEMORY(lth+10); // � �������
334
CHECK_MEMORY(lth+10); // С запасом
344
336
strcpy((char*)gMemCur,s);
348
340
//********************************************************************
349
BOOL PutSpaces(long lth)
341
Bool PutSpaces(long lth)
351
// ������ �������� � �����.
343
// Запись пробелов в ответ.
356
CHECK_MEMORY(lth+10); // � �������
348
CHECK_MEMORY(lth+10); // С запасом
358
350
memset (gMemCur,' ', lth);
362
354
//********************************************************************
363
static BOOL TableStub()
355
static Bool TableStub()
365
// ����������� ������� � ������ ��������
357
// Обозначение таблицы в тексте страницы
367
// ����� "�������", "�����:", "��������:", "�����:"
359
// Слова "Таблица", "Строк:", "Столбцов:", "Ячеек:"
368
360
char word1[40]="", word2[40]="", word3[40]="", word4[40]="";
370
362
LoadString((HINSTANCE)ghInst_rout,
391
383
//********************************************************************
392
static BOOL IncludeTable()
384
static Bool IncludeTable()
395
�������� ������� � ����� ��������
387
Включить таблицу в текст страницы
399
// ��������� ������ ������
391
// Сохранить начало памяти
400
392
Byte *saveMemStart = gMemStart;
402
// ������ ���������� ��������� ������
394
// Начало оставшейся свободной памяти
403
395
gMemStart = gMemCur;
405
// �������� ��������� ������
397
// Обнулить свободную память
406
398
memset(gMemStart,0,gMemEnd - gMemStart);
408
// ������� ��������� �����
409
BOOL good = MakeTableText();
400
// Вызвать табличный текст
401
Bool good = MakeTableText();
411
// ������������ ������ ������
403
// Восстановить начало памяти
412
404
gMemStart = saveMemStart;