summaryrefslogtreecommitdiff
path: root/fontconvert/ChangeLog.old
blob: ec8be6495a73b314c020232860d48a8e92728723 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
Sat Mar 30 07:17:23 1996  Kathy Hargreaves  <letters@cs.umb.edu>

        * output-epsf.c: don't assign NAME to OUTPUT_NAME, as NAME is
          already it.  Doc fix.

        * output-gf.c (gf_start_output): copy gf_name and write actual
          filenames when prepending an `x' to the output filename.

Fri Nov 24 07:03:53 1995  Kathy Hargreaves  <karl@cs.umb.edu>

        * main.c: call kpse_set_progname(argv[0]).

Thu Nov 23 06:25:51 1995  Kathy Hargreaves  <karl@cs.umb.edu>

        * output-tfm.c: (tfm_start_output): call kpse_find_tfm instead of
        find_tfm_filename.

        * main.c (tfm): Added warning about below to help.

        * output-tfm.c: (tfm_start_output): Added warning about outputting
        to a file with the input PL filename except with an `x' prepended,
        analogous to the one for the GF output filename.

Mon Oct 16 06:11:45 1995  Kathy Hargreaves  <karl@cs.umb.edu>

        * output-tfm.c (tfm_start_output): no longer extend output_root to
        have .pl for pl_name, as pltotf adds it (which may be a bug).

Sat Aug  7 11:55:02 1993  Karl Berry  (karl@cs.umb.edu)

	* *.h: types.h now in kpathsea.

Thu Dec  3 15:40:46 1992  Karl Berry  (karl@cs.umb.edu)

	* main.c: Don't bother to include getopt.h, cmdline.h already does.

Tue Oct 27 13:01:55 1992  Karl Berry  (karl@cs.umb.edu)

	* Version 0.6.

Fri Oct 23 14:15:22 1992  Karl Berry  (karl@cs.umb.edu)

	* main.c (main): Remove the -space option.
        * output-gf.c (gf_finish_output): And remove the code that
          implemented it.
        (space_char): And this global.
        * output-gf.h (space_char): And the decl.

Tue Oct 20 11:54:55 1992  Karl Berry  (karl@cs.umb.edu)

	* main.c (main): Change the reporting so the space or newline
	comes before the character, not after.

	* main.c (main): Don't remove the suffix when making the output
	filename, as we already did; pass the input name to
	`gf_start_output', not the full bitmap filename.

Mon Oct  5 10:12:03 1992  Karl Berry  (karl@cs.umb.edu)

	* main.c (read_command_line): If -text is given, set `report_file'
	to stderr.

Sun Oct  4 14:03:53 1992  Karl Berry  (karl@cs.umb.edu)

	* output-tfm.c (tfm_start_output): Report the TFM filename if we
	are reading one.

	* main.c (main): Report the full pathname of the font, not just
	what the user gave us.

	* main.c (main): Call `tfm_finish_output' before `gf_finish_output'.

Tue Sep 22 16:30:25 1992  Karl Berry  (karl@cs.umb.edu)

        * output-gf.c (gf_finish_output): output a newline after the space
          char's code.

Thu Sep  3 09:30:31 1992  Karl Berry  (karl@hayley)

        * Version 0.5.

Mon Aug 24 16:41:02 1992  Karl Berry  (karl@hayley)

        * random.c (random_number): seed the random number with the
          process ID.

Sun Aug 23 13:37:00 1992  Karl Berry  (karl@hayley)

        * main.c (USAGE): put a newline before concatenating GETOPT_USAGE.

Fri Jul  3 19:12:36 1992  Karl Berry  (karl@hayley)

        * main.c (encoding_name, encoding_info_ptr): delete these globals.
        (most parsing routines): just use `encoding_info'.

        * main.c (read_command_line): use xparse_charspec for -space.

Sat Jun 27 11:10:01 1992  Kathy Hargreaves  (kathy@hayley)

        * main.c (charspec.h, encoding.h, libfile.h): included.
          (encoding_name, encoding_info, encoding_info_ptr): added.
          (main): added newline after font_name report.
          (USAGE): added `encoding', updated `omit'
          (read_command_line): added `encoding' option.
          (scan_*): use ARG_SEP instead of a comma.  Use xparse_charspec
          instead of xparse_charcode.

Sun Jun 14 08:45:21 1992  Karl Berry  (karl@hayley)

        * output-tfm.c (tfm_output_char): compare elt of `baseline_adjust'
          to 0, not NULL.

        * output-tfm.c (tfm_do_chars_defaults): update for new tfm routines.

