[Pharo-project] Pharo 1.1/1.2 and class names in Chinese

empty emptist at googlegroups.com
Wed Jul 28 15:33:16 EDT 2010

In 1.1 and 1.2, without setting a language environment for Chinese, I am able
to use Chinese by setting fonts. It seems to work except for accepting a
class named in Chinese will end in a ClassBuilder error of 'Class names must
be capitalized'. Well is it a feature(requires language environment being
set correctly) or bug?

The code located being:

validateClassName: aString
	"Validate the new class name"

	aString isSymbol
		ifFalse: [ ^ false ].
	aString first canBeGlobalVarInitial ifFalse:[
		self error: 'Class names must be capitalized'.
	environ at: aString ifPresent:[:old|
		(old isKindOf: Behavior) ifFalse:[
			self notify: aString asText allBold, 
						' already exists!\Proceed will store over it.' withCRs]].
	^ true

and following the code the problemic method is #canBeGlobalVarInitial: which
is found in two classes:
in EncodedCharSet class side:
canBeGlobalVarInitial: char

	| leadingChar |
	leadingChar := char leadingChar.

	leadingChar = 0 ifTrue: [^ self isUppercase: char].
	^ self isLetter: char.

and in LanguageEnvironment

canBeGlobalVarInitial: char

	^ Unicode canBeGlobalVarInitial: char.

I didn't set a Chinese environment and the exception is occured in in
EncodedCharSet class since leadingChar is 0 and a Chinese char seems thought
to be lowercased.

南無佛 南無法 南無僧
View this message in context: http://forum.world.st/Pharo-1-1-1-2-and-class-names-in-Chinese-tp2305496p2305496.html
Sent from the Pharo Smalltalk mailing list archive at Nabble.com.

More information about the Pharo-dev mailing list