1010#include "common/sys.h"
1111#include "common/pproc.h"
1212#include "common/messages.h"
13- #include "common/var_uds.h"
1413#include "common/var_hash.h"
1514#include <limits.h>
1615
@@ -261,6 +260,51 @@ void pv_write(char *str, int method, int handle) {
261260 }
262261}
263262
263+ /*
264+ * print the array variable
265+ */
266+ void pv_write_array (var_t * var , int method , int handle ) {
267+ pv_write ("[" , method , handle );
268+
269+ if (var -> v .a .maxdim == 2 ) {
270+ int rows , cols ;
271+ var_t * e ;
272+ int i , j , pos ;
273+
274+ // NxN
275+ rows = ABS (var -> v .a .ubound [0 ] - var -> v .a .lbound [0 ]) + 1 ;
276+ cols = ABS (var -> v .a .ubound [1 ] - var -> v .a .lbound [1 ]) + 1 ;
277+
278+ for (i = 0 ; i < rows ; i ++ ) {
279+ for (j = 0 ; j < cols ; j ++ ) {
280+ pos = i * cols + j ;
281+ e = (var_t * ) (var -> v .a .ptr + (sizeof (var_t ) * pos ));
282+ pv_writevar (e , method , handle );
283+ if (j != cols - 1 ) {
284+ pv_write ("," , method , handle ); // add space?
285+ }
286+ }
287+ if (i != rows - 1 ) {
288+ pv_write (";" , method , handle ); // add space?
289+ }
290+ }
291+ } else {
292+ var_t * e ;
293+ int i ;
294+
295+ for (i = 0 ; i < var -> v .a .size ; i ++ ) {
296+ e = (var_t * ) (var -> v .a .ptr + (sizeof (var_t ) * i ));
297+ pv_writevar (e , method , handle );
298+ if (i != var -> v .a .size - 1 ) {
299+ pv_write ("," , method , handle ); // add space?
300+ }
301+ }
302+ }
303+
304+ // close array
305+ pv_write ("]" , method , handle );
306+ }
307+
264308/*
265309 * just prints the value of variable 'var'
266310 */
@@ -274,9 +318,6 @@ void pv_writevar(var_t *var, int method, int handle) {
274318 case V_STR :
275319 pv_write ((char * )var -> v .p .ptr , method , handle );
276320 break ;
277- case V_UDS :
278- uds_write (var , method , handle );
279- break ;
280321 case V_HASH :
281322 hash_write (var , method , handle );
282323 break ;
@@ -293,46 +334,7 @@ void pv_writevar(var_t *var, int method, int handle) {
293334 pv_write (tmpsb , method , handle );
294335 break ;
295336 case V_ARRAY :
296- // open array
297- pv_write ("[" , method , handle );
298-
299- if (var -> v .a .maxdim == 2 ) {
300- int rows , cols ;
301- var_t * e ;
302- int i , j , pos ;
303-
304- // NxN
305- rows = ABS (var -> v .a .ubound [0 ] - var -> v .a .lbound [0 ]) + 1 ;
306- cols = ABS (var -> v .a .ubound [1 ] - var -> v .a .lbound [1 ]) + 1 ;
307-
308- for (i = 0 ; i < rows ; i ++ ) {
309- for (j = 0 ; j < cols ; j ++ ) {
310- pos = i * cols + j ;
311- e = (var_t * ) (var -> v .a .ptr + (sizeof (var_t ) * pos ));
312- pv_writevar (e , method , handle );
313- if (j != cols - 1 ) {
314- pv_write ("," , method , handle ); // add space?
315- }
316- }
317- if (i != rows - 1 ) {
318- pv_write (";" , method , handle ); // add space?
319- }
320- }
321- } else {
322- var_t * e ;
323- int i ;
324-
325- for (i = 0 ; i < var -> v .a .size ; i ++ ) {
326- e = (var_t * ) (var -> v .a .ptr + (sizeof (var_t ) * i ));
327- pv_writevar (e , method , handle );
328- if (i != var -> v .a .size - 1 ) {
329- pv_write ("," , method , handle ); // add space?
330- }
331- }
332- }
333-
334- // close array
335- pv_write ("]" , method , handle );
337+ pv_write_array (var , method , handle );
336338 break ;
337339 }
338340}
0 commit comments