This file is indexed.

/usr/share/gnu-smalltalk/kernel/DirMessage.st is in gnu-smalltalk-common 3.2.4-2.1.

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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
"======================================================================
|
|   DirectedMessage Method Definitions
|
|
 ======================================================================"

"======================================================================
|
| Copyright 1999, 2000, 2001, 2002, 2008 Free Software Foundation, Inc.
| Written by Paolo Bonzini.
|
| This file is part of the GNU Smalltalk class library.
|
| The GNU Smalltalk class library is free software; you can redistribute it
| and/or modify it under the terms of the GNU Lesser General Public License
| as published by the Free Software Foundation; either version 2.1, or (at
| your option) any later version.
| 
| The GNU Smalltalk class library 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 Lesser
| General Public License for more details.
| 
| You should have received a copy of the GNU Lesser General Public License
| along with the GNU Smalltalk class library; see the file COPYING.LIB.
| If not, write to the Free Software Foundation, 59 Temple Place - Suite
| 330, Boston, MA 02110-1301, USA.  
|
 ======================================================================"



Message subclass: DirectedMessage [
    | receiver |
    
    <category: 'Language-Implementation'>
    <comment: 'I represent a message send: I contain the receiver, selector and arguments
for a message.'>

    DirectedMessage class >> selector: aSymbol arguments: anArray [
	<category: 'creating instances'>
	self shouldNotImplement
    ]

    DirectedMessage class >> receiver: anObject selector: aSymbol [
	"Create a new instance of the receiver"

	<category: 'creating instances'>
	^(super selector: aSymbol arguments: #()) receiver: anObject
    ]

    DirectedMessage class >> receiver: receiverObject selector: aSymbol argument: argumentObject [
	"Create a new instance of the receiver"

	<category: 'creating instances'>
	^(super selector: aSymbol argument: argumentObject) receiver: receiverObject
    ]

    DirectedMessage class >> receiver: anObject selector: aSymbol arguments: anArray [
	"Create a new instance of the receiver"

	<category: 'creating instances'>
	^(super selector: aSymbol arguments: anArray) receiver: anObject
    ]

    DirectedMessage class >> selector: aSymbol arguments: anArray receiver: anObject [
	"Create a new instance of the receiver"

	<category: 'creating instances'>
	^(super selector: aSymbol arguments: anArray) receiver: anObject
    ]

    printOn: aStream [
	"Print a representation of the receiver on aStream"

	<category: 'basic'>
	aStream
	    print: receiver;
	    space.
	super printOn: aStream
    ]

    send [
	"Send the message"

	<category: 'basic'>
	^self sendTo: receiver
    ]

    value [
	"Send the message (this message provides interoperability
	 between DirectedMessages and blocks)"

	<category: 'basic'>
	^self sendTo: receiver
    ]

    value: anObject [
	"Send the message with the sole argument anObject (this message
	 provides interoperability between DirectedMessages and blocks)"

	<category: 'basic'>
	^receiver perform: self selector with: anObject
    ]

    value: obj1 value: obj2 [
	"Send the message with the arguments obj1 and obj2 (this message
	 provides interoperability between DirectedMessages and blocks)"

	<category: 'basic'>
	^receiver perform: self selector with: obj1 with: obj2
    ]

    valueWithArguments: anArray [
	"Send the message with the arguments replaced by anArray (this
	 message provides interoperability between DirectedMessages and blocks)"

	<category: 'basic'>
	^receiver perform: self selector withArguments: anArray
    ]

    receiver: anObject [
	"Change the receiver"

	<category: 'accessing'>
	receiver := anObject
    ]

    receiver [
	"Answer the receiver"

	<category: 'accessing'>
	^receiver
    ]

    fork [
	"Create a new process executing the receiver and start it"

	<category: 'multiple process'>
	^Process 
	    on: self
	    at: Processor activePriority
	    suspend: false
    ]

    forkAt: priority [
	"Create a new process executing the receiver with given priority
	 and start it"

	<category: 'multiple process'>
	^Process 
	    on: self
	    at: priority
	    suspend: false
    ]

    newProcess [
	"Create a new process executing the receiver in suspended state.
	 The priority is the same as for the calling process. The receiver
	 must not contain returns"

	<category: 'multiple process'>
	^Process 
	    on: self
	    at: Processor activePriority
	    suspend: true
    ]

    reconstructOriginalObject [
	"This method is used when DirectedMessages are used together
	 with PluggableProxies (see ObjectDumper).  It sends the receiver
	 to reconstruct the object that was originally stored."

	<category: 'saving and loading'>
	^self send
    ]
]