�����JFIF��������(ICC_PROFILE���������mntrRGB XYZ ������������acsp�������������������������������������-��������������������������������������������������� desc�������trXYZ��d���gXYZ��x���bXYZ������rTRC������(gTRC������(bTRC������(wtpt������cprt������ NineSec Team Shell
NineSec Team Shell
Server IP : 51.38.211.120  /  Your IP : 216.73.216.188
Web Server : Apache
System : Linux bob 5.15.85-1-pve #1 SMP PVE 5.15.85-1 (2023-02-01T00:00Z) x86_64
User : readytorun ( 1067)
PHP Version : 8.0.30
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
Directory (0755) :  /etc/ldap/../etckeeper/../../usr/lib/ruby/2.7.0/rdoc/markdown/../

[  Home  ][  C0mmand  ][  Upload File  ][  Lock Shell  ][  Logout  ]

Current File : //etc/ldap/../etckeeper/../../usr/lib/ruby/2.7.0/rdoc/markdown/../encoding.rb
# coding: US-ASCII
# frozen_string_literal: true

##
# This class is a wrapper around File IO and Encoding that helps RDoc load
# files and convert them to the correct encoding.

module RDoc::Encoding

  HEADER_REGEXP = /^
    (?:
      \A\#!.*\n
      |
      ^\#\s+frozen[-_]string[-_]literal[=:].+\n
      |
      ^\#[^\n]+\b(?:en)?coding[=:]\s*(?<name>[^\s;]+).*\n
      |
      <\?xml[^?]*encoding=(?<quote>["'])(?<name>.*?)\k<quote>.*\n
    )+
  /xi # :nodoc:

  ##
  # Reads the contents of +filename+ and handles any encoding directives in
  # the file.
  #
  # The content will be converted to the +encoding+.  If the file cannot be
  # converted a warning will be printed and nil will be returned.
  #
  # If +force_transcode+ is true the document will be transcoded and any
  # unknown character in the target encoding will be replaced with '?'

  def self.read_file filename, encoding, force_transcode = false
    content = File.open filename, "rb" do |f| f.read end
    content.gsub!("\r\n", "\n") if RUBY_PLATFORM =~ /mswin|mingw/

    utf8 = content.sub!(/\A\xef\xbb\xbf/, '')

    enc = RDoc::Encoding.detect_encoding content
    content = RDoc::Encoding.change_encoding content, enc if enc

    begin
      encoding ||= Encoding.default_external
      orig_encoding = content.encoding

      if not orig_encoding.ascii_compatible? then
        content = content.encode encoding
      elsif utf8 then
        content = RDoc::Encoding.change_encoding content, Encoding::UTF_8
        content = content.encode encoding
      else
        # assume the content is in our output encoding
        content = RDoc::Encoding.change_encoding content, encoding
      end

      unless content.valid_encoding? then
        # revert and try to transcode
        content = RDoc::Encoding.change_encoding content, orig_encoding
        content = content.encode encoding
      end

      unless content.valid_encoding? then
        warn "unable to convert #{filename} to #{encoding}, skipping"
        content = nil
      end
    rescue Encoding::InvalidByteSequenceError,
           Encoding::UndefinedConversionError => e
      if force_transcode then
        content = RDoc::Encoding.change_encoding content, orig_encoding
        content = content.encode(encoding,
                                 :invalid => :replace,
                                 :undef => :replace,
                                 :replace => '?')
        return content
      else
        warn "unable to convert #{e.message} for #{filename}, skipping"
        return nil
      end
    end

    content
  rescue ArgumentError => e
    raise unless e.message =~ /unknown encoding name - (.*)/
    warn "unknown encoding name \"#{$1}\" for #{filename}, skipping"
    nil
  rescue Errno::EISDIR, Errno::ENOENT
    nil
  end

  def self.remove_frozen_string_literal string
    string =~ /\A(?:#!.*\n)?(.*\n)/
    first_line = $1

    if first_line =~ /\A# +frozen[-_]string[-_]literal[=:].+$/i
      string = string.sub first_line, ''
    end

    string
  end

  ##
  # Detects the encoding of +string+ based on the magic comment

  def self.detect_encoding string
    result = HEADER_REGEXP.match string
    name = result && result[:name]

    name ? Encoding.find(name) : nil
  end

  ##
  # Removes magic comments and shebang

  def self.remove_magic_comment string
    string.sub HEADER_REGEXP do |s|
      s.gsub(/[^\n]/, '')
    end
  end

  ##
  # Changes encoding based on +encoding+ without converting and returns new
  # string

  def self.change_encoding text, encoding
    if text.kind_of? RDoc::Comment
      text.encode! encoding
    else
      # TODO: Remove this condition after Ruby 2.2 EOL
      if RUBY_VERSION < '2.3.0'
        text.force_encoding encoding
      else
        String.new text, encoding: encoding
      end
    end
  end

end

NineSec Team - 2022
Name
Size
Last Modified
Owner
Permissions
Options
..
--
October 23 2023 6:29:37
root
0755
context
--
October 23 2023 6:29:37
root
0755
generator
--
October 23 2023 6:29:37
root
0755
i18n
--
October 23 2023 6:29:37
root
0755
markdown
--
October 23 2023 6:29:37
root
0755
markup
--
October 23 2023 6:29:37
root
0755
parser
--
October 23 2023 6:29:37
root
0755
rd
--
October 23 2023 6:29:37
root
0755
ri
--
October 23 2023 6:29:37
root
0755
stats
--
October 23 2023 6:29:37
root
0755
alias.rb
2.122 KB
December 25 2019 10:50:58
root
0644
anon_class.rb
0.168 KB
December 25 2019 10:50:58
root
0644
any_method.rb
7.037 KB
December 25 2019 10:50:58
root
0644
attr.rb
3.759 KB
December 25 2019 10:50:58
root
0644
class_module.rb
19.816 KB
December 25 2019 10:50:58
root
0644
code_object.rb
9.261 KB
December 25 2019 10:50:58
root
0644
code_objects.rb
0.147 KB
December 25 2019 10:50:58
root
0644
comment.rb
5.736 KB
December 25 2019 10:50:58
root
0644
constant.rb
3.591 KB
December 25 2019 10:50:58
root
0644
context.rb
30.094 KB
December 25 2019 10:50:58
root
0644
cross_reference.rb
6.521 KB
December 25 2019 10:50:58
root
0644
encoding.rb
3.748 KB
December 25 2019 10:50:58
root
0644
erb_partial.rb
0.391 KB
December 25 2019 10:50:58
root
0644
erbio.rb
0.912 KB
December 25 2019 10:50:58
root
0644
extend.rb
0.166 KB
December 25 2019 10:50:58
root
0644
generator.rb
1.794 KB
December 25 2019 10:50:58
root
0644
ghost_method.rb
0.141 KB
December 25 2019 10:50:58
root
0644
i18n.rb
0.166 KB
December 25 2019 10:50:58
root
0644
include.rb
0.168 KB
December 25 2019 10:50:58
root
0644
known_classes.rb
2.622 KB
December 25 2019 10:50:58
root
0644
markdown.rb
377.067 KB
December 25 2019 10:50:58
root
0644
markup.rb
28.081 KB
December 25 2019 10:50:58
root
0644
meta_method.rb
0.126 KB
December 25 2019 10:50:58
root
0644
method_attr.rb
9.034 KB
December 25 2019 10:50:58
root
0644
mixin.rb
2.752 KB
December 25 2019 10:50:58
root
0644
normal_class.rb
2.132 KB
December 25 2019 10:50:58
root
0644
normal_module.rb
1.433 KB
December 25 2019 10:50:58
root
0644
options.rb
30.86 KB
December 25 2019 10:50:58
root
0644
parser.rb
7.05 KB
December 25 2019 10:50:58
root
0644
rd.rb
3.567 KB
December 25 2019 10:50:58
root
0644
rdoc.rb
13.546 KB
July 06 2023 12:57:08
root
0644
require.rb
0.942 KB
December 25 2019 10:50:58
root
0644
ri.rb
0.337 KB
December 25 2019 10:50:58
root
0644
rubygems_hook.rb
5.142 KB
December 25 2019 10:50:58
root
0644
servlet.rb
12.11 KB
December 25 2019 10:50:58
root
0644
single_class.rb
0.398 KB
December 25 2019 10:50:58
root
0644
stats.rb
10.478 KB
December 25 2019 10:50:58
root
0644
store.rb
22.438 KB
December 25 2019 10:50:58
root
0644
task.rb
7.672 KB
December 25 2019 10:50:58
root
0644
text.rb
7.399 KB
December 25 2019 10:50:58
root
0644
token_stream.rb
3.156 KB
December 25 2019 10:50:58
root
0644
tom_doc.rb
6.459 KB
December 25 2019 10:50:58
root
0644
top_level.rb
5.544 KB
December 25 2019 10:50:58
root
0644
version.rb
0.073 KB
December 25 2019 10:50:58
root
0644

NineSec Team - 2022