Source Code for suites.PS.utils.charEntities

on charEntities (s = nil) {
     «charEntities © 1998 by Philip Suh <phil@filsa.net>.
          «Part of suites.PS
          «Docs -- version 1 Fri, Jul 24, 1998 at 6:45:53 PM by PS
               «
               «converts the 4 reserved ASCII chars into Char entities
                    «&<>"
               «also escapes braces, atmark to cancel Frontier macro processing
                    «{}@
     local (flinteractive = false, ttr="", adr8859);
     if s == nil {
          s = wp.getSelText ();
          flinteractive = true};
     if flinteractive {
          if not dialog.ask ("Generate HTML entity for what character?", @s) {
               return}};
     
     case sys.os () {
          "MacOS" {
               adr8859=@system.verbs.builtins.html.data.iso8859.mac};
          "WinNT";
          "Win95" {
               adr8859 = @system.verbs.builtins.html.data.iso8859.win}};
     on getCharEnt (aChar) {
          local (chNum,charString);
          chNum = number (char(aChar));
          
          case aChar {
               '>' {
                    charString = "&gt;"};
               '<' {
                    charString = "&lt;"};
               '&' {
                    charString = "&amp;"};
               '"' {
                    charString = "&quot;"};
               «'{' // char entities
                    «charString = "&#123;"
               «'}' // char entities
                    «charString = "&#125;"
               '{';
               '@' { // escape these 3 chars
                    charString = "\\" + achar}}
          else {
               if chNum >= 128 {
                    charString = string.iso8859encode(aChar, adr8859)}
               else {
                    charString = aChar}};
          return (charString)};
     for i = 1 to sizeOf (s) {
          ttr = ttr + getCharEnt (s[i]);
          };
     
     if flinteractive {
          if not wp.inTextMode () {
               wp.setTextMode (true)};
          wp.insert (ttr);
          try { « finished chime
               speaker.sound (1, 200, 8000);
               speaker.sound (1, 200, 4000)}}
     else {
          return (ttr)}};
charEntities()

Go back to the main page for this script