@@ -748,10 +748,62 @@ obj is_symbol_p(obj args)
748
748
return is_symbol (car (args )) ? true_o : false_o ;
749
749
}
750
750
751
+ #include "convert.h"
752
+ #include "strbldr.h"
753
+
754
+ obj string_append_p (obj args )
755
+ {
756
+ struct strbldr * sb = new_strbldr ();
757
+
758
+ for (; is_pair (args ); args = cdr (args )) {
759
+ obj arg = car (args );
760
+ if (!is_string (arg ))
761
+ return error_argument_type (
762
+ AREA , "append-string got non string" );
763
+ sb_adds (sb , to_string (arg ));
764
+ }
765
+ obj str = of_string (sb_copy (sb ));
766
+ sb_free (& sb );
767
+ return str ;
768
+ }
769
+
770
+ obj number_to_string_p (obj args )
771
+ {
772
+ obj chk ;
773
+
774
+ if (is_err (chk = chkarity ("number->string" , 1 , args )))
775
+ return chk ;
776
+ struct outport * tmp = openout_string ();
777
+ cnv_number_string (tmp , car (args ));
778
+ obj str = of_string (out_copystring (tmp ));
779
+ out_close (tmp );
780
+ return str ;
781
+ }
782
+
783
+ obj string_to_symbol_p (obj args )
784
+ {
785
+ obj chk ;
786
+
787
+ if (is_err (chk = chkarity ("string->symbol" , 1 , args )))
788
+ return chk ;
789
+ obj r = of_identifier (to_string (car (args )));
790
+ return r ;
791
+ }
792
+
793
+ obj symbol_to_string_p (obj args )
794
+ {
795
+ obj chk ;
796
+
797
+ if (is_err (chk = chkarity ("symbol->string" , 1 , args )))
798
+ return chk ;
799
+ obj r = of_string (to_string (car (args )));
800
+ return r ;
801
+ }
802
+
751
803
obj pcnt_ex (obj args )
752
804
{
753
805
(void )args ;
754
806
displaydat (of_string ("Ignoring (%ex ...) - not first expresion." ));
755
807
newline (emptylst );
756
808
return void_o ;
757
- }
809
+ }
0 commit comments