This file is indexed.

/usr/lib/ruby/1.8/mhc-signal.rb is in mhc-utils 0.25.1+20090531-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
### mhc-signal.rb
##
## Author:  Yoshinari Nomura <nom@quickhack.net>
##
## Created: 1999/07/16
## Revised: 2001-03-13 07:01:25
##

################################################################
################# common staff #################################
################################################################

################################################################
## message couduit

class SignalConduit
  def initialize
    @proc_table = {}
    @sd = 0
  end

  def signal_emit(sig, *arg)
    return 0 if @proc_table[sig] .nil?
    @proc_table[sig] .keys .sort .each{|k|
      @proc_table[sig][k] .call(*arg)
    }
  end

  def signal_connect(sig, &p)
    @sd += 1
    @proc_table[sig] = {} if @proc_table[sig] .nil?
    @proc_table[sig][@sd] = p
    return @sd
  end

  def signal_disconnect(sd)
    @proc_table .each_key{|sig|
      # @proc_table[sig][sd] = nil
      @proc_table[sig] .delete(sd)
    }
  end

  def dump
    @proc_table .each_key{|sig|
      print "(#{self}) #{sig} -> "  # if $DEBUG
      @proc_table[sig] .each_key{|sd|
	print @proc_table[sig][sd], " "
      }
      print "\n" # if $DEBUG
    }
  end
end    

################################################################
## message couduit with alarm

class Alarm < SignalConduit

  def initialize
    super
    @now = Time .now .localtime
    @th  = Thread .new {
      while true
 	tick
 	sleep 3
      end
    }
    @th .abort_on_exception= true
  end

  def tick
    now = Time .now .localtime
    
    if (now != @now)
      signal_emit('sec-changed')
    end
    
    if (now .day != @now .day)
      signal_emit('day-changed')
    end

    if (now .min != @now .min)
      signal_emit('min-changed')
    end
    
    if (now .month != @now .month)
      signal_emit('month-changed')
    end

    @now = now
  end
end
  
### Copyright Notice:

## Copyright (C) 1999, 2000 Yoshinari Nomura. All rights reserved.
## Copyright (C) 2000 MHC developing team. All rights reserved.

## Redistribution and use in source and binary forms, with or without
## modification, are permitted provided that the following conditions
## are met:
## 
## 1. Redistributions of source code must retain the above copyright
##    notice, this list of conditions and the following disclaimer.
## 2. Redistributions in binary form must reproduce the above copyright
##    notice, this list of conditions and the following disclaimer in the
##    documentation and/or other materials provided with the distribution.
## 3. Neither the name of the team nor the names of its contributors
##    may be used to endorse or promote products derived from this software
##    without specific prior written permission.
## 
## THIS SOFTWARE IS PROVIDED BY THE TEAM AND CONTRIBUTORS ``AS IS''
## AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
## FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
## THE TEAM OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
## INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
## (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
## SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
## HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
## STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
## ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
## OF THE POSSIBILITY OF SUCH DAMAGE.

### mhc-signal.rb ends here