"Fossies" - the Fresh Open Source Software Archive 
Member "xterm-379/vttests/bold-italics.pl" (22 Sep 2019, 2593 Bytes) of package /linux/misc/xterm-379.tgz:
As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) Perl source code syntax highlighting (style:
standard) with prefixed line numbers and
code folding option.
Alternatively you can here
view or
download the uninterpreted source code file.
For more information about "bold-italics.pl" see the
Fossies "Dox" file reference documentation.
1 #!/usr/bin/env perl
2 # $XTermId: bold-italics.pl,v 1.1 2019/09/22 19:44:57 tom Exp $
3 # -----------------------------------------------------------------------------
4 # this file is part of xterm
5 #
6 # Copyright 2019 by Thomas E. Dickey
7 #
8 # All Rights Reserved
9 #
10 # Permission is hereby granted, free of charge, to any person obtaining a
11 # copy of this software and associated documentation files (the
12 # "Software"), to deal in the Software without restriction, including
13 # without limitation the rights to use, copy, modify, merge, publish,
14 # distribute, sublicense, and/or sell copies of the Software, and to
15 # permit persons to whom the Software is furnished to do so, subject to
16 # the following conditions:
17 #
18 # The above copyright notice and this permission notice shall be included
19 # in all copies or substantial portions of the Software.
20 #
21 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
22 # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23 # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
24 # IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
25 # CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
26 # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
27 # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28 #
29 # Except as contained in this notice, the name(s) of the above copyright
30 # holders shall not be used in advertising or otherwise to promote the
31 # sale, use or other dealings in this Software without prior written
32 # authorization.
33 # -----------------------------------------------------------------------------
34 # Test bold-italics for single- and double-width characters.
35
36 use strict;
37 use warnings;
38
39 use I18N::Langinfo qw(langinfo CODESET);
40
41 our $encoding = lc( langinfo( CODESET() ) );
42 our $single_text = "ABCDEFGH";
43 our $double_text = "";
44
45 sub showcase($$) {
46 my $testcase = shift;
47 my $sgr_code = shift;
48 printf "\033[%sm", $sgr_code;
49 printf "%-8s%s\n", $testcase, $single_text;
50 printf "%-8s%s\n", " ", $double_text if ( $encoding eq "utf-8" );
51 printf "\033[%sm", "0";
52 }
53
54 sub doit() {
55 my $bold = "1";
56 my $italics = "3";
57 &showcase( "Normal", "0" );
58 &showcase( "Bold", $bold );
59 &showcase( "Italics", $italics );
60 &showcase( "Both:BI", "$bold;$italics" );
61 }
62
63 if ( $encoding eq "utf-8" ) {
64 binmode( STDOUT, ":utf8" );
65 for my $n ( 0 .. length($single_text) - 1 ) {
66 my $chr = substr( $single_text, $n, 1 );
67 $double_text .= chr( 0xff00 + ord($chr) - 32 );
68 }
69 }
70 &doit;
71
72 1;