home *** CD-ROM | disk | FTP | other *** search
/ back2roots/filegate / filegate.zip / filegate / ads / adsdbase / ced_html.lha / CED_HTML / Html / html_map.ced < prev    next >
Encoding:
Text File  |  1999-01-11  |  17.9 KB  |  725 lines

  1. /*
  2. ** html_map.ced
  3. **
  4. ** $VER: html_map.ced 1.6 (01.07.1999)
  5. **
  6. ** Arexx script for HTML v3.2 map mark
  7. **
  8. ** This script works with CygnusEd Professional v4.2
  9. **
  10. ** Copyright āŒ Eric BELLE
  11. */
  12.  
  13. /*
  14. **------------------------------------------------------------------------------
  15. **    Initialisation
  16. **------------------------------------------------------------------------------
  17. */
  18.  
  19. OPTIONS RESULTS                            /* Tell CygnusEd to return results. */
  20. NL = '0A'X                                    /* Alias for new line. */
  21. KRETURN = RAWKEY 68                    /* Shortcut to the return key. */
  22. KTAB = RAWKEY 66                        /* Shortcut to the tab key. */
  23. STATUS TABSARESPACES                /* Return TAB mode ("tab" or "space"). */
  24. IF RESULT = 1                                /* Test the TAB mode. */
  25. THEN "TABS = SPACES"                /* Switch TAB mode from "space" to "tab". */
  26. ELSE NOP                                        /* No operation. */
  27. TAB SIZE 1                                    /* Set TAB size proportional to 2 spaces. */
  28.  
  29. /*
  30. **------------------------------------------------------------------------------
  31. **    Map identification name
  32. **------------------------------------------------------------------------------
  33. */
  34.  
  35. GETSTRING '"Map"' '"Indentification name for the map?"'
  36. MapName= RESULT
  37.  
  38. IF (MapName=" " | MapName="RESULT")
  39. THEN EXIT 0
  40. ELSE NOP
  41.  
  42. /*
  43. **------------------------------------------------------------------------------
  44. **    Image definition
  45. **------------------------------------------------------------------------------
  46. */
  47.  
  48. ImageDefinition = "q"
  49. DO WHILE ~(ImageDefinition="y" | ImageDefinition="n",
  50.                     | ImageDefinition=" " | ImageDefinition="RESULT")
  51.     GETSTRING "y" '"Image definition: (y)es, (n)o?"'
  52.     ImageDefinition = RESULT
  53. END
  54.  
  55. SELECT
  56.     WHEN (ImageDefinition="RESULT") THEN EXIT 0
  57.     WHEN (ImageDefinition=" ") THEN EXIT 0
  58.     WHEN (ImageDefinition="y") THEN DO
  59.  
  60.         /*
  61.         **------------------------------------------------------------------------------
  62.         **    Image map name
  63.         **------------------------------------------------------------------------------
  64.         */
  65.  
  66.         ImageLocation = "q"
  67.         DO WHILE ~(ImageLocation="l" | ImageLocation="a" | ImageLocation="u",
  68.                             | ImageLocation=" " | ImageLocation="RESULT")
  69.             GETSTRING "l" '"Image location: (l)ocal, (a)bsolute, (u)niversal?"'
  70.             ImageLocation = RESULT
  71.         END
  72.  
  73.         IF (ImageLocation="RESULT" | ImageLocation=" ")
  74.         THEN EXIT 0
  75.         ELSE NOP
  76.  
  77.         SELECT
  78.             WHEN (ImageLocation="l") THEN DO
  79.                 GETSTRING "Image" '"Image name with its relative path?"'
  80.                 ImageName = RESULT
  81.  
  82.                 IF (ImageName=" " | ImageName="RESULT")
  83.                 THEN EXIT 0
  84.                 ELSE NOP
  85.  
  86.                 OpenImage = '<IMG SRC="' || ImageName    ||    '"'
  87.             END
  88.             WHEN (ImageLocation="a") THEN DO
  89.                 STATUS DIRNAME
  90.                 HtmlFileDir = RESULT || "/"
  91.  
  92.                 GETFILENAME HtmlFileDir '"Select Image"'
  93.                 ImageName = RESULT
  94.  
  95.                 IF (ImageName=" " | ImageName="RESULT")
  96.                 THEN EXIT 0
  97.                 ELSE NOP
  98.  
  99.                 OpenImage = '<IMG SRC="file://localhost/' || ImageName    ||    '"'
  100.             END
  101.             WHEN (ImageLocation="u") THEN DO
  102.                 GETSTRING "Image" '"Image name with its universal path?"'
  103.                 ImageName = RESULT
  104.  
  105.                 IF (ImageName="RESULT" | ImageName=" ")
  106.                 THEN EXIT 0
  107.                 ELSE NOP
  108.  
  109.                 OpenImage = '<IMG SRC="file://' || ImageName    ||    '"'
  110.             END
  111.             OTHERWISE NOP
  112.         END
  113.  
  114.         /*
  115.         **------------------------------------------------------------------------------
  116.         **    Text for image map substitution
  117.         **------------------------------------------------------------------------------
  118.         */
  119.  
  120.         GETSTRING '"text"' '"Text for image substitution?"'
  121.         ImageText = RESULT
  122.  
  123.         IF (ImageText="RESULT")
  124.         THEN EXIT 0
  125.         ELSE NOP
  126.  
  127.         /*
  128.         **------------------------------------------------------------------------------
  129.         **    Image map size options
  130.         **------------------------------------------------------------------------------
  131.         */
  132.  
  133.         ImageSize = "q"
  134.         DO WHILE ~(ImageSize="y" | ImageSize="n" | ImageSize="d",
  135.                             | ImageSize=" " | ImageSize="RESULT")
  136.             GETSTRING "d" '"Image size options: (y)es, (n)o, (d)efault?"'
  137.             ImageSize = RESULT
  138.         END
  139.  
  140.         IF (ImageSize="RESULT" | ImageSize=" ")
  141.         THEN EXIT 0
  142.         ELSE NOP
  143.  
  144.         SELECT
  145.             WHEN (ImageSize="d") THEN DO
  146.                 ImageWidth = "100"
  147.                 ImageHeight = "100"
  148.                 ImageBorder = "0"
  149.             END
  150.             WHEN (ImageSize="y") THEN DO
  151.                 GETNUMBER "100" '"Width (pixels)?"'
  152.                 ImageWidth = RESULT
  153.  
  154.                 IF (ImageWidth="RESULT" | ImageWidth=" ")
  155.                 THEN EXIT 0
  156.                 ELSE NOP
  157.  
  158.                 GETNUMBER "100" '"Height (pixels)?"'
  159.                 ImageHeight = RESULT
  160.  
  161.                 IF (ImageHeight="RESULT" | ImageHeight=" ")
  162.                 THEN EXIT 0
  163.                 ELSE NOP
  164.  
  165.                 GETNUMBER 0 '"Border (pixels)?"' 0 32768
  166.                 ImageBorder = RESULT
  167.  
  168.                 IF (ImageBorder=" ")
  169.                 THEN EXIT 0
  170.                 ELSE NOP
  171.             END
  172.             OTHERWISE NOP
  173.         END
  174.  
  175.         /*
  176.         **------------------------------------------------------------------------------
  177.         **    Image map position options
  178.         **------------------------------------------------------------------------------
  179.         */
  180.  
  181.         ImagePosition = "q"
  182.         DO WHILE ~(ImagePosition="y" | ImagePosition="n" | ImagePosition="d",
  183.                             | ImagePosition=" " | ImagePosition="RESULT")
  184.             GETSTRING "d" '"Image position options: (y)es, (n)o, (d)efault?"'
  185.             ImagePosition = RESULT
  186.         END
  187.  
  188.         IF (ImagePosition="RESULT" | ImagePosition=" ")
  189.         THEN EXIT 0
  190.         ELSE NOP
  191.  
  192.         SELECT
  193.             WHEN (ImagePosition="d") THEN DO
  194.                 ImagePositionMode = "n"
  195.                 HorizontalTextDistance = "10"
  196.                 VerticalTextDistance = "10"
  197.             END
  198.             WHEN (ImagePosition="y") THEN DO
  199.                 ImagePositionMode = "q"
  200.                 DO WHILE ~(ImagePositionMode="l" | ImagePositionMode="c" | ImagePositionMode="r",
  201.                                     | ImagePositionMode="n" | ImagePositionMode=" " | ImagePositionMode="RESULT")
  202.                     GETSTRING "c" '"Image position: (l)eft, (c)enter, (r)ight, (n)o?"'
  203.                     ImagePositionMode = RESULT
  204.                 END
  205.  
  206.                 IF (ImagePositionMode="RESULT" | ImagePositionMode=" ")
  207.                 THEN EXIT 0
  208.                 ELSE NOP
  209.  
  210.                 OKAY2 "You know have to specify the distance "             ||    NL    ||,
  211.                             "between the image en the surrounding text"        ||    NL    ||,
  212.                             "(Lateral and vertical)."
  213.  
  214.                 IF (RESULT=" " | RESULT="RESULT")
  215.                 THEN EXIT 0
  216.                 ELSE
  217.  
  218.                 GETNUMBER 10 '"Lateral (pixels)?"' 0 32768
  219.                 HorizontalTextDistance = RESULT
  220.  
  221.                 IF (HorizontalTextDistance=" ")
  222.                 THEN EXIT 0
  223.                 ELSE NOP
  224.  
  225.                 GETNUMBER 10 '"Vertical (pixels)?"' 0 32768
  226.                 VerticalTextDistance = RESULT
  227.  
  228.                 IF (VerticalTextDistance=" ")
  229.                 THEN EXIT 0
  230.                 ELSE NOP
  231.             END
  232.             OTHERWISE NOP
  233.         END
  234.  
  235.         /*
  236.         **------------------------------------------------------------------------------
  237.         **    Html image map marks
  238.         **------------------------------------------------------------------------------
  239.         */
  240.  
  241.         IF (ImageSize="n")
  242.         THEN ImageSizeString = ""
  243.         ELSE DO
  244.             ImageSizeString =                                            " BORDER="    ||    ImageBorder
  245.             ImageSizeString = ImageSizeString ||    " WIDTH="        ||    ImageWidth
  246.             ImageSizeString = ImageSizeString    ||    " HEIGHT="    ||    ImageHeight
  247.         END
  248.  
  249.         SELECT
  250.             WHEN (ImagePositionMode="c") THEN ImagePosition = ""
  251.             WHEN (ImagePositionMode="n") THEN ImagePosition = ""
  252.             WHEN (ImagePositionMode="r") THEN ImagePosition = " ALIGN=RIGHT"
  253.             WHEN (ImagePositionMode="l") THEN ImagePosition = " ALIGN=LEFT"
  254.             OTHERWISE NOP
  255.         END
  256.  
  257.         IF (ImagePosition="n")
  258.         THEN ImagePositionString = ""
  259.         ELSE DO
  260.             ImagePositionString =    ImagePosition
  261.             ImagePositionString = ImagePositionString ||    " HSPACE=" || HorizontalTextDistance
  262.             ImagePositionString = ImagePositionString    ||    " VSPACE=" || VerticalTextDistance
  263.         END
  264.  
  265.         ImageString =                                    OpenImage
  266.         ImageString = ImageString ||     ' ALT="'            ||    ImageText                        || '"'
  267.         ImageString = ImageString ||    ImageSizeString    ||    ImagePositionString
  268.  
  269.         ImageString = ImageString || ' USEMAP="#' || MapName || '">'
  270.  
  271.     END
  272.     OTHERWISE NOP
  273. END
  274.  
  275. /*
  276. **------------------------------------------------------------------------------
  277. **    Sensible area number
  278. **------------------------------------------------------------------------------
  279. */
  280.  
  281. GETNUMBER 1 '"Area number?"' 1 32768
  282. AreaNumber = RESULT
  283.  
  284. IF (AreaNumber=" ")
  285. THEN EXIT 0
  286. ELSE NOP
  287.  
  288. /*
  289. **------------------------------------------------------------------------------
  290. **    Sensible area caracteristics
  291. **------------------------------------------------------------------------------
  292. */
  293.  
  294. IF (AreaNumber>=1)
  295. THEN OKAY1 ,
  296.     "Recalling: co-ordonate origin (0,0)      "    ||    NL    ||,
  297.     "is at the left and at the top of the map "    ||    NL    ||,
  298.     "________________________________________ "    ||    NL    ||,
  299.     "                                         "    ||    NL    ||,
  300.     "   Rectangular   |  Left  top    (X1,Y1) "    ||    NL    ||,
  301.     "                 |  Right bottom (X2,Y2) "    ||    NL    ||,
  302.     "                                         "    ||    NL    ||,
  303.     "   Circle        |  Center (X,Y)         "    ||    NL    ||,
  304.     "                 |  Radius R             "    ||    NL    ||,
  305.     "                                         "    ||    NL    ||,
  306.     "   Polygon       |  (X1,Y1) ... (Xn,Yn)  "                      
  307. ELSE NOP
  308.  
  309. DO I=1 TO AreaNumber
  310.     AreaShape = "q"
  311.     DO WHILE ~(AreaShape="r" | AreaShape="c" | AreaShape="p",
  312.                         | AreaShape=" " | AreaShape="RESULT")
  313.         GETSTRING "r" '"Shape nā–‘' I ': (r)ectangular, (c)ircle, (p)olygon?"'
  314.         AreaShape = RESULT
  315.     END
  316.  
  317.     SELECT
  318.         WHEN (AreaShape="r") THEN DO
  319.             GETNUMBER 1 '"X1 (pixels)?"' 0 32768
  320.             X1 = RESULT
  321.  
  322.             IF (X1=" ")
  323.             THEN EXIT 0
  324.             ELSE NOP
  325.             
  326.             GETNUMBER 1 '"Y1 (pixels)?"' 0 32768
  327.             Y1 = RESULT
  328.  
  329.             IF (Y1=" ")
  330.             THEN EXIT 0
  331.             ELSE NOP
  332.             
  333.             GETNUMBER 50 '"X2 (pixels)?"' 0 32768
  334.             X2 = RESULT
  335.  
  336.             IF (X2=" ")
  337.             THEN EXIT 0
  338.             ELSE NOP
  339.             
  340.             GETNUMBER 50 '"Y2 (pixels)?"' 0 32768
  341.             Y2 = RESULT
  342.  
  343.             IF (Y2=" ")
  344.             THEN EXIT 0
  345.             ELSE NOP
  346.             
  347.             AreaString.I = '<AREA SHAPE="RECT" COORDS="'
  348.             AreaString.I = AreaString.I || X1 || "," || Y1 || "," || X2 || "," || Y2
  349.  
  350.             CALL Link
  351.             AreaString.I = AreaString.I || Link.I
  352.         END
  353.         WHEN (AreaShape="c") THEN DO
  354.             GETNUMBER 10 '"X (pixels)?"' 0 32768
  355.             X = RESULT
  356.  
  357.             IF (X=" ")
  358.             THEN EXIT 0
  359.             ELSE NOP
  360.             
  361.             GETNUMBER 10 '"Y (pixels)?"' 0 32768
  362.             Y = RESULT
  363.  
  364.             IF (Y=" ")
  365.             THEN EXIT 0
  366.             ELSE NOP
  367.             
  368.             GETNUMBER 10 '"R (pixels)?"' 0 32768
  369.             R = RESULT
  370.  
  371.             IF (R=" ")
  372.             THEN EXIT 0
  373.             ELSE NOP
  374.  
  375.             AreaString.I = '<AREA SHAPE="CIRCLE" COORDS="'
  376.             AreaString.I = AreaString.I || X || "," || Y || "," || R
  377.  
  378.             CALL Link
  379.             AreaString.I = AreaString.I || Link.I
  380.         END
  381.         WHEN (AreaShape="p") THEN DO
  382.             GETNUMBER 3 '"Angle number?"' 3 32768
  383.             AngleNumber = RESULT
  384.  
  385.             IF (AngleNumber=" ")
  386.             THEN EXIT 0
  387.             ELSE NOP
  388.  
  389.             AreaString.I = '<AREA SHAPE="POLYGON" COORDS="'
  390.             DO J=1 TO AngleNumber
  391.                 Question = '"X' || J || ' (pixels)?"'
  392.                 GETNUMBER J Question  0 32768
  393.                 X.J = RESULT
  394.  
  395.                 IF (X.J=" ")
  396.                 THEN EXIT 0
  397.                 ELSE NOP
  398.             
  399.                 Question = '"Y' || J || ' (pixels)?"'
  400.                 GETNUMBER J Question 0 32768
  401.                 Y.J = RESULT
  402.  
  403.                 IF (Y.J=" ")
  404.                 THEN EXIT 0
  405.                 ELSE NOP
  406.  
  407.                 IF (J=AngleNumber)
  408.                 THEN AreaString.I = AreaString.I || X.J || "," || Y.J
  409.                 ELSE AreaString.I = AreaString.I || X.J || "," || Y.J || ","
  410.             END
  411.  
  412.             CALL Link
  413.             AreaString.I = AreaString.I || Link.I
  414.         END
  415.         OTHERWISE EXIT 0
  416.     END
  417. END
  418.  
  419. /*
  420. **------------------------------------------------------------------------------
  421. **    HTML map structure
  422. **------------------------------------------------------------------------------
  423. */
  424.  
  425. OpenMap = '<MAP NAME="'    ||    MapName    ||    '">'
  426. CloseMap = "</MAP>"
  427.  
  428. /*
  429. **------------------------------------------------------------------------------
  430. **    Map structure
  431. **------------------------------------------------------------------------------
  432. */
  433.  
  434. IF (ImageDefinition="y")
  435. THEN DO
  436.     IF (ImagepositionMode="c")
  437.     THEN DO
  438.         TEXT "<CENTER>" ; "AUTO-INDENT" ; KTAB
  439.         TEXT ImageString ; "AUTO-INDENT" ; BACKTAB
  440.         TEXT "</CENTER>" ; "AUTO-INDENT" ; "AUTO-INDENT"
  441.         END
  442.     ELSE DO
  443.         TEXT ImageString ; "AUTO-INDENT" ; "AUTO-INDENT"
  444.         END
  445.     END
  446. ELSE NOP
  447.  
  448. TEXT OpenMap ; "AUTO-INDENT" ; KTAB
  449. DO I=1 TO AreaNumber
  450.     TEXT AreaString.I ; "AUTO-INDENT"
  451. END
  452. BACKTAB ; TEXT CloseMap
  453.  
  454. /*
  455. **------------------------------------------------------------------------------
  456. **    End of html_map.ced Arexx script
  457. **------------------------------------------------------------------------------
  458. */
  459.  
  460. EXIT 0
  461.  
  462. /*
  463. **------------------------------------------------------------------------------
  464. **    Link macro for html_map.ced Arexx script
  465. **------------------------------------------------------------------------------
  466. */
  467.  
  468. Link:
  469.  
  470. /*
  471. **------------------------------------------------------------------------------
  472. **    Link macro choice
  473. **------------------------------------------------------------------------------
  474. */
  475.  
  476. LinkChoice="no"
  477. DO WHILE (LinkChoice="no")
  478.         OKAY2 "Link mode:"                            ||    NL    ||,
  479.                     "~~~~~~~~~"                                ||    NL    ||,
  480.                     "  (0)  - local anchor               |  (7)  - universal file             "        ||    NL    ||,
  481.                     "  (1)  - local file                 |  (8)  - universal file with anchor "        ||    NL    ||,
  482.                     "  (2)  - local file with anchor     |  (9)  - universal WWW              "        ||    NL    ||,
  483.                     "                                    |  (10) - universal WWW with anchor  "        ||    NL    ||,
  484.                     "  (3)  - absolute file              |  (11) - universal FTP              "        ||    NL    ||,
  485.                     "  (4)  - absolute file with anchor  |  (12) - universal Telnet           "        ||    NL    ||,
  486.                     "  (5)  - absolute WWW               |  (13) - universal Gopher           "        ||    NL    ||,
  487.                     "  (6)  - absolute WWW with anchor   |  (14) - universal Usenet           "        ||    NL    ||,
  488.                     "                                    |  (15) - universal e-Mail           "
  489.         
  490.     IF (RESULT=0)
  491.     THEN EXIT 0
  492.     ELSE LinkChoice="ok"
  493.  
  494.     GETNUMBER 0 '"Link mode?"' 0 17
  495.     LinkMode = RESULT
  496.  
  497.     IF (LinkMode=" ")
  498.     THEN LinkChoice = "no"
  499.     ELSE NOP
  500. END
  501.  
  502. /*
  503. **------------------------------------------------------------------------------
  504. **    Html link macro marks
  505. **------------------------------------------------------------------------------
  506. */
  507.  
  508. SELECT
  509.     WHEN (LinkMode=0) THEN DO
  510.         GETSTRING "Anchor" '"Anchor identification name?"'
  511.         AnchorName = RESULT
  512.  
  513.         IF (AnchorName="RESULT" | AnchorName=" ")
  514.         THEN EXIT 0
  515.         ELSE NOP
  516.  
  517.         Link.I = '" HREF="#' || AnchorName || '">'
  518.     END
  519.     WHEN (LinkMode=1) THEN DO
  520.         GETSTRING "File" '"File name with its relative path?"'
  521.         FileName = RESULT
  522.  
  523.         IF (FileName=" " | FileName="RESULT")
  524.         THEN EXIT 0
  525.         ELSE NOP
  526.  
  527.         Link.I = '" HREF="' || FileName || '">'
  528.     END
  529.     WHEN (LinkMode=2) THEN DO
  530.         GETSTRING "File" '"File name with its relative path?"'
  531.         FileName = RESULT
  532.  
  533.         IF (FileName=" " | FileName="RESULT")
  534.         THEN EXIT 0
  535.         ELSE NOP
  536.  
  537.         GETSTRING "Anchor" '"Anchor identification name?"'
  538.         AnchorName = RESULT
  539.  
  540.         IF (AnchorName="RESULT" | AnchorName=" ")
  541.         THEN EXIT 0
  542.         ELSE NOP        
  543.  
  544.         Link.I = '" HREF="' || FileName || "#" || AnchorName || '">'
  545.     END
  546.     WHEN (LinkMode=3) THEN DO
  547.         STATUS DIRNAME
  548.         HtmlFileDir = RESULT || "/"
  549.  
  550.         GETFILENAME HtmlFileDir '"Select file"'
  551.         FileName = RESULT
  552.  
  553.         IF (FileName=" " | FileName="RESULT")
  554.         THEN EXIT 0
  555.         ELSE NOP
  556.  
  557.         Link.I = '" HREF="file://localhost/' || FileName || '">'
  558.     END
  559.     WHEN (LinkMode=4) THEN DO
  560.         STATUS DIRNAME
  561.         HtmlFileDir = RESULT || "/"
  562.  
  563.         GETFILENAME HtmlFileDir '"Select file"'
  564.         FileName = RESULT
  565.  
  566.         IF (FileName=" " | FileName="RESULT")
  567.         THEN EXIT 0
  568.         ELSE NOP
  569.  
  570.         GETSTRING "Anchor" '"Anchor identification name?"'
  571.         AnchorName = RESULT
  572.  
  573.         IF (AnchorName="RESULT" | AnchorName=" ")
  574.         THEN EXIT 0
  575.         ELSE NOP        
  576.  
  577.         Link.I = '" HREF="file://localhost/' || FileName || "#" || AnchorName || '">'
  578.     END
  579.     WHEN (LinkMode=5) THEN DO
  580.         STATUS DIRNAME
  581.         HtmlFileDir = RESULT || "/"
  582.  
  583.         GETFILENAME HtmlFileDir '"Select file"'
  584.         FileName = RESULT
  585.  
  586.         IF (FileName=" " | FileName="RESULT")
  587.         THEN EXIT 0
  588.         ELSE NOP
  589.  
  590.         Link.I = '" HREF="http://localhost/' || FileName || '">'
  591.     END
  592.     WHEN (LinkMode=6) THEN DO
  593.         STATUS DIRNAME
  594.         HtmlFileDir = RESULT || "/"
  595.  
  596.         GETFILENAME HtmlFileDir '"Select file"'
  597.         FileName = RESULT
  598.  
  599.         IF (FileName=" " | FileName="RESULT")
  600.         THEN EXIT 0
  601.         ELSE NOP
  602.  
  603.         GETSTRING "Anchor" '"Anchor identification name?"'
  604.         AnchorName = RESULT
  605.  
  606.         IF (AnchorName="RESULT" | AnchorName=" ")
  607.         THEN EXIT 0
  608.         ELSE NOP        
  609.  
  610.         Link.I = '" HREF="http://localhost/' || FileName || "#" || AnchorName || '">'
  611.     END
  612.     WHEN (LinkMode=7) THEN DO
  613.         GETSTRING "File" '"File name with its universal path?"'
  614.         FileName = RESULT
  615.  
  616.         IF (FileName="RESULT" | FileName=" ")
  617.         THEN EXIT 0
  618.         ELSE NOP
  619.  
  620.         Link.I = '" HREF="file://' || FileName || '">'        
  621.     END
  622.     WHEN (LinkMode=8) THEN DO
  623.         GETSTRING "File" '"File name with its universal path?"'
  624.         FileName = RESULT
  625.  
  626.         IF (FileName="RESULT" | FileName=" ")
  627.         THEN EXIT 0
  628.         ELSE NOP
  629.  
  630.         GETSTRING "Anchor" '"Anchor identification name?"'
  631.         AnchorName = RESULT
  632.  
  633.         IF (AnchorName="RESULT" | AnchorName=" ")
  634.         THEN EXIT 0
  635.         ELSE NOP        
  636.  
  637.         Link.I = '" HREF="file://' || FileName || "#" || AnchorName || '">'
  638.     END
  639.     WHEN (LinkMode=9) THEN DO
  640.         GETSTRING "Html" '"Html file name with its universal path?"'
  641.         HtmlName = RESULT
  642.  
  643.         IF (HtmlName="RESULT" | HtmlName=" ")
  644.         THEN EXIT 0
  645.         ELSE NOP
  646.  
  647.         Link.I = '" HREF="http://' || HtmlName || '">'        
  648.     END
  649.     WHEN (LinkMode=10) THEN DO
  650.         GETSTRING "Html" '"Html file name with its universal path?"'
  651.         HtmlName = RESULT
  652.  
  653.         IF (HtmlName="RESULT" | HtmlName=" ")
  654.         THEN EXIT 0
  655.         ELSE NOP
  656.  
  657.         GETSTRING "Anchor" '"Anchor identification name?"'
  658.         AnchorName = RESULT
  659.  
  660.         IF (AnchorName="RESULT" | AnchorName=" ")
  661.         THEN EXIT 0
  662.         ELSE NOP        
  663.  
  664.         Link.I = '" HREF="http://' || HtmlName || "#" || AnchorName || '">'        
  665.     END
  666.     WHEN (LinkMode=11) THEN DO
  667.         GETSTRING "Ftp" '"Ftp host?"'
  668.         FtpName = RESULT
  669.  
  670.         IF (FtpName="RESULT" | FtpName=" ")
  671.         THEN EXIT 0
  672.         ELSE NOP
  673.  
  674.         Link.I = '" HREF="ftp://' || FtpName || '">'        
  675.     END
  676.     WHEN (LinkMode=12) THEN DO
  677.         GETSTRING "Telnet" '"Telnet host?"'
  678.         TelnetName = RESULT
  679.  
  680.         IF (TelnetName="RESULT" | TelnetName=" ")
  681.         THEN EXIT 0
  682.         ELSE NOP
  683.  
  684.         Link.I = '" HREF="telnet://' || TelnetName || '">'        
  685.     END
  686.     WHEN (LinkMode=13) THEN DO
  687.         GETSTRING "Gopher" '"Gopher host?"'
  688.         GopherName = RESULT
  689.  
  690.         IF (GopherName="RESULT" | GopherName=" ")
  691.         THEN EXIT 0
  692.         ELSE NOP
  693.  
  694.         Link.I = '" HREF="gopher://' || GopherName || '">'        
  695.     END
  696.     WHEN (LinkMode=14) THEN DO
  697.         GETSTRING "News" '"Usenet newsgroup host?"'
  698.         NewsName = RESULT
  699.  
  700.         IF (NewsName="RESULT" | NewsName=" ")
  701.         THEN EXIT 0
  702.         ELSE NOP
  703.  
  704.         Link.I = '" HREF="news://' || NewsName || '">'        
  705.     END
  706.     WHEN (LinkMode=15) THEN DO
  707.         GETSTRING "e-Mail" '"Electronic address?"'
  708.         MailName = RESULT
  709.  
  710.         IF (MailName="RESULT" | MailName=" ")
  711.         THEN EXIT 0
  712.         ELSE NOP
  713.  
  714.         Link.I = '" HREF="mailto:' || MailName || '">'        
  715.     END
  716.     OTHERWISE NOP
  717. END
  718.  
  719. /*
  720. **------------------------------------------------------------------------------
  721. **    End of link macro
  722. **------------------------------------------------------------------------------
  723. */
  724.  
  725. RETURN