Mon Jun  8 15:24:49 1992  Karl Berry  (karl@hayley)

        * output-tfm.c (tfm_do_chars_defaults): pass kern list to
          tfm_set_kern instead of the whole TFM char.

Fri Jun  5 09:19:27 1992  Karl Berry  (karl@hayley)

        * filter.c (filter_once): look at all the pixels, and don't crash
          when `filter_size' is bigger than the bitmap.

        * main.c (main): `return 0' instead of `exit (0)'.  (From Paul Eggert)

Sun May 31 08:04:27 1992  Karl Berry  (karl@hayley)

        * main.c: rename `design-size' option to `designsize'.

        * main.c (read_command_line): have the arg to -space be optional,
          and make the default 32.
        * output-gf.c (gf_finish_output): report the charcode of the space
          if we output it.

        * output-tfm.c (tfm_start_font): new routine.
        (main_input_font_p): new static.
        (tfm_output_char): don't look in TFM file for the main font if
          we're on some subsequent (concatenated) font.
        * output-tfm.h (tfm_start_font): declare it.
        * main.c (main): call it as we start each font.

        * main.c (main): report the input font names as we process them.

        * main.c (USAGE): doc fix.

Sat May 30 14:54:37 1992  Karl Berry  (karl@hayley)

        * output-tfm.c (tfm_start_output): remove any suffix before adding
          `pl'; prepend an `x' if we'd overwrite the input. 
        (output_tfm_name): new static.

Fri May 29 11:45:05 1992  Karl Berry  (karl@hayley)

        * main.c (main): change return type to `int'.

Wed May 27 10:38:45 1992  Karl Berry  (karl@hayley)

        * main.c (main): remove `output_basename', and redo the code for
          deciding on the output name.

Sun May 24 12:40:38 1992  Kathy Hargreaves  (kathy@hayley)

        * main.c (fontname_list): doc change.

Fri May 15 09:04:39 1992  Karl Berry  (karl@hayley)

        * random.c (random_number): `srand' is now `seed_rand', `rand'
          is `k_rand'.

Mon May  4 09:31:34 1992  Karl Berry  (karl@hayley)

        * output-tfm.c (tfm_do_chars_defaults, tfm_output_char,
          tfm_finish_output): if we don't have an existing file, don't
          read from it.

        * output-tfm.c (tfm_start_output): fix designsize algorithm.

        * main.c (report): remove; it's defined in report.c.

Wed Apr 15 15:26:30 1992  Karl Berry  (karl@hayley)

        * output-{gf,tfm}.c: `make_output_filename' is now `extend_filename'.

Thu Apr  9 08:20:46 1992  Karl Berry  (karl@hayley)

        * output-gf.c (gf_finish_output): convert the space width from
          points to fixes.

