488Re: [jasspa] Easy way to get exact position in buffer? (Motivation: get region size?)
- Dec 5, 2001Ahh yes, problem with this is as SOON as the copy-region is done,
its contents (or lack thereof) are stuck in the clipboard, and
Exceed sees that and crashes, stupid thing. I would like to check
it BEFORE the copy-region is done.
Thanks for the explanation of fixed region.
| How about:
| define-macro my-copy-region
| !if &seq @y ""
| -1 yank
| ml-write "Dooh!"
| The only issue that may arise from this is if it happens to be the very
| first copy-region the yank-buffer may be empty and so it may still crash but
| how likely is that??
| P.S. The show-region is visible but not fixed when you first set the mark
| (set-mark), so when you move the cursor the region shown changes with it.
| Once you use copy-region the region is 'fixed' and thats what 0x2 of the
| region flag is telling you, clear as mud.
| > -----Original Message-----
| > From: thundt [mailto:thundt@...]
| > Sent: 05 December 2001 21:34
| > To: firstname.lastname@example.org
| > Subject: [jasspa] Easy way to get exact position in buffer? (Motivation:
| > get region size?)
| > 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
Thomas Hundt <thundt@...> +1-415-643-3595
- << Previous post in topic Next post in topic >>