"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;