diff options
Diffstat (limited to 'support/hypertex/tanmoy/X/.index.html')
-rw-r--r-- | support/hypertex/tanmoy/X/.index.html | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/support/hypertex/tanmoy/X/.index.html b/support/hypertex/tanmoy/X/.index.html new file mode 100644 index 0000000000..1451189154 --- /dev/null +++ b/support/hypertex/tanmoy/X/.index.html @@ -0,0 +1,103 @@ +<header><title>external URL's under X</title></header> +<h1>external URL's under X</h1> +<pre> +Date: Sat, 16 Jul 94 12:49:47 MDT +From: tanmoy@qcd.lanl.gov (Tanmoy Bhattacharya) +To: ginsparg@qfwfq.lanl.gov +Subject: more things needed +</pre> +The script for Mosaic is not really that good right now: and we should +probably think a bit more, and probably should talk to the Mosaic guys +as well. That is why I do not yet want to publish it. We can put it up +as an example of how it can be done within the present framework +itself: not as a way in which we think these should be done. +<p> +At the minimum we need Mosaic (and any other www client) +to set two environmentvariables containing respectively: +(1) its own pid, and (2) The URL of the document it is calling, +and should accept by `remote control' either (a) an absolute URL, OR +(b) a relative URL and a BASE HREF. <br> +(Instead of using an environment variable for (2), it could instead put +the URL into a file and name the file in the environment. +[Does mac have environment variables? It is easy to overflow +IBM PC environment space].) +<hr> +Anyway, here is how the system on nqcd works. No portability issues +had been considered when writing them: I have tried to express my +concerns below. + +<ol> +<li> There is a c-program +<a href="newpg.c">newpg.c</a> which takes 2 or more parameters. +<ol> +<li> <b>if</b> the first parameter is non-zero, +it sets its pgid to the first parameter, +<b>else</b> it sets its pgid to its pid. +<li> it replaces itself (without changing pid's) with the program + named by its second parameter and passes the rest of the + arguments to it. +<li>Note that it requires ANSI C, the header <sys/types.h> to define pid_t, and + the routines setpgid (I haven't checked to see if it exists in + SYSV) and execvp. +</ol> + +<li>The actual Mosaic is renamed Mosaic.binary + +<li> <a href="Mosaic">Mosaic</a> + is a script that calls the c-program (newpg) which starts the + actual Mosaic. (It also provides default values to a few environment + variables: only WWWBROWSER is relevant to this project). It should + work on all unices unchanged provided $0 gets correctly translated, + and the paths are corrected. + +<li> <a href="callmosaic">callmosaic</a> takes two parameters and does the + following: + <ol> + <li> Ignores the second parameter. See later. + <li> It clears the PATH environment variable, and changes the MOSAIC + environment variable, if present, to /usr/local/bin/Mosaic. (As + a result it uses absolute paths for all system programs, + bringing in system dependencies). It redirects standard output + to standard error. (should it?) + <li> gets its own pgid. (call it x) Doing this from shell is + extremely machine dependent. (depends on exact format of ps + output! On some machines like IBM Risc stations, may be next to + impossible). Should be done with a two line C program instead. + <li> checks process with PID x to see if it exists and its + identification as returned by ps contains the string + `Mosaic'. If so, goes to step 6. (There may be differences + between BSD and SYSV ps calls). Probably should also check the + DISPLAY environment variable, but no sure way of doing that + unless one call call a process which has group kmem + permissions. (Unless pstat, which is such a process gives us a + way of doing it: I do not know). A less than perfect way does + exist with ps -e. + <li> checks to see if ${HOME}/.mosaicpid exists and is readable. + If so, call the pid in it as x (probably crash if file not in + right format), else go to step 6. + <li> checks to see if process with PID x exists and its + identification as returned by ps contains the string + `Mosaic'. If so goto step 6. (BSD and SYSV ps calls may + differ). (Note that it does not check to see if the DISPLAY is + the same! See point 2) + <li> Start a Mosaic passing it the first parameter; and exit when + that exits. (should probably `exec' the Mosaic instead. Should + it also try a ps -x and check for an unique Mosaic on this + display before it starts a new one? See point 2 about + display). (The redirection of standard output to standard error + stays!) (What happens if the parameter contains backquotes? + Haven't checked!) + <li> Creates /tmp/Mosaic.x (x being the aforementioned pid) and + writes two lines into it (probably crashes if it cannot): the + first being `goto' and the second contains whatever came in as + the first parameter. Then it signals USR1 to x, and + exits. (probably should write the second parameter as a third + line.) (What happens if the parameter contains backquotes? + Haven't checked!) + <li> Note that the second parameter is always ignored. (It is supposed + to be the BASE HREF of the document which is calling callmosaic). + </ol> + +</ol> + +</body> |