DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ T r

⟦516c2864a⟧ TextFile

    Length: 2439 (0x987)
    Types: TextFile
    Names: »run_ctrlat.clu«

Derivation

└─⟦a0efdde77⟧ Bits:30001252 EUUGD11 Tape, 1987 Spring Conference Helsinki
    └─ ⟦526ad3590⟧ »EUUGD11/gnu-31mar87/X.V10.R4.tar.Z« 
        └─⟦2109abc41⟧ 
            └─ ⟦this⟧ »./X.V10R4/xted/run_ctrlat.clu« 

TextFile

run_ctrlat = proc (e: env, c: char) signals (errmsg(string), stop(env, string))
    if e.this_arg > 1  cor  e.this_arg < 0
       then top_display(e, "GCing")
	    secs1, msecs1, usecs1: int := _get_runtime()
	    freed: int := gc()
	    left: int := _heap_size()
	    secs2, msecs2, usecs2: int := _get_runtime()
	    secs2, msecs2, usecs2 := _longsub(secs2, msecs2, usecs2,
					      secs1, msecs1, usecs1)
	    top_display(e, "GC #" || int$unparse(_gc$count()) || ": " ||
			   int$unparse(freed) || " freed, " ||
			   int$unparse(left) || " left, " ||
			   _time_format(secs2, msecs2, usecs2))
     elseif e.this_arg = 0
       then if env$fetch_num(e, "careful", 0) ~= 0
	       then cnt: int := 0
		    nms: string := ""
		    for b: buf, bnm, fnm: string in bufset$all_buffers() do
			if buf$any_changed(b)
			   then if cnt = 2
				   then nms := nms || ", ..."
					break
				 elseif cnt = 1
				   then nms := string$append("s" || nms, ',')
				 end
				nms := string$append(nms, ' ') || bnm
				cnt := cnt + 1
			   end
			end
		    if cnt > 0  cand
		       ~mconfirm(e, "Buffer" || nms || " changed, quit anyway", true)
		       then return end
	       end
	    keypad: int := env$fetch_num(e, "keypad", 0)
	    if keypad ~= 0
	       then _set_keypad_mode(false) end
	    _normal_chars()
	    screen$destroy()
	    quit_()
     else olines, ochars: int := _get_screen_size()
	  _normal_chars()
	  _ted_chars()
	  nlines, nchars: int := _get_screen_size()
	  if nlines ~= olines  cor  nchars ~= ochars
	     then n: int := 1
		  otop: int := 0
		  ntop: int := 0
		  for ee: env in winset$all() do
		      ee.size := (ee.size * nlines) / olines
		      ee.width := nchars - 1
		      if ee.top_line = otop
			 then ee.top_line := ntop
			 else otop := ee.top_line
			      ntop := n
			      ee.top_line := n
			      n := n + ee.size + 1
			 end
		      if env$is_argenv(ee)
			 then continue end
		      title: string := ee.title
		      i: int := string$size(title)
		      while title[i] = '-'  cor  title[i] = ' ' do
			  i := i - 1
			  end except when bounds: end
		      update_title(ee, string$substr(title, 1, i))
		      end
		  if n < nlines
		     then n := nlines - n
			  for ee: env in winset$all() do
			      if ee.top_line = 1
				 then ee.size := ee.size + n
				 else ee.top_line := ee.top_line + n
				 end
			      end
		     end
	     end
	  env$clear(e)
     end resignal errmsg
    end run_ctrlat