CharacterArray.st
changeset 1008 1bd95ea83cac
parent 1006 19aa191ec8e3
child 1012 19fd2f72269f
--- a/CharacterArray.st	Fri Feb 23 23:27:59 1996 +0100
+++ b/CharacterArray.st	Fri Feb 23 23:29:15 1996 +0100
@@ -2341,14 +2341,15 @@
      with all \X-character escapes replaced by corresponding-characters.
      (similar to the way C-language Strings are converted).
      The following escapes are supported:
-	\r      return character
-	\n      newline character
-	\b      backspace character
-	\f      formfeed character
-	\t      tab character
-	\\      the \ character itself
-	\nnn    three digit octal number defining the characters ascii value
-	\other  other
+        \r      return character
+        \n      newline character
+        \b      backspace character
+        \f      formfeed character
+        \t      tab character
+        \e      escape character
+        \\      the \ character itself
+        \nnn    three digit octal number defining the characters ascii value
+        \other  other
 
      Notice, that \' is NOT a valid escape, since the general syntax of
      string constants is not affected by this method.
@@ -2377,21 +2378,21 @@
     sz := newSize := self size.
     srcIdx := 1.
     [(srcIdx := self indexOf:$\ startingAt:srcIdx) ~~ 0] whileTrue:[
-	srcIdx == sz ifFalse:[
-	    newSize := newSize - 1.
-	    srcIdx := srcIdx + 1.
-	    next := self at:srcIdx.
-	    next == $0 ifTrue:[
-		[(self at:srcIdx) isDigit] whileTrue:[
-		    newSize := newSize - 1. srcIdx := srcIdx + 1.
-		]
-	    ].
-	].
-	srcIdx := srcIdx + 1.
+        srcIdx == sz ifFalse:[
+            newSize := newSize - 1.
+            srcIdx := srcIdx + 1.
+            next := self at:srcIdx.
+            next == $0 ifTrue:[
+                [(self at:srcIdx) isDigit] whileTrue:[
+                    newSize := newSize - 1. srcIdx := srcIdx + 1.
+                ]
+            ].
+        ].
+        srcIdx := srcIdx + 1.
     ].
 
     newSize == sz ifTrue:[
-	^ self
+        ^ self
     ].
 
     newString := self species new:newSize.
@@ -2400,45 +2401,49 @@
     "
     srcIdx := dstIdx := 1.
     [srcIdx <= sz] whileTrue:[
-	next := self at:srcIdx.
-	srcIdx := srcIdx + 1.
-	next == $\ ifTrue:[
-	    srcIdx <= sz ifTrue:[
-		next := self at:srcIdx.
-		srcIdx := srcIdx + 1.
-		next == $r ifTrue:[
-		    next := Character return
-		] ifFalse:[
-		    next == $n ifTrue:[
-			next := Character nl
-		    ] ifFalse:[
-			next == $b ifTrue:[
-			    next := Character backspace
-			] ifFalse:[
-			    next == $f ifTrue:[
-				next := Character newPage
-			    ] ifFalse:[
-				next == $t ifTrue:[
-				    next := Character tab
-				] ifFalse:[
-				    next == $0 ifTrue:[
-					val := 0.
-					[next isDigit] whileTrue:[
-					    val := val * 8 + next digitValue.
-					    next := self at:srcIdx.
-					    srcIdx := srcIdx + 1.
-					].
-					next := Character value:val.
-				    ]
-				]
-			    ]
-			]
-		    ]
-		].
-	    ].
-	].
-	newString at:dstIdx put:next.
-	dstIdx := dstIdx + 1.
+        next := self at:srcIdx.
+        srcIdx := srcIdx + 1.
+        next == $\ ifTrue:[
+            srcIdx <= sz ifTrue:[
+                next := self at:srcIdx.
+                srcIdx := srcIdx + 1.
+                next == $r ifTrue:[
+                    next := Character return
+                ] ifFalse:[
+                    next == $n ifTrue:[
+                        next := Character nl
+                    ] ifFalse:[
+                        next == $b ifTrue:[
+                            next := Character backspace
+                        ] ifFalse:[
+                            next == $f ifTrue:[
+                                next := Character newPage
+                            ] ifFalse:[
+                                next == $t ifTrue:[
+                                    next := Character tab
+                                ] ifFalse:[
+                                    next == $e ifTrue:[
+                                        next := Character esc
+                                    ] ifFalse:[
+                                        next == $0 ifTrue:[
+                                            val := 0.
+                                            [next isDigit] whileTrue:[
+                                                val := val * 8 + next digitValue.
+                                                next := self at:srcIdx.
+                                                srcIdx := srcIdx + 1.
+                                            ].
+                                            next := Character value:val.
+                                        ]
+                                    ]
+                                ]
+                            ]
+                        ]
+                    ]
+                ].
+            ].
+        ].
+        newString at:dstIdx put:next.
+        dstIdx := dstIdx + 1.
     ].
     ^ newString
 
@@ -2453,6 +2458,8 @@
      'hello\010world' withEscapes   
      'hello\r\nworld' withEscapes   
     "
+
+    "Modified: 23.2.1996 / 23:25:43 / cg"
 !
 
 withTabs
@@ -3078,5 +3085,5 @@
 !CharacterArray class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/CharacterArray.st,v 1.54 1996-02-23 21:49:17 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/CharacterArray.st,v 1.55 1996-02-23 22:29:15 cg Exp $'
 ! !