// This macro toggles the case of words UPPER -> lower -> Caps -> UPPER // Similar to Microsoft Word Change Case shortcut Shift+F3 // Uses Currently selected block if present, except // If Cur_Pos is outside block set new work markers // Author:- // Ian Binnie // ian_binnie at optusnet dot com dot au ( replace "at" "dot" by the normal characters.) // // 14/12/2004 // // 14.12.2004 Christian Ziemski: toggle all words in a block to Caps // 15/12/2004 Ian Binnie clear macro defined markers #103 = Cur_Pos if (Block_Begin==-1 || Block_End==-1 || Block_Begin==Block_End) // if no block markers set { Mark_Word() // Mark current word as a block #103 = 0 // don't save Cur_Pos } else { if(Cur_Pos>Block_End || Cur_Pos lower // if lower -> Caps // else -> UPPER Reg_Copy_Block(103,Block_Begin,Block_End) // Original Case_Upper_Block(Block_Begin,Block_End) Reg_Copy_Block(104,Block_Begin,Block_End) if(Reg_Compare(103,@(104),CASE) == 0) // Original Upper Case { Case_Lower_Block(Block_Begin,Block_End) // to lower } else { Case_Lower_Block(Block_Begin,Block_End) Reg_Copy_Block(104,Block_Begin,Block_End) if(Reg_Compare(103,@(104),CASE) == 0) // Original Lower Case { if(#103) // User selected block { Goto_Pos(Block_Begin) while (Cur_Pos < Block_End) { Case_Upper_Block(Cur_Pos,Cur_Pos+1, NORESTORE) // to Caps Search_Block("|S", Cur_Pos, Block_End, NOERR+ERRBREAK+ADVANCE) Search_Block("|!|S", Cur_Pos, Block_End, NOERR+ERRBREAK) } Goto_Pos(#103) // restore Cur_Pos } else { Case_Upper_Block(Block_Begin,Block_Begin+1) // to Caps } } else { Case_Upper_Block(Block_Begin,Block_End) // to UPPER } } if(#103==0) { Block_Begin(CLEAR) // clear macro defined markers } Return