403Webshell
Server IP : 3.128.248.115  /  Your IP : 3.138.101.219
Web Server : Apache/2.4.41 (Ubuntu)
System : Linux ip-172-31-33-233 5.15.0-1037-aws #41~20.04.1-Ubuntu SMP Mon May 22 18:18:00 UTC 2023 x86_64
User : www-data ( 33)
PHP Version : 7.4.28
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /bin/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /bin/gpinyin
#! /usr/bin/perl

# gpinyin - European-like Chinese writing 'pinyin' into 'groff'

# Source file position: <groff-source>/contrib/gpinyin/gpinyin.pl
# Installed position: <prefix>/bin/gpinyin

# Copyright (C) 2014-2018 Free Software Foundation, Inc.

# Written by Bernd Warken <groff-bernd.warken-72@web.de>.

my $version = '1.0.4';

# This file is part of 'gpinyin', which is part of 'groff'.

# 'groff' is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.

# 'groff' is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# General Public License for more details.

# You can find a copy of the GNU General Public License in the internet
# at <http://www.gnu.org/licenses/gpl-2.0.html>.

########################################################################

use strict;
use warnings;
#use diagnostics;

# temporary dir and files
use File::Temp qw/ tempfile tempdir /;

# needed for temporary dir
use File::Spec;

# for 'copy' and 'move'
use File::Copy;

# for fileparse, dirname and basename
use File::Basename;

# current working directory
use Cwd;

# $Bin is the directory where this script is located
use FindBin;


########################################################################
# system variables and exported variables
########################################################################

$\ = "\n";	# final part for print command

########################################################################
# read-only variables with double-@ construct
########################################################################

our $File_split_env_sh;
our $File_version_sh;
our $Groff_Version;

my $before_make;		# script before run of 'make'
{
  my $at = '@';
  $before_make = 1 if '1.22.4' eq "${at}VERSION${at}";
}

my %at_at;
my $file_gpinyin_test_pl;
my $gpinyin_libdir;

if ($before_make) {
  my $gpinyin_source_dir = $FindBin::Bin;
  $at_at{'BINDIR'} = $gpinyin_source_dir;
  $at_at{'G'} = '';
  $gpinyin_libdir = '/usr/lib/groff/gpinyin';
} else {
  $at_at{'BINDIR'} = '/usr/bin';
  $at_at{'G'} = '';
  $gpinyin_libdir = '/usr/lib/groff/gpinyin';
  unshift(@INC, $gpinyin_libdir);
}

require 'subs.pl';


########################################################################
# options
########################################################################

foreach (@ARGV) {
  if ( /^(-h|--h|--he|--hel|--help)$/ ) {
    print q(Usage for the 'gpinyin' program:);
    print 'gpinyin [-] [--] [filespec...] normal file name arguments';
    print 'gpinyin [-h|--help]            gives usage information';
    print 'gpinyin [-v|--version]         displays the version number';
    print q(This program is a 'groff' preprocessor that handles ) .
      q(pinyin parts in 'roff' files.);
    exit;
  } elsif (/^(-v|--v|--ve|--ver|--vers|--versi|--versio|--version)$/) {
    print q('gpinyin' version ) . $version;
    exit;
  }
}


########################################################################
# input
########################################################################

my $pinyin_mode = 0;	# not in Pinyin mode

my @output_n =	# nroff
  (
   '.ie n \\{\\',
  );

my @output_t =	# troff
  (
   '.el \\{\\',
  );

unshift @ARGV, '-' unless @ARGV;
foreach my $filename (@ARGV) {
  my $input;
  if ($filename eq '-') {
    $input = \*STDIN;
  } elsif (not open $input, '<', $filename) {
    warn $!;
    next;
  }
  while (<$input>) {
    chomp;
    s/\s+$//;		# remove final spaces
#   &err('gpinyin: ' . $_);

    my $line = $_;	# with starting blanks

    # .pinyin start or begin line
    if ( $line =~ /^[.']\s*pinyin\s+(start|begin)$/ ) {
      if ( $pinyin_mode ) {
        # '.pinyin' was started twice, ignore
        &err( q['.pinyin' starter was run several times] );
      } else {	# new pinyin start
        $pinyin_mode = 1;
      }
      next;
    }

    # .pinyin stop or end line
    if ( $line =~ /^[.']\s*pinyin\s+(stop|end)$/ ) {
      if ( $pinyin_mode ) {		# normal stop
        $pinyin_mode = 0;
        &finish_pinyin_mode( \@output_n, \@output_t );
      } else {	# ignore
        &err( 'gpinyin: there was a .pinyin stop without ' .
          'being in pinyin mode' );
      }
      next;
    }

    # now not a .pinyin line


    if ( $pinyin_mode ) {	# within Pinyin
      my $starting_blanks = '';
      $starting_blanks = $1 if ( s/^(s+)// );	# handle starting spaces

      my %outline = &handle_line($starting_blanks, $line);
#     &err('gpinyin outline n: ' . $outline{'n'} );
#     &err('gpinyin outline t: ' . $outline{'t'} );
      push @output_n, $outline{'n'};
      push @output_t, $outline{'t'};
    } else {	# normal roff line, not within Pinyin
      print $line;
    }
    next;
  }	# end of input line
}


########################################################################
# end of file without stopping 'pinyin' mode
if ( $pinyin_mode ) {
  &finish_pinyin_mode( \@output_n, \@output_t );
}

########################################################################


1;
########################################################################
### Emacs settings
# Local Variables:
# mode: CPerl
# End:

Youez - 2016 - github.com/yon3zu
LinuXploit