def universal_argument
    $multiplier = ( ($multiplier.nil? || $multiplier == 0) ? 4 : $multiplier *= 4)
        $log.debug " inside UNIV MULT0: #{$multiplier} "
    # See if user enters numerics. If so discard existing varaible and take only 
    #+ entered values
    _m = 0
    while true
      ch = @window.getchar()
      case ch
      when -1
        next 
      when ?0.getbyte(0)..?9.getbyte(0)
        _m *= 10 ; _m += (ch-48)
        $multiplier = _m
        $log.debug " inside UNIV MULT #{$multiplier} "
      when ?\C-u.getbyte(0)
        if _m == 0
          # user is incrementally hitting C-u
          $multiplier *= 4
        else
          # user is terminating some numbers so he can enter a numeric command next
          return 0
        end
      else
        $log.debug " inside UNIV MULT else got #{ch} "
        # here is some other key that is the function key to be repeated. we must honor this
        # and ensure it goes to the right widget
        return ch
        #return :UNHANDLED
      end
    end
    return 0
  end
def universal_argument
    $multiplier = ( ($multiplier.nil? || $multiplier == 0) ? 4 : $multiplier *= 4)
        $log.debug " inside UNIV MULT0: #{$multiplier} "
    # See if user enters numerics. If so discard existing varaible and take only 
    #+ entered values
    _m = 0
    while true
      ch = @window.getchar()
      case ch
      when -1
        next 
      when ?0.getbyte(0)..?9.getbyte(0)
        _m *= 10 ; _m += (ch-48)
        $multiplier = _m
        $log.debug " inside UNIV MULT #{$multiplier} "
      when ?\C-u.getbyte(0)
        if _m == 0
          # user is incrementally hitting C-u
          $multiplier *= 4
        else
          # user is terminating some numbers so he can enter a numeric command next
          return 0
        end
      else
        $log.debug " inside UNIV MULT else got #{ch} "
        # here is some other key that is the function key to be repeated. we must honor this
        # and ensure it goes to the right widget
        return ch
        #return :UNHANDLED
      end
    end
    return 0
  end
Defines how user can give numeric args to a command even in edit mode
 User either presses universal_argument (C-u) which generates a series of 4 16 64.
 Or he presses C-u and then types some numbers. Followed by the action.
 @returns [0, :UNHANDLED] :UNHANDLED implies that last keystroke is still to evaluated
 by system. ) implies only numeric args were obtained. This method updates $multiplier