@@ -163,33 +163,34 @@ void exec_usefunc2(var_t *var1, var_t *var2, bcip_t ip) {
163163 v_detach (old_y );
164164}
165165
166+ void pv_write_str (char * str , var_t * vp ) {
167+ vp -> v .p .length += strlen (str );
168+ if (vp -> v .p .ptr == NULL ) {
169+ vp -> v .p .ptr = malloc (vp -> v .p .length + 1 );
170+ vp -> v .p .owner = 1 ;
171+ strcpy ((char * )vp -> v .p .ptr , str );
172+ } else {
173+ vp -> v .p .ptr = realloc (vp -> v .p .ptr , vp -> v .p .length + 1 );
174+ strcat ((char * )vp -> v .p .ptr , str );
175+ }
176+ }
177+
166178/*
167179 * Write string to output device
168180 */
169- void pv_write (char * str , int method , int handle ) {
170- var_t * vp ;
171-
181+ void pv_write (char * str , int method , intptr_t handle ) {
172182 switch (method ) {
173183 case PV_FILE :
174- dev_fwrite (handle , (byte * )str , strlen (str ));
184+ dev_fwrite (( int ) handle , (byte * )str , strlen (str ));
175185 break ;
176186 case PV_LOG :
177187 lwrite (str );
178188 break ;
179189 case PV_STRING :
180- vp = (var_t * )(intptr_t )handle ;
181- vp -> v .p .length += strlen (str );
182- if (vp -> v .p .ptr == NULL ) {
183- vp -> v .p .ptr = malloc (vp -> v .p .length + 1 );
184- vp -> v .p .owner = 1 ;
185- strcpy ((char * )vp -> v .p .ptr , str );
186- } else {
187- vp -> v .p .ptr = realloc (vp -> v .p .ptr , vp -> v .p .length + 1 );
188- strcat ((char * )vp -> v .p .ptr , str );
189- }
190+ pv_write_str (str , (var_t * )handle );
190191 break ;
191192 case PV_NET :
192- net_print ((socket_t ) handle , (const char * )str );
193+ net_print ((socket_t )handle , (const char * )str );
193194 break ;
194195 default :
195196 dev_print (str );
@@ -199,7 +200,7 @@ void pv_write(char *str, int method, int handle) {
199200/*
200201 * just prints the value of variable 'var'
201202 */
202- void pv_writevar (var_t * var , int method , int handle ) {
203+ void pv_writevar (var_t * var , int method , intptr_t handle ) {
203204 char tmpsb [64 ];
204205
205206 // start with a clean buffer
@@ -244,7 +245,7 @@ void print_var(var_t *v) {
244245/*
245246 * write a variable to a file
246247 */
247- void fprint_var (int handle , var_t * v ) {
248+ void fprint_var (intptr_t handle , var_t * v ) {
248249 pv_writevar (v , PV_FILE , handle );
249250}
250251
0 commit comments