Wed Apr  8 15:16:17 1992  Karl Berry  (karl@hayley)

        * output-gf.c (gf_finish_output): output a space character, if
          desired.
        (space_char): new global.
        * gf-output.h (space_char): declare it.
        * main.c (read_command_line): new option `-space' to set it.
        (USAGE): document it.

Fri Apr  3 13:30:02 1992  Karl Berry  (karl@hayley)

        * random.c: include rand.h; remove conditional decls of RAND_MAX,
          rand, srand.

Sun Mar 29 19:10:18 1992  Karl Berry  (karl at hayley)

        * main.c (read_command_line): remove empty else.

Sat Mar 28 07:48:07 1992  Karl Berry  (karl at hayley)

        * Version 0.4.

        * Change copyright years to 1992 only.

Wed Mar 25 08:30:41 1992  Karl Berry  (karl at hayley)

        * random.c [!STDC_HEADERS]: declare rand, srand.
        [!RAND_MAX]: define RAND_MAX.
        (random_number): use rand instead of drand48.

Mon Mar 23 14:59:49 1992  Kathy Hargreaves  (kathy at hayley)

        * output-tfm.c (tfm_start_output): only try to set design size to
          user's if it's been set.

Sun Mar 22 13:46:31 1992  Kathy Hargreaves  (kathy at hayley)

        * output_gf.[hc] (gf_output_char): added DESIGN_SIZE_RATIO.
          Multiply char's TFM width by this.

        * main.c [design_size_ratio]: added.

        * main.c (main): if unset, set design_size to the bitmap one *after*
          calling tfm_set_design_size, and then check that it's in range. 

        * output_tfm.c (tfm_start_output): added USER_DESIGN_SIZE.
          Call with `design_size' for USER_DESIGN_SIZE and the bitmap's
          design size for DEFAULT_DESIGN_SIZE.
          After saving value in new variable `tfm_file_design_size', zero
          out tfm_info's design size if got it from a TFM file.  After
          calling tfm_set_header, try setting design_size in following
          order: to USER_DESIGN_SIZE, tfm_file_design_size, 
          DEFAULT_DESIGN_SIZE.

Sat Mar 21 11:53:04 1992  Kathy Hargreaves  (kathy at hayley)

        * output_tfm.c (tfm_start_output): set the fontsize if wasn't done
          already as a TFM header option.
          Move TFM_CHECK_DESIGNSIZE from main.
          Set design size to the default only if it isn't set yet.

Thu Mar 19 12:52:46 1992  Kathy Hargreaves  (kathy at hayley)

        * output_tfm.c (tfm_output_char): OR (not AND) the conditions for
          recalculating dimensions and italic corrections.

Wed Mar 18 12:20:38 1992  Kathy Hargreaves  (kathy at hayley)

        * output-tfm.c (tfm_do_chars_defaults): added.

        * output-tfm.c (tfm_output_char): only recalculate dimensions and
          initialize the italic correction if we've altered the bitmap;
          otherwise, use that of the original TFM character.

        * output-tfm.c (tfm_finish_output): moved tfm_close_input_file
          from tfm_start_output to here.

Tue Mar 17 16:01:09 1992  Kathy Hargreaves  (kathy at hayley)

        * main.c [USAGE], (read_command_line): added design-size option.
          (global): moved `design_size' from main.
          
        * main.c (do_char): filter bitmap if `filter_passes' > 0.

        * filter.[hc]: deleted `wants_filter'; default `filter_passes' to 0.

        * main.c [USAGE], (read_command_line): deleted -filter option.

        * output_tfm.c (tfm_start_ouput): fill in nonrequested TFM header
          items and fontdimens with tfm_info from input_basename.tfm, if
          it exists.  If it does, zero out the checksum.
          

Mon Mar 16 12:28:15 1992  Kathy Hargreaves  (kathy at hayley)

        * output_tfm.c (tfm_start_ouput): call tfm_set_header.
          Set tfm_info's design size only if unset.

        * main.c [USAGE], (read_command_line): added -tfm-header option.

Sun Mar 15 16:49:32 1992  Karl Berry  (karl at hayley)

        * main.c: doc fix.

Sat Mar  7 13:11:59 1992  Kathy Hargreaves  (kathy at hayley)

        * main.c (main): fatal if wants_gf and want_tfm and the output
          filename has a suffix.

Sat Mar  7 09:52:57 1992  Karl Berry  (karl at hayley)

        * GNUmakefile (libraries): define again.
        (files, headers, sources): replace with `c_and_h', etc.

Thu Mar  5 17:50:04 1992  Karl Berry  (karl at claude.cs.umb.edu)

        * main.c (do_char): do the baseline adjustment after
          randomization, to preserve the baselines when randomizing.
        * random.c (randomize_bitmap): return the number of rows/columns
          added at each side of the bitmap.
        * random.h (randomize_bitmap): change declaration.

        * main.c (do_char): use puts instead of printf where possible.

Wed Mar  4 15:31:23 1992  Kathy Hargreaves  (kathy at hayley)

        * output_tfm.c (tfm_start_output): changed OUTPUT_BASENAME to
          OUTPUT_NAME and call make_output_filename to make pl_name.

        * output_epst.c (epsf_start_output): changed global
          `output_basename' to `output_name' and BASE_NAME to NAME.
          Fatal if NAME has a suffix.

        * output-gf.c (gf_start_output): changed `font_basename' to
          `output_name' and call make_output_filename to make gf_name.

Wed Mar  4 11:18:22 1992  Karl Berry  (karl at hayley)

        * GNUmakefile (libraries): remove.

Mon Feb 10 16:09:25 1992  Karl Berry  (karl at claude.cs.umb.edu)

        * random.c (random_threshold): new global to say how often to move a
          pixel at all.
        * random.h (random_threshold): declare it.
        * main.c (read_command_line): new option `random-threshold.

        * output-tfm.c (tfm_start_output): check for a TFM file if the
          user hasn't given us a fontdimen string.  Take the input
          filename to construct the TFM name.
        * output-tfm.h (tfm_start_output): change declaration.
        * main.c (main): change call.

Mon Feb 10 10:04:00 1992  Karl Berry  (karl at hayley)

        * main.c (do_split_char, do_char): free the bitmap here.
        (main): not here.

        * random.c (randomize_bitmap): fix algorithm for pixels moved more
          than one.

Thu Feb  6 18:26:11 1992  Karl Berry  (karl at claude.cs.umb.edu)

        * random.c (enlarge_bitmap): return the result, of changing an arg.

        * random.c: do not include global.h and <math.h>; they already are.

Sat Feb  1 15:16:13 1992  Karl Berry  (karl at hayley)

        * output-gf.c: include filename.h.

Fri Jan 31 17:07:31 1992  Karl Berry  (karl at hayley)

        * main.c (read_command_line): declare `option_index' (for new
          getopt).

