home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / plbin.zip / pl / man / portray.pl < prev    next >
Text File  |  1992-05-26  |  629b  |  38 lines

  1. /*  @(#) portray.pl 1.0.0 (UvA SWI) Tue Feb 27 14:59:38 1990
  2.  
  3.     Copyright (c) 1990 Jan Wielemaker. All rights reserved.
  4.     jan@swi.psy.uva.nl
  5.  
  6.     Purpose: portray long strings
  7. */
  8.  
  9. portray(S) :-
  10.     is_string(S, L),
  11.     L >= 2,
  12.     (   L > 25
  13.         ->  put('"'),
  14.         put_first_n(25, S),
  15.         put('"')
  16.     ;   format('"~s"', [S])
  17.     ).
  18.  
  19. put_first_n(0, _) :- !.
  20. put_first_n(N, [C|R]) :-
  21.     put(C),
  22.     NN is N - 1,
  23.     put_first_n(NN, R).
  24.  
  25. is_string(0) :- !,
  26.     fail.
  27. is_string([], 0) :- !.
  28. is_string([C|R], N) :-
  29.     is_print(C),
  30.     is_string(R, NN),
  31.     N is NN + 1.
  32.  
  33. is_print(9)  :- !.
  34. is_print(10) :- !.
  35. is_print(C) :-
  36.     number(C),
  37.     between(32, 126, C).
  38.