********* * * This definition will create a character mark to the end of * a punctuation character or the end of the paragraph. If a * character mark exists and starts above the cursor, then the * end of the mark will be moved to the next punctuation * character or the end of the paragraph. * * Trick This function always marks to the end * of the paragraph and places a period at the end * of mark. It then goes to the position where the * was at the start of the macro and searches for * the next occurrence of a punctuation character * that is inside the mark. * * It then re-marks the end of mark to that position * and [undo]es the added period (.) at the end of * the paragraph. * ******** DEF a-decimal = [store cursor] DEF a-decimal + [clear last change] DEF a-decimal + [if char mark] DEF a-decimal + [if before begin mark] DEF a-decimal + [recall cursor] DEF a-decimal + [unmark] [mark char] DEF a-decimal + [else] DEF a-decimal + [end mark] [unanchor] DEF a-decimal + [recall cursor] DEF a-decimal + [end if] DEF a-decimal + [else] DEF a-decimal + [unmark] [mark char] DEF a-decimal + [end if] DEF a-decimal + [if not] [next blank line] DEF a-decimal + [bottom] DEF a-decimal + [end if] DEF a-decimal + [last nonblank] DEF a-decimal + [if after end mark] [else] DEF a-decimal + [end mark] [right] DEF a-decimal + [end if] DEF a-decimal + '.' DEF a-decimal + [left] [re-mark] DEF a-decimal + [recall cursor] [forget cursor] DEF a-decimal + [execute] '\0,\0i\0;\0i\0.\0i\0!\0i\0:\0i\0?\0i' DEF a-decimal + [left] [store cursor] DEF a-decimal + [end mark] [undo] DEF a-decimal + [recall cursor] [forget cursor] DEF a-decimal + [re-mark] DEF a-decimal + [clear command] DEF a-decimal + [right]