Wed Jan 22 12:49:25 1992  Kathy Hargreaves  (kathy at hayley)

        * output-gf.c (gf_start_output): use make_prefix instead of concat
          when prepending an `x' onto a filename.

Thu Jan  9 08:30:12 1992  Karl Berry  (karl at hayley)

        * main.c (scan_column_split): rename `scan_integer_list' to
          `scan_unsigned_list'.

        * *.c: do not include global.h.

        * *.h: remove #pragma once.

Wed Jan  8 15:28:56 1992  Karl Berry  (karl at hayley)

        * update copyright messages.

        * change `allocate to `xmalloc', `reallocate' to `xrealloc', and
          `string_copy' to `strdup'.

Mon Jan  6 16:49:26 1992  Karl Berry  (karl at claude.cs.umb.edu)

        * main.c (USAGE): new option `randomize'.
        (do_char): if set, call `randomize_bitmap'.
        * random.[ch]: new files.
        (random_max): new global.

Thu Sep 12 10:24:14 1991  Karl Berry  (karl at hayley)

        * main.c (read_command_line): new option, `-epsf'.
        (main): initialize and finalize epsf output (if desired).
        (do_char): output the characters in epsf (if desired).
        * epsf-output.[ch]: new files.
        * GNUmakefile (files): add `epsf-output'.

        * output-tfm.c (tfm_output_char): set the character code.

Tue Jul 30 13:17:47 1991  Karl Berry  (karl at ra.cs.umb.edu)

        * Version 0.3.

Mon Jun 17 15:21:49 1991  Karl Berry  (karl at hayley)

        * output-tfm.c (tfm_output_char): change calls to `PIXELS_TO_POINTS'.

Thu Jun  6 07:26:13 1991  Karl Berry  (karl at hayley)

        * All files: change to version 2 of the GPL.

Sun Mar 24 16:22:44 1991  Karl Berry  (karl at hayley)

        * main.c (read_command_line): don't concatenate with the old
          fontdimens, just assign `fontdimens' from the argument.
        * output-tfm.c (fontdimens): move definition of global here from
          `main.c'.
        * output-tfm.h (fontdimens): declare it.

Sun Mar 10 10:21:52 1991  Karl Berry  (karl at hayley)

        * output-tfm.c (tfm_start_output): call `tfm_init_global_info',
          and don't bother setting the checksum and coding scheme.

Sat Mar  9 16:17:39 1991  Karl Berry  (karl at hayley)

        * GNUmakefile (files): add main, since we now have main.h.
        * main.h: new file.
        * main.c (read_command_line): new option `-fontdimens'.
        * output-tfm.c (tfm_start_output): set the font parameters
          according to -fontdimens.

Thu Mar  7 07:32:21 1991  Karl Berry  (karl at hayley)

        * Version 0.2.

Tue Mar  5 15:19:04 1991  Karl Berry  (karl at hayley)

        * main.c (scan_baseline_adjust): new routine.
        (baseline_adjust): new global variable.
        (read_command_line): new option `-baseline-adjust'.
        (do_char): adjust the baselines of each character before we
          process it.

Mon Mar  4 14:42:30 1991  Karl Berry  (karl at hayley)

        * main.c (do_char): don't do a character if we've already done it.

        * main.c (fontname_list): new global variable to hold all the
          fonts we deal with.
        (read_command_line): new option `-concat-lists'.

Tue Feb 26 06:45:57 1991  Karl Berry  (karl at hayley)

        * output-tfm.c (tfm_finish_output): call `tfm_convert_pl' with the
          argument `verbose'.

Mon Feb 25 13:30:57 1991  Karl Berry  (karl at hayley)

        * output-gf.c: use `gf_...' instead of `..._gf_...'.

        * output-tfm.c: use `tfm_...' instead of `..._tfm_...'.

        * output-gf.c: include file-misc.h.

Sun Feb 17 09:30:23 1991  Karl Berry  (karl at hayley)

        * *.c: include config.h.

