--- string.erl.orig	Sat Apr 12 14:41:12 2003
+++ string.erl	Sat Apr 12 14:43:51 2003
@@ -23,6 +23,7 @@
 	 sub_word/2,sub_word/3,left/2,left/3,right/2,right/3,
 	 sub_string/2,sub_string/3,centre/2,centre/3]).
 -export([re_sh_to_awk/1,re_parse/1,re_match/2,re_sub/3,re_gsub/3,re_split/2]).
+-export([to_upper/1, to_lower/1]).
 
 -import(lists,[reverse/1,member/2]).
 
@@ -317,3 +318,22 @@
     end.
 
 re_split(String, RegExp) -> regexp:split(String, RegExp).
+
+%% to_upper
+
+to_upper([C|Cs]) when C >= $a, C =< $z ->
+    [C-($a-$A)|to_upper(Cs)];
+to_upper([C|Cs]) ->
+    [C|to_upper(Cs)];
+to_upper([]) ->
+    [].
+
+%% to_lower
+
+to_lower([C|Cs]) when C >= $A, C =< $Z ->
+    [C+($a-$A)|to_lower(Cs)];
+to_lower([C|Cs]) ->
+    [C|to_lower(Cs)];
+to_lower([]) ->
+    [].
+
