Loading ...
Sorry, an error occurred while loading the content.

486Easy way to get exact position in buffer? (Motivation: get region size?)

Expand Messages
  • thundt
    Dec 5, 2001
    • 0 Attachment
      What's an easy way to get the cursor's exact position (char #) within
      a buffer?

      The hard and messy way is to use buffer-info and then parse the
      $result string to pull out the char number:

      Line 1845/3955 Col 0.0 Char 78267/167172 (46%) Win Line 99/48 Col/0/0
      char = 0xA
      here----^^^^^

      Or, how about an easy way to get the region's size?
      This is not reliable: (not even sure what it does -- 0x02 tells if
      the region is "fixed" -- what does that mean?)
      0 show-region
      !if ¬ &band $result 0x02
      ml-write "[No region selected]"
      !bell
      !else
      [...]


      What I'm trying to do is write a safety wrapper around copy-region
      (and kill-region) to prevent them from copying empty regions (which
      crashes the Exceed X server application when it's set to auto-paste
      the clipboard -- yes, I believe it's a bug -- this is v6.2).

      Something along the lines of:

      define-macro my-copy-region
      set $x <get current location>
      exchange-point-and-mark
      set $y <get other location>
      !if &equal $x $y
      <complain and abort>
      !else
      copy-region
      !end

      Thanks for any ideas,

      -Tom Hundt
    • Show all 4 messages in this topic