@@ -83,70 +83,91 @@ feature -- Status report
8383 -- Has "Transfer-Encoding: chunked" header
8484 do
8585 if has_header_named ({HTTP_HEADER_NAMES }.header_transfer_encoding ) then
86- Result := attached header_named_value ({HTTP_HEADER_NAMES }.header_transfer_encoding ) as v and then v .same_string (str_chunked )
86+ Result := attached item ({HTTP_HEADER_NAMES }.header_transfer_encoding ) as v and then v .same_string (str_chunked )
8787 end
8888 end
8989
9090feature -- Access
9191
92- header_named_value ( a_name : READABLE_STRING_ 8 ): detachable STRING_ 8
92+ item alias " [] " ( a_header_name : READABLE_STRING_ 8 ): detachable READABLE_STRING_ 8 assign force
9393 -- First header item found for `a_name' if any
9494 local
95+ res : STRING_ 8
9596 n : INTEGER
9697 l_line : READABLE_STRING_ 8
9798 ic : like new_cursor
9899 do
99- n := a_name .count
100+ n := a_header_name .count
100101
101102 from
102103 ic := new_cursor
103104 until
104105 ic .after or Result /= Void
105106 loop
106107 l_line := ic .item
107- if has_same_header_name (l_line , a_name ) then
108- Result := l_line .substring (n + 2 , l_line .count )
109- Result .left_adjust
110- Result .right_adjust
108+ if has_same_header_name (l_line , a_header_name ) then
109+ res := l_line .substring (n + 2 , l_line .count )
110+ res .left_adjust
111+ res .right_adjust
112+ Result := res
111113 end
112114 ic .forth
113115 end
114116 end
115117
118+ header_named_value (a_name : READABLE_STRING_ 8 ): like item
119+ -- First header item found for `a_name' if any
120+ obsolete
121+ " Use `item' [2014-03]"
122+ do
123+ Result := item (a_name )
124+ end
125+
116126feature -- Header change: general
117127
118- add_header_key_value (k ,v : READABLE_STRING_ 8 )
119- -- Add header `k:v'.
128+ force (a_value : detachable READABLE_STRING_ 8 ; a_header_name : READABLE_STRING_ 8 )
129+ -- Put header `a_header_name:a_value' or replace existing header of name `a_header_name'.
130+ -- | this is used as assigner for `item'
131+ do
132+ if a_value = Void then
133+ put_header_key_value (a_header_name , " " )
134+ else
135+ put_header_key_value (a_header_name , a_value )
136+ end
137+ end
138+
139+ add_header_key_value (a_header_name , a_value : READABLE_STRING_ 8 )
140+ -- Add header `a_header_name:a_value'.
120141 -- If it already exists, there will be multiple header with same name
121142 -- which can also be valid
122143 local
123144 s : STRING_ 8
124145 do
125- create s .make (k .count + 2 + v .count )
126- s .append (k )
146+ create s .make (a_header_name .count + 2 + a_value .count )
147+ s .append (a_header_name )
127148 s .append (colon_space )
128- s .append (v )
149+ s .append (a_value )
129150 add_header (s )
130151 ensure
131- added : has_header_named (k )
152+ added : has_header_named (a_header_name )
132153 end
133154
134- put_header_key_value (k , v : READABLE_STRING_ 8 )
135- -- Add header `k:v ', or replace existing header of same header name/key
155+ put_header_key_value (a_header_name , a_value : READABLE_STRING_ 8 )
156+ -- Add header `a_header_name:a_value ', or replace existing header of same header name/key
136157 local
137158 s : STRING_ 8
138159 do
139- create s .make (k .count + 2 + v .count )
140- s .append (k )
160+ create s .make (a_header_name .count + 2 + a_value .count )
161+ s .append (a_header_name )
141162 s .append (colon_space )
142- s .append (v )
163+ s .append (a_value )
143164 put_header (s )
144165 ensure
145- added : has_header_named (k )
166+ added : has_header_named (a_header_name )
146167 end
147168
148- put_header_key_values (k : READABLE_STRING_ 8 ; a_values : ITERABLE [READABLE_STRING_ 8 ]; a_separator : detachable READABLE_STRING_ 8 )
149- -- Add header `k : a_values', or replace existing header of same header values/key.
169+ put_header_key_values (a_header_name : READABLE_STRING_ 8 ; a_values : ITERABLE [READABLE_STRING_ 8 ]; a_separator : detachable READABLE_STRING_ 8 )
170+ -- Add header `a_header_name : a_values', or replace existing header of same header values/key.
150171 -- Use `comma_space' as default separator if `a_separator' is Void or empty.
151172 local
152173 s : STRING_ 8
@@ -167,10 +188,10 @@ feature -- Header change: general
167188 s .append (c .item )
168189 end
169190 if not s .is_empty then
170- put_header_key_value (k , s )
191+ put_header_key_value (a_header_name , s )
171192 end
172193 ensure
173- added : has_header_named (k )
194+ added : has_header_named (a_header_name )
174195 end
175196
176197feature -- Content related header
0 commit comments