on *:close:@c:{ 
  if ($hget(cedit)) {
    cedit.end
  }
}
alias cedit.start {
  if (!$hget(cedit)) {
    var %cedit.old.title $window(@c).title
    titlebar @c <Cedit>
    hmake cedit 5000
    clear @c
    c $c.refresh
  }
}
alias cedit.end {
  if ($hget(cedit)) {
    if (%cedit.old.title) { titlebar @c %cedit.old.title | unset %cedit.old.title }
    clear @c
    hfree cedit
    c Ended cedit session
  }
}
alias c.refresh {
  if ($window(@c)) {
    if ($hget(cedit)) {
      var %n = 1
      while ($hfind(cedit,$+(_,%n),1)) {
        tokenize 32 $hget(cedit,$v1)
        aline -ip @c $1-
        inc %n
      }
      return Successfully refreshed page
    }
    else return Editor not open
  }
}
alias c.loadbuff {
  if ($hget(cedit)) {
    var %1 = $qt($1-),%ext = $gettok(%1,$numtok(%1,46),46)
    if ($isfile(%1)) {
      if (%ext) {
        var %lines = $lines(%1)
        if (%lines <= 4900) {
          var %n = 1
          while ($read(%1,n,%n)) {
            hadd cedit $+(_,%n) $v1
            inc %n
          }
          return Finished loading %1
        }
        else return Error, file too large
      }
      else return Error, no file extension.
    }
    else return Error, no such file $qt($1-)
  }
}