Sun Jan 13 16:49:03 1991  Karl Berry  (karl at hayley)

        * main.c (read_command_line): set `explicit_dpi' via the option
          table. 

Mon Jan  7 15:09:15 1991  Karl Berry  (karl at hayley)

        * main.c: include file-misc.h.

Sun Nov  4 09:23:28 1990  Karl Berry  (karl at hayley)

        * filter.c (read_command_line): use atou to do -filter-size.

        * These changes suggested by rich@rice.edu:
        * filter.h (filter_passes): declare it.
        * filter.c (filter_passes): new variable.
        (filter_bitmap): loop through the number of passes.
        (filter_once): new routine.
        * main.c (read_command_line): new option, `filter-passes'.
        * README: warn that filtering rounds off corners.

Wed Oct 24 14:58:15 1990  Karl Berry  (karl at aten)

        * Version 0.1.

Sun Oct 14 07:05:51 1990  Karl Berry  (karl at hayley)

        * filter.c (filter_bitmap): don't invert the pixel, set it to the
          right intensity.

Tue Oct  9 09:43:03 1990  Karl Berry  (karl at hayley)

        * main.c (read_command_line): new option, -output-file.
        (output_name): new global.
        (main): use it, if it's set.

        * main.c (do_split_char, do_char, scan_column_split): new
        routines.
        (read_command_line): new argument, -column-split.
        (main): split each character at given columns, if requested.

Mon Oct  8 05:55:50 1990  Karl Berry  (karl at hayley)

        * main.c: include cmdline.h.

        * main.c (main): filter the character, if desired.
        (read_command_line): new options -filter, -filter-size,
        -filter-threshold.
        * filter.h, filter.c: new files.
        * GNUmakefile (files): add filter.
        (This stuff contributed by rich@rice.edu.)

Tue Oct  2 17:25:22 1990  Karl Berry  (karl at hayley)

        * output-gf.c (gf_start_output): assign to gf_name after the
          warning, not before.

Sat Sep 29 07:10:11 1990  Karl Berry  (karl at hayley)

        * output-gf.c (gf_start_output): announce it to the user when we
        change the output filename.

        * main.c (main): use atou (dpi), not atoi.

Fri Sep 28 13:47:34 1990  Karl Berry  (karl at hayley)

        * main.c (read_command_line): new argument, `omit'.
        (scan_remap_list): don't make a target character code of -1 mean
        omit the original.
        (scan_omit_list): new routine.

Fri Sep 21 11:32:45 1990  Karl Berry  (karl at hayley)

        * main.c (read_command_line): return NULL at the end.

Fri Sep 14 12:01:26 1990  Karl Berry  (karl at hayley)

        * main.c: include "getopt.h", not <getopt.h>.

Thu Sep 13 10:58:45 1990  Karl Berry  (karl at hayley)

        * main.c (main): report omitted characters.

Tue Sep 11 07:02:50 1990  Karl Berry  (karl at hayley)

        * main.c (scan_remap_list): set `omit' if a target ``character
        code'' is -1.  Also, parse the character codes correctly.
        (omit): new global variable.
        (main): if `omit' is true, skip the character.

Sat Sep  8 10:58:03 1990  Karl Berry  (karl at hayley)

        * main.c (scan_remap_list): use PARSE_CHAR_CODE.

        * main.c (read_command_line): use GET_RANGE.

Thu Sep  6 06:42:24 1990  Karl Berry  (karl at hayley)

        * main.c (scan_remap_list): new routine.
        (read_command_line): new option, -remap.
        (translate): new global to remap character codes.
        (main): map each character as we read it.

Wed Sep  5 06:22:18 1990  Karl Berry  (karl at hayley)

        * output-gf.c (gf_start_output): don't overwrite the input file.
        * main.c (main): pass the filename of the input font.

        * main.c (main): output a GF file if asked.
        (read_command_line): new option, -gf.
        * output-gf.[ch]: new files.
        * GNUmakefile (files): add them.

        * main.c (main): free the bitmap for each character.  */

        * main.c (main): output a TFM file if asked.
        (read_command_line): new option, -tfm.
        * output-tfm.[ch]: new files.
        * GNUmakefile (files): add them.

Sat Sep  1 09:27:14 1990  Karl Berry  (karl at hayley)

        * main.c (main): output a newline at the end of the program if
        warranted.

        * main.c (main): use `get_bitmap_font' instead of `get_font'.

Sat Aug 25 13:52:43 1990  Karl Berry  (karl at hayley)

        * main.c (main): print a newline before each character output as
        text.