qM&r MYE_TPU.BCKx MYE_TPU.BCK_BACKUP 0README.TXT,AARELMYE_TPU.DOC,MYE_TPU.NOTE,MAK_SYMB_OFLG.TPU,MYE_CMD.TPU,MYE_EDT.HLP,MYE_EDT.TPU,MYE_FORMAT.TPU,MYE_HEXTYPE.TPU,MYE_MACRO.TPU,MYE_SORT.TPU,MYE_TABS_CNV.TPU,MYE_TPU.HLP,MYE_TPU.TPU,MYE_TPU_MASTER.FILE,MYE_TPU_VERSION.DAT,STRUCT_COM.TPU,STRUCT_PASCAL.TPU,MAK_HLP_CC.TPU,MAK_KIT.TPU,MAK_KIT.COM MYE_TPU.BCK/SAV/LOG/GROUP=0/BLOC=2048 BERENGUIER_A2@`V5.4 _DECUSF::  _$1$DIA1: V5.4 *[WORK.BER]0README.TXT;1+,7?./ 4B-7 0123KPWO56g7}89GHJN 2@ > La presente distribution concerne un produit appeler MYE_TPU,5soit MULTI YIELD EDITOR based on TPU, elle comporte :" 0readme.Txt : Le present fichier* Mye_Tpu.Note : une notice d'introduction9 AaRelMye_Tpu.Doc : La liste des corrections, adjonctions : des differentes releases.1 Mye_Edt.Hlp : Les 2 fichiers pour construire la$ Mye_Tpu.Hlp : bibliotheque de help( Mye_Cmd.Tpu : Huit fichiers source tpu Mye_Edt.Tpu : Mye_Format.Tpu : Mye_Hextype.Tpu : Mye_Macro.Tpu :޳t MYE_TPU.BCK7?7 [WORK.BER]0README.TXT;1Bt Mye_Sort.Tpu : Mye_Tabs_Cnv.Tpu : Mye_Tpu.Tpu :: Mye_Tpu_Master.File : 2 fichiers pour la construction par Mye_Tpu_Version.Dat : evebuild.3 Mak_Symb_Oflg.Tpu : 5 fichiers d'exemples de macro Struct_Com.Tpu : Struct_Pascal.Tpu : Mak_Hlp_Cc.Tpu : Mak_Kit.Tpu :+ Mak_Kit.Com : Le fichier de commande pour : reconstruire le kit.-------A Pour construire MYE_TPU, apres avoir restaurer le backup dans le&repertoire de votre choix, effectuer ::$ Evebuild == "Edit/Tpu/NoDisplay/Section=Eve$Section" + -4 "/Command=Sys$Examples:Eve$Build/NoInitialization"$ Evebuild Mye_Tpu=$ Librarian /Create=Key:31 /Log /Help Mye_Tpu Mye_Tpu,Mye_Edt--------; Pour l'utilisation vous devez effectuer les assignations :=$ Define Tpu$Section "Mye_Tpu_Location:Mye_Tpu.Tpu$Section"($ Define Abelib "Mye_Tpu_Help_Location"3$ Define Mye_Tpu_Macro_Lib "Mye_Tpu_Macro_Location" Avec :BMye_Tpu_Location : le device et directory ou se trouve la section.>Mye_Tpu_Help_Location : le device et directory ou se trouve la bibliotheque de help.@Mye_Tpu_Macro_Location : Le device et directory ou se trouve les fichiers macros. MYE_TPU.BCK7 7 [WORK.BER]AARELMYE_TPU.DOC;1H% *[WORK.BER]AARELMYE_TPU.DOC;1+,7 ./ 4H8-7 0123KPWO56 "7`m89GHJN 2@ 0 +-----------------------+0 | Versions of Editor |0 | |0 | M Y E _ T P U |0 | |0 +-----------------------+==================== -10 : Le Objet :  Modules touches : ==================== -9 : Le 01/10/91G Objet : Adding a Ctrl Key to perform Do command - for foreign terminalHto authorize user to perform command like quit. ( Edt has it, Ctrl_Z putBsession in line mode editing. Eve V2 hasn't, Ctrl_Z make a exit. )Bind Ctrl_D Key to Do function.' Modules touches : Mye_Tpu ( Mye_Key ).==================== -8 : Le 30/09/917 Objet : Implementation of Red Key ( for macro usage ).' Modules touches : Mye_Tpu ( Mye_Key ).==================== -7 : Le 27/09/91? Objet : Saved_Timer_State need to be initialized for On_Error.4 Modules Touches : Mye_Edt, Mye_Format, Mye_HekKh MYE_TPU.BCK7 7 [WORK.BER]AARELMYE_TPU.DOC;1Hxtype, Mye_Tabs_Cnv., Macro Touchees : Mak_Hlp_Cc, Mak_Symb_Oflg.==================== -6 : Le 26/09/91; Objet : Searching macro in current directory first, before searching in Mye_Tpu_Macro_Lib:./ Modules touches : Mye_Macro ( Mye_Cmd_Macro ).==================== -5 : Le 16/09/91# Objet : Adjonction command "PRINT"1 Modules touches : Mye_Edt ( Adj Mye_Cmd_Print ).==================== -4 : Le 24/07/914 Objet : Correction timer message on edt substitute.2 Modules touches : Mye_Edt ( Mye_Cmd_Substitute ).==================== -3 : Le 26/06/91A Objet : Correction of bug : Select_All don't get the same result/as Top, Mark_Select, Bottom, on all formatters.= Modules touches : Mye_Hextype ( Mye_Pro_Cntrl_Select_Line ).==================== -2 : Le 24/06/918 Objet : Correction, Edt substitute work in insert mode. Modules touches : Mye_Edt.==================== -1 : Le 14/06/91 Objet : Correction on :/ - Mye_Edt ( Analize, handling multi range ).0 - Mye_Macro ( reduction of code for Display ) Adjonction on :' - Mye_Macro ( Handling Parameters ).& Modules touches : Mye_Edt, Mye_Macro. F==================== Preparation for future distribution ====== 1.1-xx Release 1.0-0( Distribued to DECUS France, 17-MAY-1991X MYE_TPU.BCK277 [WORK.BER]MYE_TPU.NOTE;1I*[WORK.BER]MYE_TPU.NOTE;1+,27./ 4I-7 0123KPWO567ݼ89GHJN 2@ MYE == MULTI YIELD EDITOR; Editeur a rendement multiple, base sur EVE et sur un usage-intensif des possibilites de KEY definitions.' Cet editeur apporte en plus de "EVE" :I un clavier complet de definition de key, monter par dessus le clavier EDT;G un deuxieme clavier complet ( Blue keypad ), pouvant etre mis en et' hors service par une simple touche;F un jeu de commande se superposant par dessus les commandes de EVE , ( pouvant etre mis en et hors service ).> Cet ensemble de commande et de touches permet entre autre :G la navigation aise entre les buffers notamment par l'implementationF de la fonction "last buffer" d'edt ( le vrai ), accessible par des touches;G les fonctions habituelles que l'on trouvent dans tous editeurs base@ sur TPU ( transposition de caracteres, signature, touches de caracteres speciaux ... ); des fonctions de DATE;B des fonctions de formatage de mots ou de titre, pour rendre le( docuc> MYE_TPU.BCK277 [WORK.BER]MYE_TPU.NOTE;1I\,ment plus agreable a la lecture;H des fonctions de fichiers ( Edit, Include ... ) tenant compte du nomG du fichier specifie sur la premiere ligne, ce qui evite ( comme surH le vrai EDT ) de refrapper une definition de fichier complet lorsqueD l'on desire le listing ou le log associe, ou que l'on desire une$ routine ( donc meme file_type );H des commandes d'analyse de texte pouvant montre un char ou une ligne avec la representation hexa;C des commandes de formatage sur une colonne, sur plusieurs, pour& formater un help "related topics";B une commande sort nettement ameliore ( tenant compte du MCS );E des commandes de transformations de tabulations en blancs et viceH versa, qui tiennent compte des positions mises par l'utilisateur, ceD qui permet de changer l'indentation de tout ou partie d'un texte facilement;H des commandes d'indentation par colonne ou par tabulation preservantG une partie du texte ( cela permet d'indenter du DCL en gardant le $ en premiere position );@ une commande substitute ( presque identique a celle d'EDT );E une commande macro permettant de charger du code tpu utilisable a l'occasion.? Le help interne apporte des complements d'informations surC chaque commandes. Desole, mais pour des raisons de distribution0 interne il est en anglais ( ou il se veut ).&e[ MYE_TPU.BCK77 [WORK.BER]MAK_SYMB_OFLG.TPU;1P *[WORK.BER]MAK_SYMB_OFLG.TPU;1+,7. / 4P -7 0123KPWO 56@~7@89GHJN 2@ ! Mak_Symb_Oflg.TpuH!*********************************!*********!***************************4! LANG: Vaxtpu VERSION : 1.1-7 27/09/911! BUT: Extensions Pour Eve.H!-----------------------------------------------------------------------;! NAM: Mak_Symb_Oflg CMP: .......... PGM: ..........! SYS: Vax/Vms 5.3! ENT: ..........! RTN: ..........C! FNC: Macro definisan en DCL les Ofsset et longueur d'un symbol.! CAL: ..........!------------------------------ ! REV: 5! VER DATE OBJ AUTG! . . . . . . . . . . . .(! -7 27/09/91 Berenguier Alain ! Cor : Init Saved_Timer_State.!B! 1.0-0 xx/xx/xx Creation Berenguier AlainG!*********************************************************************)Procedure Mye_Cmd_Mak_Symb_Oflg ( ; A_Help ) ;Local X , Token_Ar , Labelit , Cur_Offset , CuP MYE_TPU.BCK77 [WORK.BER]MAK_SYMB_OFLG.TPU;1P r_length , Total , Mye_Tpu_Wrk_Buffer , Mark_On_Wrk , Mark_On_Range , The_Range , Start_Range , End_Range , Temp_String , Temp_Index , Saved_Timer_State , Saved_Timer_Msg , Saved_Mark ;On_Error [TPU$_CONTROLC]:- If Saved_Timer_State <> Tpu$K_Unspecified Then& Mye_Pro_Set_Timer ( Saved_Timer_Msg , Temp_String , Saved_Timer_State , Temp_Index ) ; Endif ;* Eve$$Restore_Position ( Saved_Mark ) ; Eve$Learn_Abort ; Abort ; [OTHERWISE]:- If Saved_Timer_State <> Tpu$K_Unspecified Then& Mye_Pro_Set_Timer ( Saved_Timer_Msg , Temp_String , Saved_Timer_State , Temp_Index ) ; Endif ;* Eve$$Restore_Position ( Saved_Mark ) ; Endon_Error ;DSaved_Mark := Mark ( Free_Cursor ) ; ! only needed for error returns(Saved_Timer_State := Tpu$K_Unspecified ;If A_Help <> Tpu$K_Unspecified Then If A_Help = "?" Then!-------------< --------Mye_Macro_Mak_A_Help (" ",P" This macro build the necessary affectation for offset and length on",P" every symbol for use in dcl command file to perform extract on each field."," "," Examples:","" Transform the selected range",O" -------------------------------------------------------------------------",F" ! 1 Element_Name - Full_File_Name Of Element ( Index ) - 92 Char",/" ! 2 Lock - Status 0 | 1 | 2 - 1 Char",O" -------------------------------- +be MYE_TPU.BCK77 [WORK.BER]MAK_SYMB_OFLG.TPU;1P :-----------------------------------------"," to obtain",O" -------------------------------------------------------------------------"," $ Element_Name_Of = 0"," $ Element_Name_Lg = 92"," $ Lock_Of = 92"," $ Lock_Lg = 1","" $ ! Total Length Record : 93",O" -------------------------------------------------------------------------"," " ) ;Return ;!-------------> -------- Else# Message ( "Unknow parameters" ) ; Return ; Endif ; Endif ;Mye_Pro_Take_Range_Or_Buf ( Start_Range , End_Range , The_Range , "Make_Offset" ) ;'Mye_Pro_Set_Timer ( "Building Offset" , Saved_Timer_Msg , True , Saved_Timer_State ) ;(Mye_Tpu_Wrk_Buffer := Mye_Fnct_Wrk_Buf ;!Position ( Mye_Tpu_Wrk_Buffer ) ;Erase ( Mye_Tpu_Wrk_Buffer ) ;%Mark_On_Wrk := Mark ( Free_Cursor ) ;Position ( Start_Range ) ;'Mark_On_Range := Mark ( Free_Cursor ) ;$Token_Ar := Create_Array ( 30, 1 ) ;Cur_Offset := 0 ;Loop Position ( Mark_On_Range ) ; Line := Current_Line ; If Line <> "" Then" Line := Edit ( Line, Compress ) ; Line := Edit ( Line, Trim ) ; Temp_String := Line ; X := 1 ; Loop/ Temp_Index := Index ( Temp_String, " " ) ; Exitif ( Temp_Index = 0 ) ;B Token_Ar { X } := Substr ( Temp_String, 1, Temp_Index - 1 ) ;9 Temp_String := Substr ( Temp_String, Temp_Index + 1,! Length ( Temp_String ) ) ; X := X + 1 ; Endloop ; Position ( Mark_On_Wrk ) ; L d< MYE_TPU.BCK77 [WORK.BER]MAK_SYMB_OFLG.TPU;1P  abelit := Token_Ar { 3 } ;+ Cur_length := Int ( Token_Ar { X - 1 } ) ;? Copy_Text ( "$ " + Labelit + "_Of = " + Str ( Cur_Offset ) ) ; Split_Line ;? Copy_Text ( "$ " + Labelit + "_Lg = " + Str ( Cur_Length ) ) ; Split_Line ;( Cur_Offset := Cur_Offset + Cur_Length ;& Mark_On_Wrk := Mark ( Free_Cursor ) ; Position ( Mark_On_Range ) ; Endif ; Position ( Line_End ) ; Move_Horizontal ( 1 ) ;+ Mark_On_Range := Mark ( Free_Cursor ) ;+ Exitif ( Mark_On_Range >= End_Rang e ) ; Endloop ;Position ( Mark_On_Wrk ) ;ACopy_Text ( "$ ! Total Length Record : " + Str ( Cur_Offset ) ) ;Position ( Start_Range ) ;Erase ( The_Range ) ;"Move_Text ( Mye_Tpu_Wrk_Buffer ) ;%Mye_Pro_Set_Timer ( Saved_Timer_Msg , Temp_String , Saved_Timer_State , Temp_Index ) ;&Endprocedure ; ! Mye_Cmd_Mak_Symb_Oflg(Procedure Mye_Macro_Mak_Symb_Oflg_Init ;!E! Define and set global variable to obtain parameter in command line.!:Mye_Cmd_Arg1_Mak_Symb_Oflg := Mye_Cmd_Arg1_Edit ; ! String!C! Bind on key Gold-A is specialy reserved to it. ( temporary key ).&Define_Key ( "Mye_Cmd_Mak_Symb_Oflg" , Key_Name ( "A", Shift_Key ), "Mye_Tpu Macro (Macro)" , Mye_K_Keys_Name ) ;!-Endprocedure ; ! Mye_Macro_Mak_Symb_Oflg_Init!-------------------- $! Mye_ .TPU ; Page 26! Build dependency6! There are comment for eventualy future use in module! Eve$$Require ( "Mye_Tpu" ) ;"! Eve$$Require ( "Mye_Hextype" ) ; m MYE_TPU.BCK77 [WORK.BER]MYE_CMD.TPU;1O3/#*[WORK.BER]MYE_CMD.TPU;1+,7.3/ 4O33-7 0123KPWO456 G7@/p89GHJN 2@ .! Mye_Cmd.TPU ; 8-OCT-1990 15:18 ; Page 1Module Mye_Cmd Ident "V1.0-0"H!*********************************!*********!***************************7! LANG: Vaxtpu VERSION : 1.0-0 8-OCT-19901! BUT: Extensions Pour Eve.H!-----------------------------------------------------------------------;! NAM: Mye_Cmd CMP: .......... PGM: ..........! SYS: Vax/Vms 5.3! ENT: ..........! RTN: ..........,! FNC: Module de commande, mes commandes :0! - complementaire eve ( handler avant eve ).! - supplementaire ! Commandes :! Edit ! like get_file! Include ! Include file0! Rol_Edit ! Rolling editor ( multiples files )(! Load_Selected ! Edit a selected file.;! Scratch ! Set buffer Scratch ( Read_Only, Modifiable ). ! Znl ! Insert a numbered line*! Zcnl ! Insert a centered numbered line! CAL: ..........!------------------------------ ! REV: 5! VER DATE OBJ AUTG! . x? MYE_TPU.BCK77 [WORK.BER]MYE_CMD.TPU;1O3/ . . . . . . . . . . .B! 1.0-0 08/10/90 Creation Berenguier AlainG!*********************************************************************) ! Procedure Mye_Cmd_Module_Ident!! Return "V1.0-0" ;!'! EndProcedure ; ! Mye_Cmd_Module_Ident .! Mye_Cmd.TPU ; 8-OCT-1990 15:18 ; Page 2!++! Table of Contents !! Mye_Cmd.Tpu! 8-OCT-1990 15:27!#! Procedure name Page Description$! --------------  ---- ------------!6! Mye_Cmd_Module_Ident 1 Identification Of Module. ! ------ Globals Variables 3 ! Mye_CmdxParse 4 Parser&! Mye_Cmd_Process_Command 14 Parser&! Mye_CmdXToggle 15 Toggle Mye_Cmd"! Mye_Cmd_Edit 16 Edit Command%! Mye_Cmd_Include 17 Include file)! Mye_Cmd_Rol_Edit 18 Edit multi-files2! Mye_Cmd_Load_Selected 19 Edit a selected file+! Mye_Cmd_Scratch 20 Set buffer scratch+! Mye_Cmd_Znl 21 Insert a Numbered line3! Mye_Cmd_Zcnl 22 Insert a center numbered line,! Mye_CmdxKey 23 Module Keys definitions)! Mye_Cmd_Module_Pre_Init 25 Pre_Init.!! Mye_Cmd_Module_Init 25 Init.!-- ! Mye_Cmd.TPU ; Page 3Constant3 Mye_K_No_Eve := "____" , ! No process Eve command. Mye_K_Prefix := "MYE_CMD_" ;Variable' Mye_X_Prefix , ! For reuse of Parser. Eve$X_Enable_Parser_Mye_Cmd , ! To enable it. Mye_Cmd_Arg1_Edit , Mye_Cmd_Arg1_Rol_Edit , Mye_Cmd_Arg1_Include ,% Eve$Kt_Topic_Mye_Tpu_Load_Selecte ugV MYE_TPU.BCK77 [WORK.BER]MYE_CMD.TPU;1O3dd , Eve$Kt_Topic_Mye_Tpu_Rol_Edit , Eve$Kt_Topic_Mye_Tpu_Znl , Eve$Kt_Topic_Mye_Tpu_Zcnl , Eve$Kt_Topic_Mye_Tpu_Scratch , Eve$Kt_Topic_Mye_Tpu_Mye_Cmd , Eve$Kt_Topic_Mye_Tpu_Edit , Eve$Kt_Topic_Mye_Tpu_Include ; ! Mye_Cmd.TPU ; Page 4=! C'est le parser de evesecini du 2-Octobre-1987 Eve V1.1-024E! remodifier pour fonctionner avec les routines de Eve$Parser V02-011B! ( les sources de ce modules ne se trouvent pas dans Sys$Examples! en VMS 5.3-1 ).2! Les commentaires !>D sont enlever pour debuger=! !>Z sont les messages pour eviter la duplication par le! parser d'EVE.!L! The main command line parsing procedure. Returns a VAXTPU command string.K! Parses Eve commands, which call procedures whose names start with "eve_".H! Commands can be typed with or without parentheses and quotation marks.K! Multi-word commands like fill_paragraph may be typed with a space insteadI! of an underscore. Defaults are provided so that procedures will prompt@! for missing arguments (prompting varies too much for effective! centralization).! ! Parameters:!+! line_to_parse Eve command string - input)Procedure Mye_CmdxParse ( Line_To_Parse )BLocal parse_result, ! String containing VAXTPU command to execute8 current_token, ! String currently being processed< uppercase_token, ! Uppercase version of current_token; expanded_token, ! String with all candidate commands7 choice_token, ! Current item from expanded_token:  oi MYE_TPU.BCK77 [WORK.BER]MYE_CMD.TPU;1O3\ command_token, ! Eve command name, with underscores< command_name, ! Eve command name, without underscores6 choices, ! Subset of expanded_token that match4 how_many_choices, ! How many items in choicesG possible_completion, ! String containing first n words of command. completion, ! First possible_completionG ambiguous_completion, ! True if possible_completion is not uniqueB no_more_words, ! True when all words in command name parsedC reusing_token, ! True if lookahead found an argument instead ! of part of a command name$ this_buffer, ! Current bufferA arguments, ! Number of arguments expected for this commandF which_argument , ! Number of argument currently being processed Argument_Prefix , Mye_Cmd_Prefix , Mye_Cmd_Prefix_Length ;On_Error8! Trap messages with tpu$_nonames and tpu$_multiplenames Endon_Error ; ! Mye_Cmd.TPU ; Page 5 Mye_Cmd_Prefix := Mye_X_Prefix ;4Mye_Cmd_Prefix_Length := Length ( Mye_Cmd_Prefix ) ;+Argument_Prefix := Mye_Cmd_Prefix + "ARG" ;&Eve$$X_Command_Line := Line_To_Parse ;Eve$$X_Command_Index := 1 ;9Eve$$X_Command_Length := Length ( Eve$$X_Command_Line ) ;(! ----- eve$x_ambiguous_parse := 0;%Eve$$X_Argument_Type := Eve$Kt_Null ;Parse_Result := Eve$Kt_Null ;Command_Token := Eve$Kt_Null ;Command_Name := Eve$Kt_Null ;Expanded_Token := Eve$Kt_Null ; Uppercase_Token := Eve$Kt_Null ;Erase ( Eve$Choice_Buffer ) ;=! Get lM MYE_TPU.BCK77 [WORK.BER]MYE_CMD.TPU;1O3] command name - since commands may have spaces, this can ! involve parsing several tokensI! Handle first token separately, outside the loop, for easier diagnostics! and handling eve_ prefix!Current_Token := Eve$$Get_Token ;#If Current_Token = Eve$Kt_Null Then'!>Z Message ( "No command given" ) ; Return ( Eve$Kt_Null ) ; Endif ;.If Not Eve$$X_State_Array { Eve$$K_Is_Symbol } ThenH!>Z Message ( Fao ( "Unrecognized command: !AS", current_token ) ) ; Return ( Eve$Kt_Nul l ) ; Endif ;7!>D Message ( "D- current_token : " + current_token ) ;"Uppercase_Token := Current_Token ;(Change_Case ( Uppercase_Token, Upper ) ;:If Substr ( Uppercase_Token, 1, Mye_Cmd_Prefix_Length ) <> Mye_Cmd_Prefix Then9 Uppercase_Token := Mye_Cmd_Prefix + Uppercase_Token ; Endif ;This_Buffer := Current_Buffer ; ! Mye_Cmd.TPU ; Page 6 ! Loop for parsing command tokenLoopC Expanded_Token := Expand_Name ( Uppercase_Token, Procedures ) ;( If Expanded_Token = Eve$Kt_Null Then$ If Parse_Result <> Eve$Kt_Null Then Reusing_Token := 1 ; Exitif 1 ; Else? ! Usually will get leading space due to "Command: " prompt!>Z Message-!>Z ( Fao ( "Don't understand command: !AS",+!>Z Substr ( Eve$$X_Command_Line, 1,'!>Z Eve$$X_Command_Index - 1 ) ) ) ; Return ( Eve$Kt_Null ) ; Endif ; Endif ; How_Many_Choices := 0 ; Ambiguous_Completion := 0 ; Completion := Eve$Kt_Null ; Choices := Eve%XR MYE_TPU.BCK77 [WORK.BER]MYE_CMD.TPU;1O3$Kt_Null ; ! Mye_Cmd.TPU ; Page 79 ! Move to choice buffer and loop through the choices.. Eve$Expand_To_Choices ( Expanded_Token ) ; Loop6 Exitif Mark ( None ) = End_Of ( Eve$Choice_Buffer ) ; Choice_Token := Current_Line ;+ How_Many_Choices := How_Many_Choices + 1 ;? If Uppercase_Token = Choice_Token Then ! found an exact match# Parse_Result := Choice_Token ; Endif ;I Possible_Completion := Eve$$Complete ( Uppercase_Token, Choice_Token ) ;+ If Possible_Completion = Choice_Token Then No_More_Words := 1 ; Endif ; If How_Many_Choices = 1 Then( Completion := Possible_Completion ; Else. If Completion <> Possible_Completion Then Ambiguous_Completion := 1 ; Endif ; Endif ; Move_Vertical ( 1 ) ; Endloop ;1 Eve$Strip_Choices ( Mye_Cmd_Prefix_Length ) ; Position ( This_Buffer ) ;/ Translate ( Eve$Choice_Buffer, " ", "_" ) ;* If Parse_Result = Uppercase_Token Then Reusing_Token := 0 ; Exitif 1 ; Else If How_Many_Choices = 1 Then % Parse_Result := Expanded_Token ;0 Else*! If Ambiguous_Completion Then* Eve$Display_Choices*, ( Fao ( "Ambiguous command name: !AS",% Substr ( Eve$$X_Command_Line, 1, ' Eve$$X_Command_Index - 1 ) ) ) ;- Return ( Eve$Kt_Null ) ; Else- If No_More_Words Then-" Parse_Result := Completion ; Reusing_Token := 0 ; Exitif 1 ; Endif ;: Endif ; Endif ; Endif ;  :! Mye_Cmd.TPU ; Page 8de4 MYE_TPU.BCK77 [WORK.BER]MYE_CMD.TPU;1O3<- ! Get next token and try to build command $ Current_Token := Eve$$Get_Token;' If Current_Token = Eve$Kt_Null Thenu$ If Parse_Result <> Eve$Kt_Null Then Reusing_Token := 1 ;s Exitif 1 ;t Elsei= Eve$Display_Choices (Fao ("Ambiguous command name: !AS",y) Substr (Eve$$X_Command_Line, 1,e' Eve$$X_Command_Index - 1)));e Return ( Eve$Kt_Null ) ; Endif ; Else6 Uppercase_Token := Completion + "_" + Current_Token ;) Change_Case ( Uppercase_Token, Upper ) ; Endif ; Endloop ;.5!>D Message ( "D- Parse_Result : " + Parse_Result ) ; HCommand_Token := Substr ( Parse_Result, Mye_Cmd_Prefix_Length + 1, 1 ) ;%Change_Case ( Parse_Result, Lower ) ; Command_Token := Command_Token +4 Substr ( Parse_Result, Mye_Cmd_Prefix_Length + 2,; Length ( Parse_Result ) - Mye_Cmd_Prefix_Length + 1 ); Command_Name := Command_Token ;t&Translate ( Command_Name, " ", "_" ) ;5!>D Message ( "D- command_name : " + Command_Name ) ; ! Mye_Cmd.TPU ; Page 9-/! Check for arguments that this command expectsoArguments := 1 ;LoopC Exitif Expand_Name ( Argument_Prefix + Str ( Arguments ) + "_" +s- Command_Token, Variables ) = Eve$Kt_Null ;  Arguments := Arguments + 1 ; Endloop;Arguments := Arguments - 1 ;7!>D Message ( "D- Arguments : " + Str ( Arguments ) ) ;e@! Since execute can only take 132 character strings, Eve command5! names can only be (132 - 30) = 102 characters long.IM! If arguments = 0 or Argument_Prefix* is unέ> MYE_TPU.BCK77 [WORK.BER]MYE_CMD.TPU;1O3oinitialized, eve$$x_argument_type 2! has already been initialized to the null string.If Arguments > 0 Thenr< Execute ( "Eve$$X_Argument_Type := " + Argument_Prefix + "1_" + Command_Token ) ;aEndif;?! Get second token - if it's an open paren, get the next token."D! Parsing command name may have stopped on real 2nd token, so check.If Not Reusing_Token Then!% Current_Token := Eve$$Get_Token ;Endif ;AWhich_Argument := 0 ;AIf Arguments > 0 ThenK( Parse_Result := Parse_Result + "(" ;Endif ;_ o$! Mye_Cmd.TPU ; Page 10'! Loop to handle arguments, in 4 steps:o?! 1) If last argument, check for closing punctuation and return_;! 2) If last token, handle defaults for remaining arguments! 3) Handle the argument! 4) Get the next tokeneLoop= ! If last argument, handle closing punctuation and return & If Which_Argument = Arguments Then; If ( Current_Token = "\" ) Or ( Current_Token = "|" ) Thenm' Current_Token := Eve$$Get_Token ;r Endif ;$ If Current_Token = Eve$Kt_Null Then If Arguments > 0 Then& Parse_Result := Parse_Result + ")" ; Endif ; Return ( Parse_Result ) ; ElseuF! un probleme, si l'on declare une commande "synonyme" de eve avec des! parametres differents. If Arguments = 0 Then4 Message ( Fao ( "!AS does not take any arguments", Command_Name ) ) ; Elsea3 Message ( Fao ( "!AS takes only !SL argument!%S",n( Command_Name, Arguments ) ) ; Endif ; Return (  MYE_TPU.BCK77 [WORK.BER]MYE_CMD.TPU;1O3Mye_K_No_Eve ) ; Endif ; Endif ;  f$! Mye_Cmd.TPU ; Page 11< ! If there are no more tokens, handle default arguments.C ! All Eve functions will prompt appropriately when they get thet2 ! null string or negative numbers as arguments' If Current_Token = Eve$Kt_Null Theng Loops( Exitif Which_Argument = Arguments ;+ Which_Argument := Which_Argument + 1 ; = Execute ( "Eve$$X_Argument_Type := " + Argument_Prefix +C8 Str ( Which_Argument ) + "_" + Command_Token ) ;2 Change_Case ( Eve$$X_Argument_Type, Lower ) ;>!>D Message ( "D- Argument type : " + Eve$$X_Argument_Type ) ;, If Eve$$X_Argument_Type = "string" Then& Parse_Result := Parse_Result + '""'; Else * If Eve$$X_Argument_Type = "integer" then4 Parse_Result := Parse_Result + 'Eve$K_No_Arg'; Else Message 9 ( Fao ( "Argument type !AS must be integer or string",u% Eve$$X_Argument_Type ) ) ;e Return ( Mye_K_No_Eve ) ;d Endif ;s Endif ;' If Which_Argument < Arguments Thena& Parse_Result := Parse_Result + "," ; Endif ; Endloop ;% Parse_Result := Parse_Result + ")" ;r Return ( Parse_Result ) ; Endif ;  _$! Mye_Cmd.TPU ; Page 12 ! Handle current argumentr* Which_Argument := Which_Argument + 1 ;< Execute ( "Eve$$X_Argument_Type := " + Argument_Prefix +7 Str ( Which_Argument ) + "_" + Command_Token ) ;1 Change_Case ( Eve$$X_Argument_Type, Lower ) ;_+ If Eve$$X_Argume$- MYE_TPU.BCK77 [WORK.BER]MYE_CMD.TPU;1O3nt_Type = "string" Then 7 If Eve$$X_State_Array { Eve$$K_Is_Quoted_String } thenA3 Parse_Result := Parse_Result + Current_Token ;v Elsem' If Which_Argument = Arguments Then  Parse_Result :=C= Eve$$Add_Final_String ( Parse_Result, Current_Token ) ;$ Return ( Parse_Result ) ;l Elses Loop; Exitif Eve$$X_Command_Index > Eve$$X_Command_Length ;a Exitif# Index ( Eve$$X_Token_Separators, ' Substr ( Eve$$X_Command_Line,s- Eve$$X_Command_Index, 1 ) ) > 0 ;e7 Current_Token := Current_Token + Eve$$Get_Token ;a Endloop ; 9 Current_Token := Eve$$Double_Quotes ( Current_Token ) ;,< Parse_Result := Parse_Result + '"' + Current_Token + '"' ; Endif ; Endif ; Else) If Eve$$X_Argument_Type = "integer" Thens4 If Eve$$X_State_Array { Eve$$K_Is_Number } Then) Translate ( Current_Token, "1", "l" ) ;a0 Parse_Result := Parse_Result + Current_Token ; Elsec: Message ( Fao ( "!AS expects a number for argument !SL",- Command_Name, Which_Argument ) ) ;u Return ( Mye_K_No_Eve ) ;e Endif ; ElseeC Message ( Fao ( "Argument type !AS must be integer or string",b! Eve$$X_Argument_Type ) ) ;r Return ( Mye_K_No_Eve ) ; Endif ; Endif ;s e$! Mye_Cmd.TPU ; Page 13 ! Get next token% Current_Token := Eve$$Get_Token ;m If Current_Token = "," Thenr" Current_Token := Eve$$Get_Token ;% Parse_Result := Parse_Result + "," ;s Else# If Which_Argument < Argumen,W MYE_TPU.BCK77 [WORK.BER]MYE_CMD.TPU;1O3Ncts Then ) Parse_Result := Parse_Result + "," ;$ Endif ; Endif ;i Endloop ; 0Endprocedure ; ! Mye_CmdxParse ( Line_To_Parse )#!----------------------------------o $! Mye_Cmd.TPU ; Page 14! ditto Mye_CmdxParse.!1! Process command selected in command line editor !E ! Parameters:n! 4! new_do_line String containing Eve command - input1Procedure Mye_Cmd_Process_Command ( New_Do_Line )i>Local Repetitions , ! Number of times to execute this command; This_Position , ! Marker for current cursor position% This_Window , ! Current windowr X_Do_Line , X_Parsed_Do_Line ;7! Make sure we do not repeat the current repeat command_#Repetitions := Eve$X_Repeat_Count ;eIf Repetitions = 0 Then Repetitions := 1 ;n Endif ; ;!>D Message ( "D- Repetitions : " + Str ( Repetitions ) ) ;c@Mye_X_Prefix := Mye_K_Prefix ; ! Permet de reutiliser le parser."If New_Do_Line <> Eve$Kt_Null Then X_Do_Line := New_Do_Line ;5 X_Parsed_Do_Line := Mye_CmdxParse ( X_Do_Line ) ;eL If X_Parsed_Do_Line = Eve$Kt_Null Then ! message sent during parse error! X_Do_Line := Eve$Kt_Null ; Return ( False ) ;  Else9 If X_Parsed_Do_Line = Mye_K_No_Eve Then ! No Eve Command;% Return ( Eve$K_Informational ) ;  Else 7 ! Unmap choice window before executing the command ? If Get_Info ( Eve$Choice_Window, Eve$Kt_Buffer ) <> 0 Then, Unmap ( Eve$Choice_Window ) ;l Endif ; Loop Exitif Repetitions = 0 ; Execut MYE_TPU.BCK77 [WORK.BER]MYE_CMD.TPU;1O3!e ( X_Parsed_Do_Line ) ;" Repetitions := Repetitions - 1 ; Endloop ; Eve$X_Repeat_Count := 0 ; Return ( Eve$K_Success ) ;h Endif ; Endif ;AEndif ;c8Endprocedure ; ! Mye_Cmd_Process_Command ( New_Do_Line )#!----------------------------------  -$! Mye_Cmd.TPU ; Page 15Procedure Mye_CmdXToggle! !! Toggle the activity of Mye_Cmd_ &! Can be process only by a binded key.!If Eve$X_Enable_Parser_Mye_Cmd Then' Eve$X_Enable_Parser_Mye_Cmd := False ;g Else& Eve$X_Enable_Parser_Mye_Cmd := True ; Endif ; Endprocedure ; ! Mye_CmdXToggle#!----------------------------------e $! Mye_Cmd.TPU ; Page 16Procedure Mye_Cmd_Edit ( ; Q_File_Name ) ;ELocal # A_File_Name , ! Answered File Name  Input_Fspec , Ff_Name , ! Full File NameX New_Buf , Cur_Buf ;! F! Edit an another file, like get_file of eve, but with keep of related ! Main file.!r)If ( Q_File_Name = Tpu$K_Unspecified ) Orn ( Q_File_Name = "" )a Then If Not Eve$Prompt_String ( "" , A_File_Name ,/ Message_Text ( Eve$_Getfileprompt, 1 ) ,n, Message_Text ( Eve$_Nofilespec, 0 ) ) Then  Eve$Learn_Abort ;s Return ( FALSE ) ; Endif ; Else A_File_Name := Q_File_Name ; Endif ;uDIf Eve$Is_Wildcard ( A_File_Name ) ! The End_User specify a wildcard Then Ff_Name := A_File_Name ;e Else8 Input_Fspec := Get_Info ( Command_Line, "File_Name" ) ;: Ff_Name := File_Search ( A_File_Name, "", Input_Fspec ) ; If Ff_Nm^ MYE_TPU.BCK77 [WORK.BER]MYE_CMD.TPU;1O3w$ame = "" Then: Ff_Name := File_Parse ( A_File_Name, "", Input_Fspec ) ; Endif ; Endif ;i/Cur_Buf := Get_Info ( Current_Buffer, "Name") ; Eve_Get_File ( Ff_Name ) ;0New_Buf := Get_Info ( Current_Buffer, "Name" ) ;If Cur_Buf <> New_Buf; Then Mye_X_Last_Buffer := Cur_Buf ;g Endif ;uEndprocedure ; ! Mye_Cmd_Edite!--------------------  y$! Mye_Cmd.TPU ; Page 17Procedure Mye_Cmd_Include2 ( ; Q_File_Name ) ; Local # A_File_Name , ! Answered File Namei Input_Fspec , Ff_Name ; ! Full File Name !d=! Include file, like eve, but with keep of related Main file.r! )If ( Q_File_Name = Tpu$K_Unspecified ) Orm ( Q_File_Name = "" )  Then If Not Eve$Prompt_String ( "" , A_File_Name ,, Message_Text ( Eve$_Inclprompt, 1 ) ,, Message_Text ( Eve$_Nofileincl, 0 ) ) Then. Eve$Learn_Abort ;k Return ( FALSE ) ; Endif ; Else A_File_Name := Q_File_Name ;e Endif ;DIf Eve$Is_Wildcard ( A_File_Name ) ! The End_User specify a wildcard Then Ff_Name := A_File_Name ;  Else8 Input_Fspec := Get_Info ( Command_Line, "File_Name" ) ;: Ff_Name := File_Search ( A_File_Name, "", Input_Fspec ) ; If Ff_Name = "" Thenu: Ff_Name := File_Parse ( A_File_Name, "", Input_Fspec ) ; Endif ; Endif ;Eve_Include_File ( Ff_Name ) ; Endprocedure ; ! Mye_Cmd_Include!--------------------n $! Mye_Cmd.TPU ; Page 18Procedure Mye_Cmd_Rol_Edit ( ; Q_File_Name ) ;nLocal=# A_File_Name , ! A MYE_TPU.BCK77 [WORK.BER]MYE_CMD.TPU;1O3F'nswered File Nameu Input_Fspec , Ff_Name , ! Full File Namee New_Buf , Cur_Buf ;!:C! Rolling Edit , get mutiples files with keep of related Main file.!s)If ( Q_File_Name = Tpu$K_Unspecified ) Ord ( Q_File_Name = "" )d Then If Not Eve$Prompt_String ( "" , A_File_Name ,/ Message_Text ( Eve$_Getfileprompt, 1 ) , , Message_Text ( Eve$_Nofilespec, 0 ) ) ThenS Eve$Learn_Abort ;e Return ( FALSE ) ; Endif ; Else A_File_Name := Q_File_Name ;t En(dif ;_7Input_Fspec := Get_Info ( Command_Line, "File_Name" ) ; /Cur_Buf := Get_Info ( Current_Buffer, "Name") ;kDIf Eve$Is_Wildcard ( A_File_Name ) ! The End_User specify a wildcard ThenB Ff_Name := File_Search ( '' ) ; ! Cancel previous search context. Loop; Ff_Name := File_Search ( A_File_Name, "", Input_Fspec ) ;  Exitif Ff_Name = "" ;s< Create_Buffer ( File_Parse ( Ff_Name, "", "", Name,Type ), Ff_Name ) ;n Endloop ; Else9 Ff_Name := File_Parse ( A_File_Name, "", Input_Fspec ) ;d Eve_Get_File ( Ff_Name ) ;( Endif ;u0New_Buf := Get_Info ( Current_Buffer, "Name" ) ;If Cur_Buf <> New_Bufn Then Mye_X_Last_Buffer := Cur_Buf ;= Endif ;h!Endprocedure ; ! Mye_Cmd_Rol_Edit'!------------------------------u t$! Mye_Cmd.TPU ; Page 19Procedure Mye_Cmd_Load_SelectedA!! Edit a selected file!(Localr# A_File_Name , ! Answered File Namer Input_Fspec , Ff_Name , ! Full File Namee New_Buf , Cur_Buf ,$ Lo_Pv , ! Locate du point virgE MYE_TPU.BCK77 [WORK.BER]MYE_CMD.TPU;1O3 *ule. Target ;cOn_Error [OTHERWISE]: Endon_Error ; <Target := Eve$Selection ( True ) ; ! check for active selectIf Target <> 0 Then8 Input_Fspec := Get_Info ( Command_Line, "File_Name" ) ;& A_File_Name := Substr ( Target, 1 ) ;& Lo_Pv := Index ( A_File_Name, ";" ) ; If Lo_Pv > 0u Then; Lo_Pv := Lo_Pv - 1 ;3 A_File_Name := Substr ( A_File_Name, 1, Lo_Pv ) ;W Endif ;9 Ff_Name := File_Parse ( A_File_Name, "", Input_Fspec ) ;A Else Eve$Learn_Abort ; Return (FALSE) +;t Endif ;r/Cur_Buf := Get_Info ( Current_Buffer, "Name") ;eEve_Get_File ( Ff_Name ) ;0New_Buf := Get_Info ( Current_Buffer, "Name" ) ;If Cur_Buf <> New_Buft Then Mye_X_Last_Buffer := Cur_Buf ; Endif ;d&Endprocedure ; ! Mye_Cmd_Load_Selected!--------------------e s$! Mye_Cmd.TPU ; Page 20Procedure Mye_Cmd_Scratch !XG! Transforme le buffer courant "en scratch" buffer ( like edt buffer ). D! The good kind is to have a built-in like file_attribute to perform! this task on open the file._!e Eve_Set_Buffer ( "Read_Only" ) ;!Eve_Set_Buffer ( "Modifiable" ) ;=Message ( "" ) ; Endprocedure ; ! Mye_Cmd_Scratch!--------------------' C$! Mye_Cmd.TPU ; Page 21Procedure Mye_Cmd_Znlv!A*! Insert a ruler's line ( numbered line ).+! a future version can handle for 132 char.r!lLocalu Dz ,o Cnt , Saved_Mark ;aSaved_Mark := Mark ( None ) ;ePosition ( Line_Begin ) ;e Split_line ;Move_Vertical ( -1 ) ;Dz := '....^....' ; x MYE_TPU.BCK77 [WORK.BER]MYE_CMD.TPU;1O3-Copy_Text ( Dz ) ; Cnt := 1 ;Loop Copy_Text ( Str ( Cnt ) ) ; Exitif Cnt = 8 ; Copy_Text ( Dz ) ;( Cnt := Cnt + 1 ;p Endloop ;bPosition ( Saved_Mark ) ; Endprocedure ; ! Mye_Cmd_Znl $! Mye_Cmd.TPU ; Page 22Procedure Mye_Cmd_ZcnlLocal Saved_Mark ;PSaved_Mark := Mark ( None ) ; Position ( Line_Begin ) ;_ Split_line ;Move_Vertical ( -1 ) ; Copy_Text ( J'.^....3....^....2....^....1....^...oo...^....1....^....2....^....3....^.') ; Eve_Center_Line ;gPo.sition ( Saved_Mark ) ;sEndprocedure ; ! Mye_Cmd_Zcnld ;$! Mye_Cmd.TPU ; Page 23Procedure Mye_CmdxKeyeO!****************************************************************************** O!********** B L U E K E Y P A D ********** O!******************************************************************************d!i%Define_Key ( "Mye_Cmd_Load_Selected",n Key_Name ( "E", Shift_Key ),+ "Mye_Tpu Load_Selected (Load_Selected)" ,c Mye_K_Blue_Keys_Name ) ;7Eve$Kt_Topic_Mye_Tpu_Load_Selected := "Load_Selected" ;o! Define_Key ( "Mye_Cmd_Rol_Edit", Key_Name ( "*", Shift_Key ),! "Mye_Tpu Rol_Edit (Rol_Edit)" ,e Mye_K_Blue_Keys_Name ) ;-Eve$Kt_Topic_Mye_Tpu_Rol_Edit := "Rol_Edit" ;t!sDefine_Key ( "Mye_Cmd_Znl",  Key_Name ( "N", Shift_Key ), "Mye_Tpu Znl (Znl)" ,  Mye_K_Blue_Keys_Name ) ;#Eve$Kt_Topic_Mye_Tpu_Znl := "Znl" ;e!uDefine_Key ( "Mye_Cmd_Zcnl" ,i Ctrl_N_Key , "Mye_Tpu Zcnl (Zcnl)" ,w Mye_K_Blue_Keys_NameB MYE_TPU.BCK77 [WORK.BER]MYE_CMD.TPU;1O3z0 ) ;%Eve$Kt_Topic_Mye_Tpu_Zcnl := "Zcnl" ;! Define_Key ( "Mye_Cmd_Scratch" , Key_Name ( "S", Shift_Key ), "Mye_Tpu Scratch (Scratch)" ,l Mye_K_Blue_Keys_Name ) ;+Eve$Kt_Topic_Mye_Tpu_Scratch := "Scratch" ;h!! $! Mye_Cmd.TPU ; Page 24O!******************************************************************************O!********** KEYPAD **********hO!*****************************************************************************1* !_Define_Key ( "Mye_CmdXToggle", Key_Name ( F20, Shift_Key ),& "Mye_Tpu Mye_Cmd (Mye_Cmd_Toggle)" , Mye_K_Keys_Name ) ;c+Eve$Kt_Topic_Mye_Tpu_Mye_Cmd := "Mye_Cmd" ;n!oDefine_Key ( "Mye_Cmd_Edit", Key_Name ( "E", Shift_Key ), "Mye_Tpu Edit (Edit_File)" , Mye_K_Keys_Name ) ; %Eve$Kt_Topic_Mye_Tpu_Edit := "Edit" ;! Define_Key ( "Mye_Cmd_Include",d Key_Name ( "I", Shift_Key ),$ "Mye_Tpu Include (Include_File)" , Mye_K_Keys_Name ) ;X+Eve$Kt_Topic_Mye_Tpu_Include := "Include" ;EEndprocedure ; ! Mye_CmdxKey!--------------------o u$! Mye_Cmd.TPU ; Page 25!Procedure Mye_Cmd_Module_Pre_InitmReturn ( True ) ;P(Endprocedure ; ! Mye_Cmd_Module_Pre_Init!--------------------! Procedure Mye_Cmd_Module_Init Mye_CmdxKey ;%Eve$X_Enable_Parser_Mye_Cmd := True ;,Mye_Cmd_Arg1_Edit := "string" ;e,Mye_Cmd_Arg1_Rol_Edit := Mye_Cmd_Arg1_Edit ;+Mye_Cmd_Arg1_Include := Mye_Cmd_Arg1_Edit ;e ! Eve$Kt_Topic_Mye_Tpu_ := " " ;!_! Return ( True ) [$ MYE_TPU.BCK77 [WORK.BER]MYE_CMD.TPU;1O34v3;&! Endprocedure ; ! Mye_Tpu_Module_Init!--------------------MEndModule ; ! Mye_Cmde!--------------------M a$! Mye_Cmd.TPU ; Page 26! Build dependencyEve$$Require ( "Mye_Tpu" ) ; Endif ; Else A_File_Name := Q_File_Name ; Endif ;uDIf Eve$Is_Wildcard ( A_File_Name ) ! The End_User specify a wildcard Then Ff_Name := A_File_Name ;e Else8 Input_Fspec := Get_Info ( Command_Line, "File_Name" ) ;: Ff_Name := File_Search ( A_File_Name, "", Input_Fspec ) ; If Ff_N{ MYE_TPU.BCK77 [WORK.BER]MYE_EDT.HLP;1MZ*[WORK.BER]MYE_EDT.HLP;1+,7./ 4M-7 0123KPWO567#89GHJN 2@  1 MYE_EDTH!*********************************!*********!***************************4! LANG: Help/Eve VERSION : 1.1-5 16/09/91;! BUT: Help for EDT module of Mye_TpuH!-----------------------------------------------------------------------;! NAM: Mye_Edt.Hlp CMP: Vax/VMS PGM: ..........! SYS: VMS 5.3, EVE 2.0! ENT: ..........! RTN: ..........!! FNC: Help sous Eve de Mye_Tpu! CAL: ..........!------------------------------! REV: ..........5! VER DATE OBJ AUTG! . . . . . . . . . . . .B! 1-5 16/09/91 Add Print Command. Berenguier Alain1! 1.0-0 22/01/91 Creation Berenguier AlainG!********************************************************************** MYE_TPU Mye_Edt5 Some feature of EDT are implemented in MYE. Related topics:G Edt_Range Goto_Last Print SubstitutF/`Q MYE_TPU.BCK77 [WORK.BER]MYE_EDT.HLP;1MXe! !---------------------------- 1 Substitute MYE_TPU SubstituteL The SUBSTITUTE (abbreviated S) command replaces occurrences of one, string of characters with another string. : Format: SUBSTITUTE /string-1/string-2/ [range] [/QUERY] L Unlike real EDT the command may be separated from string parameterK by a space, any character except space can be used as string delimiters. M All occurrences of string-1 within the specified range are replacedJ with string-2. If you do not specify range, a single occurrence in the current line is substituted.G NEXT, /BRIEF[:n], /NOTYPE aren't implemented in this release. Related topics: Edt_Range 2 Qualifier/QUERY Format: /QUERY D When you use the QUERY (abbreviated /Q) qualifier, MYE_EDTK highlights the text, and prompts you with a question "Replace? Type Yes,9 No, All, Last, or Quit: " to verify each substitution.  Responses are: I YES .... (Default choice.) Replace this one and find the next one.4 NO ..... Skip this one and find the next one.E ALL .... Replace all the occurrences in the current direction./ LAST ... Replace this one and stop here.6 QUIT ... Cancel -- skip this one and stop here.! !---------------------------- 1 Edt_Range MYE_TPU Edt_Range< Some commands of MYE implement the EDT Range style= Actually all edt range style are;A MYE_TPU.BCK77 [WORK.BER]MYE_EDT.HLP;1M) available except :< ALL, BUFFER, LAST and STRING which are perhaps in future.* The range ORIGINAL are not implemented.! --!2 ALL!A! The ALL range further refines a general range specification.! !! Format: [range] ALL 'string'! J! While range can be a single, multiple, or compound range, the commandJ! being performed will only apply to those lines of text containing theL! given string. This string can be enclosed in single or double quotation ! marks.! K! Ex: TYPE ALL 'EDT' When ALL is used, the default for range isM! WHOLE. This command will type all the linesL! in the current buffer containing the string'! 'EDT'.! K! SUBS/A/B/50:100 ALL '1' Substitute B for A in all lines from 50 to@! 100 which include the string 1.!! --2 AND2 The AND range selects a group of single lines. . Format: range-1 AND range-2 AND range3 ...* Or: range-1 , range-2 , range3 ... G Each of the ranges must be a single line range. Each of the single lines is operated on. D Ex: TYPE 4 AND 7 Lines 4 and 7 are displayed on the terminal F TYPE BEGIN,END-1 The first and last lines are displayed on the! terminal! 2 BEGINI The BEGIN range (abbreviated B) is a single line range that specifies! the first line > MYE_TPU.BCK77 [WORK.BER]MYE_EDT.HLP;1MC in the buffer.! 2 BEFORED The BEFORE range (abbreviated BEF) is a multiple line range thatE specifies all the lines in the buffer preceding the current line.! !2 BUFFER!J! The BUFFER (abbreviated BU) specification may precede any other rangeK! specification and indicates that the range is to be applied to a named ! buffer.! ! Format: BUFFER name [range]! Or: =name [range]! K! The two forms are equivalent. Name is the name of the buffer in whichH! the text resides. If you leave out the range, the entire buffer is! selected.!! 2 DOTI The dot (.) is a single line range that refers to the current line ofI text. For many commands, dot is the default range. See the help text3 for a command if you are unsure of the default. + Ex: TYPE . Display the current line.! 2 ENDK The END (abbreviated E) range specifies an imaginary line following theG last line in the buffer. END does not specify the last line in theG buffer. The last line can be referred to by E-1 (that is, the line? preceding END). When the END line is typed, it looks like:  [End Of File]! 2 FORJ The FOR range is a multiple line range that selects a specified number. of lines starting at a specified location.  Format: [range] FOR n Or: [range] # n D The two forms are equivalent. Range is a single line range thatJ specifies the starting p! MYE_TPU.BCK77 [WORK.BER]MYE_EDT.HLP;1M> osition, and n is an integer number. If range: is omitted, the current line is the starting position. I Ex: TYPE . FOR 5 Display 5 lines, starting with the current line < TYPE #5 Equivalent to the previous example B TYPE BEGIN FOR 10 Display the first 10 lines in the buffer! !2 LAST!M! The LAST (abbreviated L) range is a single line range that refers to theM! line in the previous buffer which was the current line when you switc hed! to the current buffer.!! 2 MINUSJ The minus sign (-) in ranges selects a single line that is a specified, number of lines before a specified line.  Format: [range] - [n] L Range is a single line range, and n is an integer. The line selected isH the line that is n lines before the line specified by range. If youC omit range, the current line is used; if you omit n, 1 is used. K Ex: TYPE 15 - 3 Display the third line before the line numbered 15. < TYPE END -1 Display the last line in the buffer. 2 TYPE - Display the previous line.! 2 NUMBERK A line number is a single line range that refers to the line having theC specified number. The line number may contain a decimal point. + Ex: TYPE 10 Display line number 10. + INSERT 65.3 Insert above line 65.3. L The maximum allowable line number is 2814749767. A line number may have8 " MYE_TPU.BCK77 [WORK.BER]MYE_EDT.HLP;1M0up to five digits to the right of the decimal point. C You can change the line number with the RESEQUENCE command. InK addition, the INSERT and INCLUDE commands will automatically change theK numbers of existing lines if necessary to make each line in a buffer to5 have a line number larger than the previous line. E When lines are read from the primary input file and that file hasJ sequence numbers, the line number assigned is the sequence number fromH the file, plus N*100000, where N is large enough to ensure that eachG line in the buffer has a line number larger than the previous line.9 File sequence numbers range in value from 0 to 65535.! ! ORIGINAL!! Format: ORIGINAL n! K! The ORIGINAL (abbreviated O) range is no longer a feature of EDT. TheM! keyword ORIGINAL is ignored; the number specified is taken as an editing>! line number. See HELP RANGE NUMBER for more information.!! 2 PLUSG The plus sign selects, in ranges, a single line that is a specified*+ number of lines after a specified line.l  Format: [range] + [n]0 L Range is a single line range, and n is an integer. The line selected isL the line that is n lines after the line specified by range. If you omit? range, the current line is used. If you omit n, 1 is used. NJ Ex: TYPE 15 + 3 Display the third line after the line numbered 15. .> TYPE BEGIN +1 Display the second line in t# MYE_TPU.BCK77 [WORK.BER]MYE_EDT.HLP;1Mhe buffer. D TYPE + Display the line following the current line. .G TYPE 'string'+2 Display the second line following the next liner, continaing 'string'.! 2 RESTJ The REST (abbreviated R) range is a multiple line range that refers to; the current line and all lines following in the buffer. ! 2 SELECTE The SELECT range is a multiple line range that contains all lines L between the current line and the SELECT mark. The SELECT mark is set byG the change mode SEL nokeypad command or the keypad SELECT function.S! !2 STRINGe!)I! A quoted string specifies a single line that contains the specifiedsL! string. You can enclose the string in either single or double quotationG! marks (' or "). When you use a string as a range, EDT will searchmJ! forward, starting with the current line, until it locates a line withH! the specified string. If a minus sign (-) precedes the string, the! search will be backward.i! L! Ex: TYPE 'abc' Locate and display the first line forward that contains&! the string 'abc'.! >! TYPE -"abc" Same, except the search will be backward.! ! 2 THRUK The THRU range is a compound range that specifies all lines between twot single line ranges.  e Format: range-1 THRU range-2 Or: range-1 : range-2o aJ Both forms are equivalent. Starting with range-1, EDT selects all the< lines up$A MYE_TPU.BCK77 [WORK.BER]MYE_EDT.HLP;1Mѥ to and including the line specified by range-2. J Ex: TYPE 15:30 Display all lines with numbers between 15 and 30. eF TYPE 'glorp':END Display all lines from the first line forward7 containing 'glorp' to the end.e! 2 WHOLE E The WHOLE (abbreviated W) range refers to the entire text buffer.-! !----------------------------a1 Print  MYE_TPU PrintaJ The PRINT (abbreviated P) command creates a listing buffer ( and' file ) with the specified file name.R A+ Format: PRINT file-spec [range] [/WRITE]  eJ The lines selected by range are written to a listing format fileJ with page headers. The EDT line numbers will appear on the listing. IfH you omit range, the entire current buffer is printed. Print does notJ alter the current line. Use PRINT only to create a buffer listing. IfM you wish to create a file, use the WRITE command. To create a listing fileg$ use PRINT with /WRITE qualifieur.% MYE_TPU.BCK77 [WORK.BER]MYE_EDT.TPU;1P3:*[WORK.BER]MYE_EDT.TPU;1+,7.3/ 4P33-7 0123KPWO456[; 7 ~ 89GHJN 2@ .! Mye_Edt.TPU ; 22-MAR-1991 16:19 ; Page 1Module Mye_Edt Ident "V1.1-7"H!*********************************!*********!***************************4! LANG: Vaxtpu VERSION : 1.1-7 27/09/911! BUT: Extensions Pour Eve.H!-----------------------------------------------------------------------7! NAM: Mye_Edt CMP: .......... PGM: ..........! SYS: Vax/Vms 5.3! ENT: ..........! RTN: ..........6! FNC: Module implementant les EDT commandes lines : ! SUBSTITUTE! PRINT! CAL: ..........!------------------------------ ! REV: 5! VER DATE OBJ AUTG! . . . . . . . . . . . .(! -7 27/09/91 Berenguier Alain ! Cor : Init Saved_Timer_State.!(! -5 16/09/91 Berenguier Alain! Adj of Mye_Cmd_Print.!(! -4 24/07/91 Berenguier Alain! Cor: timer message string.!(! -2 24/06/91 Berenguier Alain1! Cor: & C{ MYE_TPU.BCK77 [WORK.BER]MYE_EDT.TPU;1P3%work always in insert mode in Substitute.!B! 1-1 14/06/91 Cor / Mye_Edt_Range_Analize Berenguier Alain!B! 1.0-0 08/10/90 Creation Berenguier AlainG!*********************************************************************) ! Procedure Mye_Edt_Module_Ident!! Return "V1.1-5" ;!'! EndProcedure ; ! Mye_Edt_Module_Ident .! Mye_Edt.TPU ; 22-MAR-1991 16:19 ; Page 2!++! Table of Contents !! Mye_Edt.Tpu! 22-MAR-1991 16:19!#! Procedure name Page Description$! -------------- ---- ------------!6! Mye_Edt_Module_Ident 1 Identification Of Module. ! ------ Globals Variables 3 /! Mye_Edt_Range_Analize 4 Analize Edt Range8! Mye_Substitute_Prompt 12 Prompt for substitute cmd..! Mye_Cmd_Substitute 13 EDT Substitute Cmd.%! Mye_Cmd_Print 18 EDT Print Cmd.)! Mye_Edt_Module_Pre_Init 26 Pre_Init.!! Mye_Edt_Module_Init 26 Init.!-- ! Mye_Edt.TPU ; Page 3 ! ConstantVariable Mye_Cmd_Arg1_Substitute , Mye_Cmd_Arg1_Print ,! Eve$Kt_Topic_Mye_Tpu_Edt_Range ," Eve$Kt_Topic_Mye_Tpu_Substitute , Eve$Kt_Topic_Mye_Tpu_Print ; ! Mye_Edt.TPU ; Page 4!Procedure Mye_Edt_Range_Analize ( Edt_Range , Tpu_Range , Edt_Range_Modifier ) ;!B! Analize the string Edt_Range to return the equivalent Tpu_Range.!Constant Sel_Rg := -8 , Plus_Rg := -7 , Minus_Rg := -6 , None_Rg := -5 , One_Rg := -4 , And_Rg := -3 , Thru_Rg := -2 , For_Rg 'F MYE_TPU.BCK77 [WORK.BER]MYE_EDT.TPU;1P3I:= -1 ;Local Old_Pos , Wrk_Edt_Range , Space , A_Lg , W_Lg , Idx , Ord_Idx , Wer_A , Wrk_Buf , Pat_Digit , Pat_Alpha , Cur_Number , Edt_Ord_A , Separator , Status , Total_Lines , The_Line , Percent , Eob_Flag , End_Rg , Bg_Rg , Action ; ! Mye_Edt.TPU ; Page 5If Edt_Range = "" Then Tpu_Range { 0 } := 1 ;A Tpu_Range { 1 } := Create_Range ( Line_Begin, Line_End, None ) ;# Edt_Range_Modifier := "only_one" ; Return Endif ;AWrk_Edt_Range := Change_Case ( Edt_Range, Upper, Not_In_Place ) ;0Edit ( Wrk_Edt_Range, Compress, On, In_Place ) ;,Edit ( Wrk_Edt_Range, Trim, On, In_Place ) ;Space := " " ;!Wer_A := Create_Array ( 10, 0 ) ; Idx := 0 ;Loop Idx := Idx + 1 ; Wer_A { 0 } := Idx ;# A_Lg := Length ( Wrk_Edt_Range ) ;) W_Lg := Index ( Wrk_Edt_Range, Space ) ; If W_Lg = 0 Then" Wer_A { Idx } := Wrk_Edt_Range ; Exitif 1 ; Else: Wer_A { Idx } := Substr ( Wrk_Edt_Range, 1, W_Lg - 1 ) ;* Wrk_Edt_Range := Substr ( Wrk_Edt_Range, W_Lg + 1, A_Lg - W_Lg ) ; Endif ; Endloop ;6Pat_Digit := Anchor + Span ( "0123456789", Reverse ) ;FPat_Alpha := Anchor + Span ( "ABCDEFGHIJKLMNOPQRSTUVWXYZ", Reverse ) ; Idx := 0 ;Old_Pos := Mark ( None ) ;EStatus := Eve$What_Line (Total_Lines, The_Line, Percent, Eob_Flag ) ;Wrk_Buf := Mye_Fnct_Wrk_Buf ;%Edt_Ord_A := Create_Array ( 20, 0 ) ;Ord_Idx := 1 ;!Edt_Ord_A { Ord_Idx } := One_Rg ;Edt_Ord_A { 2 } := None_Rg ;Edt_Ord_A { 3 } (t- MYE_TPU.BCK77 [WORK.BER]MYE_EDT.TPU;1P3 := None_Rg ; ! Mye_Edt.TPU ; Page 6$!>D Message ( "D- Analize phase" ) ;Loop Idx:= Idx + 1 ;" Exitif ( Idx > Wer_A { 0 } ) ;$ Wrk_Edt_Range := Wer_A { Idx } ; Erase ( Wrk_Buf ) ; Position ( Wrk_Buf ) ;! Copy_Text ( Wrk_Edt_Range ) ;3!>D Message ( "D- Edt_Range : " + Wrk_Edt_Range ) ;+ Position ( Beginning_Of ( Wrk_Buf ) ) ; Loop$ Exitif ( Current_Character = '' ) ;F Cur_Number := Search_Quietly ( Pat_Digit, Forward, Exact, Wrk_Buf ) ; Ord_Idx := Ord_Idx + 1 ;7!>D Message ( "D- Ana Ord_Idx : " + Str ( Ord_Idx ) ) ;5!>D Message ( "D- Edt_Range : " + Str ( Wrk_Buf ) ) ; If Cur_Number = 0 Then7 Cur_Number := Search_Quietly ( Pat_Alpha, Forward, Exact, Wrk_Buf ) ; If Cur_Number = 0 Then" Separator := Current_Character ;! Ord_Idx := Ord_Idx + 1 ; Case Separator [ '.' ] :& Edt_Ord_A { Ord_Idx } := The_Line ; [ ',' ] :$ Edt_Ord_A { Ord_Idx } := And_Rg ; [ '+' ] :% Edt_Ord_A { Ord_Idx } := Plus_Rg ; [ '-' ] :& Edt_Ord_A { Ord_Idx } := Minus_Rg ; [ ':' ] :) Edt_Ord_A { Ord_Idx - 2 } := Thru_Rg ; Ord_Idx := Ord_Idx - 1 ; [ '#' ] :( Edt_Ord_A { Ord_Idx - 2 } := For_Rg ; Ord_Idx := Ord_Idx - 1 ; [ Otherwise ] :7 Message ( "Invalid syntax - char : " + Separator ) ; Position ( Old_Pos ) ; Eve$Learn_Abort ; Abort ; Endcase ; Erase_Character ( 1 ) ; Else ! Mye_Edt.TPU ; Page 7& Action := Substr ( Cur_Number, 1 ))TMq MYE_TPU.BCK77 [WORK.BER]MYE_EDT.TPU;1P3P ; Erase ( Cur_Number ) ; Case Action) [ 'B', 'BE', 'BEG', 'BEGI', 'BEGIN' ] : Edt_Ord_A { Ord_Idx } := 1 ; [ 'E', 'EN', 'END' ] :- Edt_Ord_A { Ord_Idx } := Total_Lines + 1 ; [ 'AND' ] :$ Edt_Ord_A { Ord_Idx } := And_Rg ; [ 'THRU' ] :) Edt_Ord_A { Ord_Idx - 2 } := Thru_Rg ; Ord_Idx := Ord_Idx - 1 ; [ 'FOR' ] :( Edt_Ord_A { Ord_Idx - 2 } := For_Rg ; Ord_Idx := Ord_Idx - 1 ;) [ 'W', 'WH', 'WHO', 'WHOL', 'WHOLE' ] :% Edt_Ord_A { Ord_Idx } := Thru_Rg ; Ord_Idx := Ord_Idx + 1 ; Edt_Ord_A { Ord_Idx } := 1 ; Ord_Idx := Ord_Idx + 1 ;) Edt_Ord_A { Ord_Idx } := Total_Lines ;( [ 'BEF', 'BEFO', 'BEFOR', 'BEFORE' ] :% Edt_Ord_A { Ord_Idx } := Thru_Rg ; Ord_Idx := Ord_Idx + 1 ; Edt_Ord_A { Ord_Idx } := 1 ; Ord_Idx := Ord_Idx + 1 ;& Edt_Ord_A { Ord_Idx } := The_Line ; [ 'R', 'RE', 'RES', 'REST' ] :% Edt_Ord_A { Ord_Idx } := Thru_Rg ; Ord_Idx := Ord_Idx + 1 ;& Edt_Ord_A { Ord_Idx } := The_Line ; Ord_Idx := Ord_Idx + 1 ;) Edt_Ord_A { Ord_Idx } := Total_Lines ;3 [ 'S', 'SE', 'SEL', 'SELE', 'SELEC', 'SELECT' ] :$ Edt_Ord_A { Ord_Idx } := Sel_Rg ; [ Otherwise ] :- Message ( "Invalid syntax : " + Action ) ; Position ( Old_Pos ) ; Eve$Learn_Abort ; Abort ; Endcase ; Endif ; Else@ Edt_Ord_A { Ord_Idx } := Int ( Substr ( Cur_Number, 1 ) ) ;F!>D Message ( "D- Ana _ Number : " + Str ( Edt_Ord_A { Ord_Idx } ) ) ; Erase ( Cur_Number ) ; Endif ; Endl*7 MYE_TPU.BCK77 [WORK.BER]MYE_EDT.TPU;1P3oop ; Endloop ; ! Mye_Edt.TPU ; Page 8Position ( Old_Pos ) ;Edt_Ord_A { 0 } := Ord_Idx ;&Edt_Ord_A { Ord_Idx + 1 } := None_Rg ;Ord_Idx := 0 ; Idx := 0 ;Tpu_Range { 0 } := Idx ;)!>D Message ( "D- Edt_Ord_A Array : " ) ;!>D Loop2!>D Message ( "D- xx" + Str ( Ord_Idx ) + " : " +)!>D Str ( Edt_Ord_A { Ord_Idx } ) ) ;!>D Ord_Idx := Ord_Idx + 1 ;+!>D Exitif ( Ord_Idx > Edt_Ord_A { 0 } ) ; !>D Endloop ;!>D Ord_Idx := 0 ; ! Mye_Edt.TPU ; Page 9&!>D Message ( "D- Tpu_Range phase" ) ;Loop Ord_Idx := Ord_Idx + 1 ;' Exitif ( Ord_Idx > Edt_Ord_A { 0 } ) ;B!>D Message ( "D- Trp, Case with Ord_Idx : " + Str ( Ord_Idx ) ) ;P!>D Message ( "D- Edt_Ord_A [ i ] : " + Str ( Edt_Ord_A { Ord_Idx } ) ) ; Case Edt_Ord_A { Ord_Idx } [ None_Rg ] : ; [ One_Rg, And_Rg ] :& If ( Edt_Ord_A { Ord_Idx + 1 } > 0 ) Then Ord_Idx := Ord_Idx + 1 ;( Cur_Number := Edt_Ord_A { Ord_Idx } ;E!>D Message ( "D- Trp, One_Rg Cur_Number : " + Str ( Cur_Number ) ) ; J!>D Message ( "D- Trp, Case with Ord_Idx + 1 : " + Str ( Ord_Idx + 1 ) ) ;.!>D Message ( "D- Edt_Ord_A [ i ] : " +.!>D Str ( Edt_Ord_A { Ord_Idx + 1 } ) ) ;! Case Edt_Ord_A { Ord_Idx + 1 }  [ Plus_Rg ] : Ord_Idx := Ord_Idx + 2 ; Cur_Number := Cur_Number + Edt_Ord_A { Ord_Idx } ;- [ Minus_Rg ] :t Ord_Idx := Ord_Idx + 2 ; Cur_Number := Cur_Number - Edt_Ord_A { Ord_Idx } ;: [ Otherwise ] : ; Endcase ; Idx := Idx + 1 ;d +LJ MYE_TPU.BCK77 [WORK.BER]MYE_EDT.TPU;1P3-# Position ( Cur_Number ) ;2 Tpu_Range { Idx } := Create_Range ( Line_Begin, Line_End, None ) ;R Endif ;B [ Plus_Rg ] : Ord_Idx := Ord_Idx + 1 ;2 Cur_Number := The_Line + Edt_Ord_A { Ord_Idx } ; Idx := Idx + 1 ; Position ( Cur_Number ) ;a1 Tpu_Range { Idx } := Create_Range ( Line_Begin,  Line_End, None ) ; [ Minus_Rg ] :m" If Edt_Ord_A { Ord_Idx + 1 } > 0 Then Ord_Idx := Ord_Idx + 1 ;g3 Cur_Number := The_Line - Edt_Ord_A { Ord_Idx } ;a Else Cur_Number := The_Line - 1 ;u Endif ; Idx := Idx + 1 ; Position ( Cur_Number ) ; 1 Tpu_Range { Idx } := Create_Range ( Line_Begin,n Line_End, None ) ; A$! Mye_Edt.TPU ; Page 10 [ For_Rg ] :* Ord_Idx := Ord_Idx + 1 ;' Cur_Number := Edt_Ord_A { Ord_Idx } ;uE!>D Message ( "D- Trp, For_Rg Cur_Number : " + Str ( Cur_Number ) ) ;y Idx := Idx + 1 ; Position ( Cur_Number ) ; Position ( Line_Begin ) ;! Bg_Rg := Mark ( Free_Cursor ) ;9 Ord_Idx := Ord_Idx + 1 ;C!>D Message ( "D- Trp, For_Rg - 2 Ord_Idx : " + Str ( Ord_Idx ) ) ;y8 Cur_Number := Cur_Number + Edt_Ord_A { Ord_Idx } - 1 ;.!>D Message ( "D- With #x : " +-!>D Str ( Edt_Ord_A { Ord_Idx + 1 } ) ) ;P Position ( Cur_Number ) ;t Position ( Line_End ) ;u" End_Rg := Mark ( Free_Cursor ) ;, Tpu_Range { Idx } := Create_Range ( Bg_Rg, End_Rg, None ) ;)!>D Message ( "D- Trp, End of For_Rg" ) ; [ Thru_Rg ] : Ord_Idx := Ord_Idx + 1 ;' Cur_Number := Edt_,DZO MYE_TPU.BCK77 [WORK.BER]MYE_EDT.TPU;1P3/Ord_A { Ord_Idx } ;u Idx := Idx + 1 ; Position ( Cur_Number ) ;_ Position ( Line_Begin ) ;i! Bg_Rg := Mark ( Free_Cursor ) ;i Ord_Idx := Ord_Idx + 1 ;' Cur_Number := Edt_Ord_A { Ord_Idx } ;y Position ( Cur_Number ) ;_ Position ( Line_End ) ; " End_Rg := Mark ( Free_Cursor ) ;, Tpu_Range { Idx } := Create_Range ( Bg_Rg, End_Rg, None ) ; [ Sel_Rg ] : " If ( Eve$X_Select_Position = 0 ) Then Message ( Eve$_Noselect ) ; Position ( Old_Pos ) ;: Eve$Learn_Abort ; Abort ; Else Idx := Idx + 1 ;S& Tpu_Range { Idx } := Select_Range ; Eve$X_Select_Position := 0 ;t Endif ;t a$! Mye_Edt.TPU ; Page 11 [ Otherwise ] :' Message ( "Internal Error. Seen : " +t' Str ( Edt_Ord_A { Ord_Idx } ) ) ;A3 Message ( "With Ord_Idx : " + Str ( Ord_Idx ) ) ;t+ Message ( "With Idx : " + Str ( Idx ) ) ; Position ( Old_Pos ) ; Eve$Learn_Abort ;, Abort ;N Endcase ; Edt_Range_Modifier := "*" ; Endloop ;rTpu_Range { 0 } := Idx ;Position ( Old_Pos ) ;&Endprocedure ; ! Mye_Edt_Range_Analize!--------------------  $! Mye_Edt.TPU ; Page 12Procedure Mye_Substitute_Prompt" ( Change_This ,_ Continue_Prompting , Quit_After ) ;Local A_Reply , Good_Reply ;LoopB A_Reply := Eve$Prompt_Line ( Message_Text ( Eve$_Replprompt, 1 ),& Eve$$X_Prompt_Terminators ) ;> If Eve$Test_Synonym ( "exit", Eve$$Lookup_Comment ( Last_Key, Eve$X_Key_Map_List ) )" Then ! EXI-' MYE_TPU.BCK77 [WORK.BER]MYE_EDT.TPU;1P3fT = quit replacing A_Reply := Eve$X_Quit ; Endif ; If A_Reply = ''& Then A_Reply := Eve$X_Yes ; Endif ;! Change_Case ( A_Reply, Lower ) ;!>D Message ( A_Reply ) ;(! Good_Reply := True ; ! I presumee Case A_Reply; [ 'y', 'ye', 'yes' ] :) Change_This := True ;%! Continue_Prompting := unchanged ;F! Quit_After := unchanged ;_ [ 'n', 'no' ] : ; Change_This := False ; %! Continue_Prompting := unchanged ; ! Quit_After := unchanged ;  [ 'a', 'al', 'all' ] : ;  Change_This := True ; Continue_Prompting := False ;! Quit_After := unchanged ;! [ 'l', 'la', 'las', 'last' ] : ;t Change_This := True ; Continue_Prompting := False ; Quit_After := True ; ! [ 'q', 'qu', 'qui', 'quit' ] : ;  Change_This := False ; Continue_Prompting := False ; Quit_After := True ; [ Otherwise ] : Good_Reply := False ; Endcase ; Exitif Good_Reply ; Endloop ;)-! Replace? Type Yes, No, All, Last, or Quit: F&Endprocedure ; ! Mye_Substitute_Prompt!--------------------s $! Mye_Edt.TPU ; Page 13Procedure Mye_Cmd_Substitute ( A_Make ) ;Local Inv_Str , Sl ,b Separator , A_Lg ,C A_Reste , W_Lg ,u Old_String ,h New_String , Edt_Range , Qual_String , Rtn_Tpu_Range_Array , Edt_Range_Modifier ,C Old_Pos , Wrk_Pos , Cur_Stream , Subst_Cnt , Prompting , Change_This , Quit_After ,x Temp_String , Temp_Index , Saved_Timer_State , Saved_Timer_Msg , Saved_Mode ,t Saved_Mark ;x.ڋQ MYE_TPU.BCK77 [WORK.BER]MYE_EDT.TPU;1P3\ $! Mye_Edt.TPU ; Page 14On_Error [TPU$_CONTROLC]:* If Saved_Timer_State <> Tpu$K_Unspecified Then' Mye_Pro_Set_Timer ( Saved_Timer_Msg , Temp_String ,x Saved_Timer_State ,x Temp_Index ) ; Endif ;' Eve$$Restore_Position ( Saved_Mark ) ; % Set ( Saved_Mode, Current_Buffer ) ;o Eve$Learn_Abort ; Abort ; [OTHERWISE]:* If Saved_Timer_State <> Tpu$K_Unspecified Then' Mye_Pro_Set_Timer ( Saved_Timer_Msg ,: Temp_String ,1 Saved_Timer_State ,; Temp_Index ) ; Endif ;' Eve$$Restore_Position ( Saved_Mark ) ;O% Set ( Saved_Mode, Current_Buffer ) ;] Endon_Error ;ADSaved_Mark := Mark ( Free_Cursor ) ; ! only needed for error returns3Saved_Mode := Get_Info ( Current_Buffer, "Mode" ) ;I(Saved_Timer_State := Tpu$K_Unspecified ;'Mye_Pro_Set_Timer ( "Replacing " ,O Saved_Timer_Msg , True , Saved_Timer_State ) ;, Set ( Insert, Current_Buffer ) ;Inv_Str := "Invalid String" ; Sl := "/" ;:*A_Reste := Edit ( A_Make, Trim_Leading ) ;A_Lg := Length ( A_Reste ) ; If A_Lg = 0O Then Message ( Inv_Str ) ; Eve$Learn_Abort ; Abort ; Endif ;] $! Mye_Edt.TPU ; Page 15'Separator := Substr ( A_Reste, 1, 1 ) ;A A_Lg := Length ( A_Reste ) - 1 ; If A_Lg = 0  Then Message ( Inv_Str ) ; Eve$Learn_Abort ; Abort ; Endif ;](A_Reste := Substr ( A_Reste, 2, A_Lg ) ;&W_Lg := Index ( A_Reste, Separator ) ; If W_Lg = 0x Then Message ( Inv_Str )/<"- MYE_TPU.BCK77 [WORK.BER]MYE_EDT.TPU;1P3_ ; Eve$Learn_Abort ; Abort ; Endif ;:/Old_String := Substr ( A_Reste, 1, W_Lg - 1 ) ;S6A_Reste := Substr ( A_Reste, W_Lg + 1, A_Lg - W_Lg ) ;A_Lg := Length ( A_Reste ) ; If A_Lg = 0i Then New_String := "" ;  Edt_Range := "" ; Else' W_Lg := Index ( A_Reste, Separator ) ; If W_Lg = 0 ThenE New_String := A_Reste ;I Edt_Range := "" ;( Elsee1 New_String := Substr ( A_Reste, 1, W_Lg - 1 ) ;r8 A_Reste := Substr ( A_Reste, W_Lg + 1, A_Lg - W_Lg ) ; A_Lg := Length ( A_Reste ) ; If A_Lg = 0 Then Edt_Range := "" ; Else Edt_Range := A_Reste ; Endif ;x Endif ; Endif ; A_Lg := Length ( Edt_Range ) ;!W_Lg := Index ( Edt_Range, Sl ) ;x If W_Lg = 0s Then Qual_String := "" ; Else= Qual_String := Substr ( Edt_Range, W_Lg + 1, A_Lg - W_Lg ) ; 1 Edt_Range := Substr ( Edt_Range, 1, W_Lg - 1 ) ;x Endif ;  $! Mye_Edt.TPU ; Page 16!-----1!>D Message ( "D- Old_String : " + Old_String ) ;_1!>D Message ( "D- New_String : " + New_String ) ;g/!>D Message ( "D- Edt_Range : " + Edt_Range ) ;E3!>D Message ( "D- Qual_String : " + Qual_String ) ; !-----.Change_Case ( Qual_String, Upper, In_Place ) ;.Edit ( Qual_String, Compress, On, In_Place ) ;*Edit ( Qual_String, Trim, On, In_Place ) ;If Qual_String <> "" Then! W_Lg := Length ( Qual_String ) ;(- If Qual_String = Substr ( "QUERY", 1, W_Lg )O Then  Prompting := True ;N ElseE4 Message ( "Invalid qualifier : " + Qual_String ) ; Eve$Learn_Abort ;( 0z@ MYE_TPU.BCK77 [WORK.BER]MYE_EDT.TPU;1P3! Abort ; Endif ; Else Prompting := False ; Change_This := True ;I Endif ;;/Rtn_Tpu_Range_Array := Create_Array ( 10, 0 ) ;>9Mye_Edt_Range_Analize ( Edt_Range , Rtn_Tpu_Range_Array ,r Edt_Range_Modifier ) ;P;!>D Message ( "D- Analize Ok : Number of Stream : " + Str (u'!>D Rtn_Tpu_Range_Array { 0 } ) ) ;-3Quit_After := ( Edt_Range_Modifier = "only_one" ) ;  _$! Mye_Edt.TPU ; Page 17Old_Pos := Mark ( None ) ;Cur_Stream := 1 ; ;W_Lg := Length ( New_String ) ;oLoop4 Exitif ( Cur_Stream > Rtn_Tpu_Range_Array { 0 } ) ;C Position ( Beginning_Of ( Rtn_Tpu_Range_Array { Cur_Stream } ) ) ;] Loopr? Wrk_Pos := Search_Quietly ( Old_String, Forward, No_Exact ) ;d Exitif Wrk_Pos = 0 ;% Exitif ( Beginning_Of ( Wrk_Pos ) >p5 End_Of ( Rtn_Tpu_Range_Array { Cur_Stream } ) ) ;  If Prompting Then* Modify_Range ( Wrk_Pos, , , Reverse ) ; Set ( Screen_Update, On ) ;' Mye_Substitute_Prompt ( Change_This,  Prompting, Quit_After ) ; Endif ;T Position ( Wrk_Pos ) ; If Change_This Then Subst_Cnt := Subst_Cnt + 1 ;a Erase ( Wrk_Pos ) ; If W_Lg <> 0n Then  Copy_Text ( New_String ) ; Endif ; Else! for work like eve_replaced%! Position ( End_Of ( Wrk_Pos ) ) ;_! for work like edt substitute Move_Horizontal ( +1 ) ;r Endif ;C Exitif Quit_After ; Endloop ; Cur_Stream := Cur_Stream + 1 ; Endloop ;L.Eve$Message ( Eve$_Replcount, 0, Subst_Cnt ) ;! Position ( Sav1U  MYE_TPU.BCK77 [WORK.BER]MYE_EDT.TPU;1P3>$ed_Mark ) ;$Set ( Saved_Mode, Current_Buffer ) ;%Mye_Pro_Set_Timer ( Saved_Timer_Msg ,b Temp_String ,t Saved_Timer_State ,> Temp_Index ) ;#Endprocedure ; ! Mye_Cmd_Substituted!--------------------  $! Mye_Edt.TPU ; Page 18Procedure Mye_Cmd_Print  ( ; A_Make ) ;Localr Inv_Str , Sl , Feed_Form , Eob_Listing , Separator , A_Lg ,e A_Reste , W_Lg ,D Listing_Name ,_ Header_Name , Edt_Range , Qual_String , Rtn_Tpu_Range_Array , Edt_Range_Modifier ,u Old_Pos , Wrk_Pos , Cur_Stream , e Write_After , Listing_Buffer ,i Listing_Line ,  Mark_On_Wrk , Max_Line_On_Page ,I Ln_Cnt ,  Page_Number , Header ,r Temp_String , Temp_Index ,m Saved_Timer_State , Saved_Timer_Msg , Saved_Mode ,F Saved_Mark ; _$! Mye_Edt.TPU ; Page 19On_Error [TPU$_CONTROLC]:* If Saved_Timer_State <> Tpu$K_Unspecified Then ' Mye_Pro_Set_Timer ( Saved_Timer_Msg ,P Temp_String , Saved_Timer_State ,t Temp_Index ) ; Endif ;' Eve$$Restore_Position ( Saved_Mark ) ; % Set ( Saved_Mode, Current_Buffer ) ;i Eve$Learn_Abort ; Abort ; [OTHERWISE]:* If Saved_Timer_State <> Tpu$K_Unspecified Then ' Mye_Pro_Set_Timer ( Saved_Timer_Msg ,  Temp_String ,t Saved_Timer_State ,  Temp_Index ) ; Endif ;' Eve$$Restore_Position ( Saved_Mark ) ;;% Set ( Saved_Mode, Current_Buffer ) ;d Endon_Error ;n d$! Mye_Edt.TPU ; Page 20D2rq+ MYE_TPU.BCK77 [WORK.BER]MYE_EDT.TPU;1P3o'Saved_Mark := Mark ( Free_Cursor ) ; ! only needed for error returns3Saved_Mode := Get_Info ( Current_Buffer, "Mode" ) ; (Saved_Timer_State := Tpu$K_Unspecified ;'Mye_Pro_Set_Timer ( "Printing " ,t Saved_Timer_Msg ,t True , Saved_Timer_State ) ; Set ( Insert, Current_Buffer ) ;Inv_Str := "Invalid String" ;r Sl := "/" ; *A_Reste := Edit ( A_Make, Trim_Leading ) ;'A_Reste := Edit ( A_Reste, Compress ) ;tA_Lg := Length ( A_Reste ) ; If A_Lg = 0) Then Listing_Name := "" ;p Edt_Range := "" ; Qual_String := "" ; Else> W_Lg := Index ( A_Reste, Sl ) ; ! et si Sl dans un range ? !! If W_Lg = 0 Thene Qual_String := "" ;_ Else(< Qual_String := Substr ( A_Reste, W_Lg + 1, A_Lg - W_Lg ) ;. A_Reste := Substr ( A_Reste, 1, W_Lg - 1 ) ; A_Lg := Length ( A_Reste ) ; Endif ; Separator := " " ; ' W_Lg := Index ( A_Reste, Separator ) ; If W_Lg = 0 ThenP Listing_Name := A_Reste ;  Edt_Range := "" ;e Else'3 Listing_Name := Substr ( A_Reste, 1, W_Lg - 1 ) ;C: Edt_Range := Substr ( A_Reste, W_Lg + 1, A_Lg - W_Lg ) ; Endif ; Endif ;'If Edt_Range = ""g Then Edt_Range := "WHOLE"r Endif ;F!----- Q$! Mye_Edt.TPU ; Page 21.Change_Case ( Qual_String, Upper, In_Place ) ;.Edit ( Qual_String, Compress, On, In_Place ) ;*Edit ( Qual_String, Trim, On, In_Place ) ;If Qual_String <> "" Then Case Qual_Stringl( [ 'W', 'WR', 'WRI', 'WRIT', 'WRITE' ] : Write_After := True ; [ Otherwise ] :4 Me3h͟  MYE_TPU.BCK77 [WORK.BER]MYE_EDT.TPU;1P3*ssage ( "Invalid qualifier : " + Qual_String ) ; Eve$Learn_Abort ; Abort ;y Endcase ; Else Write_After := False ; Endif ;S/Rtn_Tpu_Range_Array := Create_Array ( 10, 0 ) ;9Mye_Edt_Range_Analize ( Edt_Range , Rtn_Tpu_Range_Array ,, Edt_Range_Modifier ) ;E!------d e$! Mye_Edt.TPU ; Page 22If Listing_Name = "" Then7 Header_Name := File_Parse ( Get_Info ( Current_Buffer, "File_Name" ), "", "", Name, Type ) ;,+ Listing_Name := Header_Name + "_LISTING" ;_ Else0 Change_Case ( Listing_Name, Upper, In_Place ) ; Header_Name := Listing_Name ; Endif ;iEListing_Buffer := Get_Info ( Buffers, "Find_Buffer", Listing_Name ) ;S*Eob_Listing := "[End of Listing Buffer]" ;If Listing_Buffer = 0E Then3 Listing_Buffer := Create_Buffer ( Listing_Name ) ;d/ Set ( Eob_Text, Listing_Buffer, Eob_Listing );A4 Set ( Output_File, Listing_Buffer, Listing_Name ) ;# Set ( No_Write, Listing_Buffer ) ;e Else5 A_Reste := Get_Info ( Listing_Buffer, "Eob_Text" ) ;a If A_Reste <> Eob_Listing Thenx; A_Reste := "Buffer " + Listing_Name + " already exist," +S% " and is not a listing buffer." ;n Message ( A_Reste ) ;k Eve$Learn_Abort ;r Abort ; Endif ; Endif ;s"If Listing_Buffer = Current_Buffer Then) Message ( "I can't print on myself." ) ;i Eve$Learn_Abort ; Abort ; Endif ; !------ $! Mye_Edt.TPU ; Page 23Old_Pos := Mark ( None ) ;Position ( Listing_Buffer ) ;)Erase ( Listing_Buffer ) ;%Mark4̖g MYE_TPU.BCK77 [WORK.BER]MYE_EDT.TPU;1P3-_On_Wrk := Mark ( Free_Cursor ) ; Max_Line_On_Page := 55 ;Ln_Cnt := Max_Line_On_Page ;Page_Number := 0 ;0Header := "!^!34 !11!24* Page !SL" ;Cur_Stream := 1 ; Feed_Form := Fao ( "!^" ) ; Loop4 Exitif ( Cur_Stream > Rtn_Tpu_Range_Array { 0 } ) ;C Position ( Beginning_Of ( Rtn_Tpu_Range_Array { Cur_Stream } ) ) ;; LoopL Position ( Line_Begin ) ;i Wrk_Pos := Mark ( None ) ; Exitif ( Wrk_Pos >5 End_Of ( Rtn_Tpu_Range_Array { Cur_Stream } ) ) ;n !s; ! Presume that user never change his tabulations setting,7 ! if not may be printers problems, Possible solution: 8 ! assume that printer handle ansi control and send the5 ! escape sequence to perform change. May be problem=. ! if setup for reset if it is not in devctl. !A$ Listing_Line := Fao ( "!6UL !AS",* Get_Info ( Wrk_Pos, "Record_Number" ), Current_Line ) ; Position ( Mark_On_Wrk ) ; If Ln_Cnt = Max_Line_On_Page Then Ln_Cnt := 1 ;# Page_Number := Page_Number + 1 ;g, Copy_Text ( Fao ( Header, Header_Name, 0, Page_Number ) ) ;e Split_Line ;  Split_Line ;n Split_Line ;; Else Ln_Cnt := Ln_Cnt + 1 ;R Endif ;g !n $! Mye_Edt.TPU ; Page 24# A_Lg := Length ( Listing_Line ) ;Q- W_Lg := Index ( Listing_Line, Feed_Form ) ;g If W_Lg > 0E Then If Ln_Cnt > 1 Then  Ln_Cnt := 1 ; $ Page_Number := Page_Number + 1 ;- Copy_Text ( Fao ( Header, Header_Name, 0,+ Page_Number ) ) ; Split_Line5h MYE_TPU.BCK77 [WORK.BER]MYE_EDT.TPU;1P3Lc0 ; Split_Line ; Split_Line ; Endif ;4 A_Reste := Substr ( Listing_Line, 1, W_Lg - 1 ) ; Copy_Text ( A_Reste ) ; Copy_Text ( "" ) ;n ! Split_Line ;) !2 ! Copy_Text ( " " ) ; ! same as "!6UL ") Listing_Line := Substr ( Listing_Line,a W_Lg + 1, A_Lg - W_Lg ) ;  Loopu% A_Lg := Length ( Listing_Line ) ;r/ W_Lg := Index ( Listing_Line, Feed_Form ) ;T Exitif ( W_Lg = 0 ) ;  A_Reste := Substr"$ ( Listing_Line, 1, W_Lg - 1 ) ; Copy_Text ( A_Reste ) ;  Copy_Text ( "" ) ;* Listing_Line := Substr ( Listing_Line, W_Lg + 1, A_Lg - W_Lg ) ; Endloop ; Endif ;_ !z Copy_Text ( Listing_Line ) ; Split_Line ;' Mark_On_Wrk := Mark ( Free_Cursor ) ;l Position ( Wrk_Pos ) ; Move_Vertical ( +1 ) ; Endloop ; Cur_Stream := Cur_Stream + 1 ; Endloop ;o r$! Mye_Edt.TPU ; Page 25Position ( Mark_On_Wrk ) ; Erase_Line ;If Write_After Then Write_File ( Listing_Buffer ) ; Endif ;Position ( Saved_Mark ) ;>$Set ( Saved_Mode, Current_Buffer ) ;%Mye_Pro_Set_Timer ( Saved_Timer_Msg ,{ Temp_String , Saved_Timer_State ,_ Temp_Index ) ;Endprocedure ; ! Mye_Cmd_Print!--------------------( g$! Mye_Edt.TPU ; Page 26!Procedure Mye_Edt_Module_Pre_Init Return ( True ) ;g(Endprocedure ; ! Mye_Edt_Module_Pre_Init!--------------------S! Procedure Mye_Edt_Module_Initt/Eve$Kt_Topic_Mye_Tpu_Edt_Range := "Edt_Range" ; 1Eve$Kt_T6_ MYE_TPU.BCK77 [WORK.BER]MYE_EDT.TPU;1P33opic_Mye_Tpu_Substitute := "Substitute" ;)'Eve$Kt_Topic_Mye_Tpu_Print := "Print" ;C%Mye_Cmd_Arg1_Substitute := "string" ;s Mye_Cmd_Arg1_Print := "string" ;! ! Return ( True ) ;i&! Endprocedure ; ! Mye_Edt_Module_Init!-------------------- EndModule ; ! Mye_Edt_!--------------------l $! Mye_Edt.TPU ; Page 27! Build dependencyEve$$Require ( "Mye_Tpu" ) ; Eve$$Require ( "Mye_Hextype" ) ;1 ; Endloop ;L.Eve$Message ( Eve$_Replcount, 0, Subst_Cnt ) ;! Position ( Sav7d(2 MYE_TPU.BCK6l7 [WORK.BER]MYE_FORMAT.TPU;1O$O*[WORK.BER]MYE_FORMAT.TPU;1+,6l.$/ 4O$$-7 0123KPWO%567` o89GHJN 2@ /! Mye_Format.TPU ; 8-OCT-1990 15:18 ; Page 1 Module Mye_Format Ident "V1.1-7"H!*********************************!*********!***************************4! LANG: Vaxtpu VERSION : 1.1-7 27/09/911! BUT: Extensions Pour Eve.H!-----------------------------------------------------------------------:! NAM: Mye_Format CMP: .......... PGM: ..........! SYS: Vax/Vms 5.3! ENT: ..........! RTN: ..........)! FNC: Module de commande de formatage:0! - complementaire eve ( handler avant eve ).! - supplementaire ! Commandes :%! Format_Word ! Word_Format / Range"! Format_Indent ! Indent a range*! Format_Isole_Word ! Isole word on range$! Format_Help ! Format help topics! CAL: ..........!------------------------------ ! REV: 5! VER DATE OBJ AUTG! . . . . . . . . . . . .(! 1-7 27/09/91 Berenguier Alain ! Cor : Init Saved_Time8j  MYE_TPU.BCK6l7 [WORK.BER]MYE_FORMAT.TPU;1O$r_State.!B! 1.0-0 08/10/90 Creation Berenguier AlainG!*********************************************************************)#! Procedure Mye_Format_Module_Ident!! Return "V1.0-0" ;!*! EndProcedure ; ! Mye_Format_Module_Ident /! Mye_Format.TPU ; 8-OCT-1990 15:18 ; Page 2!++! Table of Contents !! Mye_Format.Tpu! 8-OCT-1990 15:27!#! Procedure name Page Description$! -------------- ---- ------------!8! Mye_Format_Module_Ident 1 Identification Of Module. ! ------ Globals Variables 3 &! Mye_Reselect 4 Reselect a range/! Mye_Cmd_Format_Word 5 Word_Format / Range,! Mye_Cmd_Format_Indent 6 Indent a range7! Mye_Add_Blanc_Before 8 Add blanc before separator0! Mye_Add_Blanc_After 9 - - after -6! Mye_Add_Blanc_Before_If_No 10 -ditto- conditional*! Mye_Add_Blanc_Before_If_No 11 -ditto-4! Mye_Cmd_Format_Isole_Word 12 Isole word on range.! Mye_Cmd_Format_Help 14 Format help topics)! Mye_Ruler_Format 15 Init a ruler WPS'! Mye_Get_Ruler 16 Set a init ruler-! Mye_Toggle_Wrap 17 Toggle Wrap On | Off/! Mye_Format_Key 18 Module Keys definitions+! Mye_Format_Module_Pre_Init 19 Pre_Init.$! Mye_Format_Module_Init 19 Init.!-- ! Mye_Format.TPU ; Page 3 ! ConstantVariable Mye_Cmd_Arg1_Format_Indent ,# Eve$Kt_Topic_Mye_Tpu_Format_Word ,% Eve$Kt_Topic_Mye_Tpu_Format_Indent ,# Eve$Kt_Topic_Mye_Tpu_Format_Help ,! Eve$Kt_Topic_Mye_94 MYE_TPU.BCK6l7 [WORK.BER]MYE_FORMAT.TPU;1O$hVTpu_Get_Ruler ,# Eve$Kt_Topic_Mye_Tpu_Toggle_Wrap ; ! Mye_Format.TPU ; Page 4Procedure Mye_Reselect ( Bsr , Aer ) ;!D! Make a reselect on the range Bsr + 1 ( Before Selected Range ) and#! Aer - 1 ( After Selected Range ).!Local A_Top , A_Bottom , A_Range ;Position ( Buffer_Begin ) ;A_Top := Mark ( None ) ;If A_Top <> Bsr Then Position ( Bsr ) ; Move_Horizontal ( 1 ) ; Endif ;-Eve$X_Select_Position := Select ( Reverse ) ;Position ( Buffer_End ) ;A_Bottom := Mark ( None ) ;If A_Bottom <> Aer Then Position ( Aer ) ; Move_Horizontal ( -1 ) ; Endif ;A_Range := Select_Range ;Endprocedure ; ! Mye_Reselect)!---------------------------------------- ! Mye_Format.TPU ; Page 5Procedure Mye_Cmd_Format_Word!'! Applies Mye_Word_Format on one range.!Local Toggle_Word_Def , Mark_On_Range , The_Range , Start_Range , End_Range , Saved_Mark ;On_Error [TPU$_CONTROLC]: If Toggle_Word_Def Then Mye_Word_Toggle ; Endif ;' Eve$$Restore_Position ( Saved_Mark ) ; Eve$Learn_Abort ; Abort ; [OTHERWISE]: If Toggle_Word_Def Then Mye_Word_Toggle ; Endif ;' Eve$$Restore_Position ( Saved_Mark ) ; Endon_Error ;Toggle_Word_Def := False ;DSaved_Mark := Mark ( Free_Cursor ) ; ! only needed for error returnsMye_Pro_Take_Range_Or_Buf ( Start_Range , End_Range , The_Range , "Format_Word" ) ;%If Mye_X_Current_Word_Definiti:( MYE_TPU.BCK6l7 [WORK.BER]MYE_FORMAT.TPU;1O$̼ on <> 1 Then Toggle_Word_Def := True ; Mye_Word_Toggle ; Endif ;Position ( Start_Range ) ;If Not ( Eve$At_Start_Of_Word ) Then Eve_Reverse ; Eve_Move_By_Word ; Eve_Forward ; Eve_Move_By_Word ; Endif ;'Mark_On_Range := Mark ( Free_Cursor ) ;Loop Position ( Mark_On_Range ) ; Mye_Word_Format ; Eve_Move_By_Word ;( Mark_On_Range := Mark ( Free_Cursor ) ;( Exitif ( Mark_On_Range >= End_Range ) ; Endloop ;If Toggle_Word_Def Then Mye_Word_Toggle ; Endif ;$Endprocedure ; ! Mye_Cmd_Format_Word)!---------------------------------------- ! Mye_Format.TPU ; Page 6Procedure Mye_Cmd_Format_Indent ( ; Which_Column )!F! Take the selected range ( or buffer if any ) and indent each line toA! the specified column. The existant White space count as indent.!Local To_Column , Mark_On_Range , The_Range , Start_Range , End_Range , Temp_String , Temp_Index , Saved_Timer_Msg , Saved_Timer_State , Saved_Mark ;On_Error [TPU$_CONTROLC]:* If Saved_Timer_State <> Tpu$K_Unspecified Then' Mye_Pro_Set_Timer ( Saved_Timer_Msg , Temp_String , Saved_Timer_State , Temp_Index ) ; Endif ;' Eve$$Restore_Position ( Saved_Mark ) ; Eve$Learn_Abort ; Abort ; [OTHERWISE]:* If Saved_Timer_State <> Tpu$K_Unspecified Then' Mye_Pro_Set_Timer ( Saved_Timer_Msg , Temp_String , Saved_Timer_State , Temp_Index ) ; Endif ;' Eve$$Restore_Posi;o MYE_TPU.BCK6l7 [WORK.BER]MYE_FORMAT.TPU;1O$Q% tion ( Saved_Mark ) ; Endon_Error ;DSaved_Mark := Mark ( Free_Cursor ) ; ! only needed for error returns(Saved_Timer_State := Tpu$K_Unspecified ;)If Not Eve$Prompt_Number ( Which_Column , To_Column , "Starting Column :" ,! "The number is required." ) Then Eve$Learn_Abort ; Return ( FALSE ) ; Endif ;Mye_Pro_Take_Range_Or_Buf ( Start_Range , End_Range , The_Range , "Format_Indent" ) ;'Mye_Pro_Set_Timer ( " Indenting..." , Saved_Timer_Msg , True , Saved_Timer_State ) ; ! Mye_Format.TPU ; Page 7Position ( Start_Range ) ;If Not ( Eve$At_Start_Of_Word ) Then Eve_Reverse ; Eve_Move_By_Word ; Eve_Forward ; Eve_Move_By_Word ; Endif ;'Mark_On_Range := Mark ( Free_Cursor ) ;Position ( Mark_On_Range ) ;Loop$ Eve$$Indent_Line_To ( To_Column ) ; Move_Vertical ( 1 ) ;( Mark_On_Range := Mark ( Free_Cursor ) ;( Exitif ( Mark_On_Range >= End_Range ) ; Endloop ;%Mye_Pro_Set_Timer ( Saved_Timer_Msg , Temp_String , Saved_Timer_State , Temp_Index ) ;&Endprocedure ; ! Mye_Cmd_Format_Indent)!---------------------------------------- ! Mye_Format.TPU ; Page 8Procedure Mye_Add_Blanc_BeforeLocal A_Char ;If Current_Offset > 0 Then Move_Horizontal ( -1 ) ; A_Char := Current_Character ; Move_Horizontal ( 1 ) ; If Not ( ( A_Char = " " ) Or ( A_Char = Ascii ( 9 ) ) ) Then Copy_Text ( " " ) ; Endif< MYE_TPU.BCK6l7 [WORK.BER]MYE_FORMAT.TPU;1O$) ; Endif ;%Endprocedure ; ! Mye_Add_Blanc_Before)!---------------------------------------- ! Mye_Format.TPU ; Page 9Procedure Mye_Add_Blanc_AfterLocal A_Char ;Move_Horizontal ( 1 ) ;A_Char := Current_Character ;If Not ( ( A_Char = " " ) Or ( A_Char = Ascii ( 9 ) ) Or ( A_Char = "" ) ) ! eol = "" Then Copy_Text ( " " ) ; Endif ;$Endprocedure ; ! Mye_Add_Blanc_After)!---------------------------------------- &! Mye_Format.TPU ; Page 10$Procedure Mye_Add_Blanc_Before_If_No ( No_Chars ) ;Local A_Char ;Move_Horizontal ( -1 ) ;A_Char := Current_Character ;Move_Horizontal ( 1 ) ;%If ( Index ( No_Chars, A_Char ) = 0 ) Then Mye_Add_Blanc_Before ; Endif ;+Endprocedure ; ! Mye_Add_Blanc_Before_If_No)!---------------------------------------- &! Mye_Format.TPU ; Page 11$Procedure Mye_Add_Blanc_After_If_No ( No_Chars ) ;Local A_Char ;Move_Horizontal ( 1 ) ;A_Char := Current_Character ;mMove_Horizontal ( - 1 ) ;;%If ( Index ( No_Chars, A_Char ) = 0 )V Then Mye_Add_Blanc_After ; Endif ;**Endprocedure ; ! Mye_Add_Blanc_After_If_No)!----------------------------------------/ &! Mye_Format.TPU ; Page 12#Procedure Mye_Cmd_Format_Isole_Word-!-B! Take the selected range ( or buffer if any ) and isole each word1! ( or informatic symbols ) between white spaces.5!Local. A_Char , B_Char ,. Pat_Any , Mark_On_Range , The_Range , Start=][ MYE_TPU.BCK6l7 [WORK.BER]MYE_FORMAT.TPU;1O$_Range , End_Range , Temp_String , Temp_Index ,  Saved_Timer_Msg , Saved_Timer_State , Saved_Mark ;dOn_Error [TPU$_CONTROLC]:* If Saved_Timer_State <> Tpu$K_Unspecified Then ' Mye_Pro_Set_Timer ( Saved_Timer_Msg ,o Temp_String ,. Saved_Timer_State ,- Temp_Index ) ; Endif ;' Eve$$Restore_Position ( Saved_Mark ) ;  Eve$Learn_Abort ; Abort ; [OTHERWISE]:* If Saved_Timer_State <> Tpu$K_Unspecified Theng' Mye_Pro_Set_Timer ( Saved_Timer_Msg ,t Temp_String ,/ Saved_Timer_State ,  Temp_Index ) ; Endif ;' Eve$$Restore_Position ( Saved_Mark ) ;* Endon_Error ;DSaved_Mark := Mark ( Free_Cursor ) ; ! only needed for error returns(Saved_Timer_State := Tpu$K_Unspecified ;Mye_Pro_Take_Range_Or_BufC ( Start_Range ,g End_Range ,  The_Range ,s "Format_Isole_Word" ) ;'Mye_Pro_Set_Timer ( " Isolating Word" ,a Saved_Timer_Msg , True , Saved_Timer_State ) ;y)Pat_Any := Any ( "()[],;{}:""'<>=", 1 ) ;MPosition ( Start_Range ) ;'Mark_On_Range := Mark ( Free_Cursor ) ;tLoop4 Mark_On_Range := Search_Quietly ( Pat_Any, Forward, Exact, The_Range ) ;  Exitif Mark_On_Range = 0 ;n Position ( Mark_On_Range ) ;  A_Char := Current_Character ; &! Mye_Format.TPU ; Page 13 Case A_Char ! Only Pat_Anyc [ '(' ] :  Mye_Add_Blanc_Before ; & Mye_Add_Blanc_After_If_No ( "*" ) ; [ ',' ] :w Mye_Add_Blanc_After ; [ '[', '{', ']', ';', '}>`p MYE_TPU.BCK6l7 [WORK.BER]MYE_FORMAT.TPU;1O$Z' ] :s Mye_Add_Blanc_Before ;I Mye_Add_Blanc_After ; [ ')' ] :6' Mye_Add_Blanc_Before_If_No ( "*" ) ;  Mye_Add_Blanc_After ; [ ':' ] :K' Mye_Add_Blanc_Before_If_No ( ":" ) ;_' Mye_Add_Blanc_After_If_No ( ":=" ) ;  [ '<', '>', '=' ] : * Mye_Add_Blanc_Before_If_No ( ":=<>" ) ;( Mye_Add_Blanc_After_If_No ( "=<>" ) ; [ "'", '"' ] : Mye_Add_Blanc_Before ;_ Loopt Move_Horizontal ( 1 ) ;p+ Mark_On_Range := Mark ( Free_Cursor ) ;m+ Exitif ( Mark_On_Range >= End_Range ) ;. The_Range := Create_Range ( Mark_On_Range, End_Range, None ) ;- Mark_On_Range := Search_Quietly ( A_Char, Forward, Exact, The_Range ) ;R Exitif Mark_On_Range = 0 ; Position ( Mark_On_Range ) ; Move_Horizontal ( 1 ) ;;! B_Char := Current_Character ;_ If B_Char <> A_Charf Then Move_Horizontal ( -1 ) ; Mye_Add_Blanc_After ; Exitif 1 ;_ Endif ; Endloop ; Endcase ; Move_Horizontal ( 1 ) ;( Mark_On_Range := Mark ( Free_Cursor ) ;( Exitif ( Mark_On_Range >= End_Range ) ;? The_Range := Create_Range ( Mark_On_Range, End_Range, None ) ; Endloop ;u%Mye_Pro_Set_Timer ( Saved_Timer_Msg ,- Temp_String , Saved_Timer_State ,  Temp_Index ) ;*Endprocedure ; ! Mye_Cmd_Format_Isole_Word)!----------------------------------------_ d&! Mye_Format.TPU ; Page 14Procedure Mye_Cmd_Format_HelpS!M"! Format a help display of topics.!:Localo B?צ* MYE_TPU.BCK6l7 [WORK.BER]MYE_FORMAT.TPU;1O$#y_Buffer , Aer , Bsr , Cur_Buf_Name , Start_Range , End_Range , The_Range , Temp_String , Temp_Index ,A Saved_Timer_Msg , Saved_Timer_State , Saved_Mark ;On_Error [TPU$_CONTROLC]:* If Saved_Timer_State <> Tpu$K_Unspecified Then ' Mye_Pro_Set_Timer ( Saved_Timer_Msg ,a Temp_String ,r Saved_Timer_State ,r Temp_Index ) ; Endif ;' Eve$$Restore_Position ( Saved_Mark ) ;  Eve$Learn_Abort ; Abort ; [OTHERWISE]:* If Saved_Timer_State <> Tpu$K_Unspecified Thend' Mye_Pro_Set_Timer ( Saved_Timer_Msg ,i Temp_String ,t Saved_Timer_State ,t Temp_Index ) ; Endif ;' Eve$$Restore_Position ( Saved_Mark ) ; Endon_Error ;rDSaved_Mark := Mark ( Free_Cursor ) ; ! only needed for error returns(Saved_Timer_State := Tpu$K_Unspecified ;,By_Buffer := ( Eve$X_Select_Position = 0 ) ;Mye_Pro_Take_Range_Or_Buf  ( Start_Range ,E End_Range ,l The_Range ,l "Format_Help" ) ;e'Mye_Pro_Set_Timer ( "Making Help Dis" ,; Saved_Timer_Msg ,- True , Saved_Timer_State ) ; If By_Buffer Then Bsr := Start_Range ;y Aer := End_Range ; Else Position ( Start_Range ) ;e Move_Horizontal ( -1 ) ;  Bsr := Mark ( None ) ;l Position ( End_Range ) ;u Move_Horizontal ( 1 ) ; Aer := Mark ( None ) ; Endif ;_Mye_Reselect ( Bsr, Aer ) ;e3Mye_Cmd_Word_Column ; ! Push each word in one line,Mye_Reselect ( Bsr, Aer ) ;rAMye_Cmd_Sort_Buffer ( "" ) ; ! Sort each word @W MYE_TPU.BCK6l7 [WORK.BER]MYE_FORMAT.TPU;1O$rin alphabetic order_Mye_Reselect ( Bsr, Aer ) ;t0Mye_Cmd_Word_Mcolumn ; ! Format in multi-columnMye_Reselect ( Bsr, Aer ) ; 0Mye_Cmd_Format_Word ; ! Applies Mye_Word_FormatMye_Reselect ( Bsr, Aer ) ;E2Mye_Cmd_Format_Indent ( 5 ) ; ! Indent to column 5Position ( Saved_Mark ) ; %Mye_Pro_Set_Timer ( Saved_Timer_Msg ,> Temp_String ,  Saved_Timer_State ,  Temp_Index ) ;$Endprocedure ; ! Mye_Cmd_Format_Help)!----------------------------------------d ;&! Mye_Format.TPU ; Page 15Procedure Mye_Ruler_Format!:9! Init some rulers for quickly retrieve Margins, Tabs ...a! Extract from Eve$$Save_Ruler!dLocalN The_Ruler ;On_Error [ Otherwise ] :o Endon_Error ; ,The_Ruler := 0 ; ! Standard Ruler for return3Eve$$X_Ruler_Left_Margin_Array { The_Ruler } := 1 ;n5Eve$$X_Ruler_Right_Margin_Array { The_Ruler } := 72 ;1Eve$$X_Ruler_Tab_Stops_Array { The_Ruler } := 8 ;gG! Eve$$X_Ruler_Word_Wrap_Array { The_Ruler } := Eve$$X_Word_Wrap_Indent$! { Eve$$X_Ruled_Buffer } ;M!Eve$$X_Ruler_Paragraph_Array { The_Ruler } := 11 ; ! Eve$$X_Paragraph_Indenti#! { Eve$$X_Ruled_Buffer } ;_1The_Ruler := 1 ; ! Ruler for help text formating.y3Eve$$X_Ruler_Left_Margin_Array { The_Ruler } := 4 ; 5Eve$$X_Ruler_Right_Margin_Array { The_Ruler } := 77 ;n1Eve$$X_Ruler_Tab_Stops_Array { The_Ruler } := 8 ;TG! Eve$$X_Ruler_Word_Wrap_Array { The_Ruler } := Eve$$X_Word_Wrap_Indentr$! { Eve$$X_Ruled_Buffer } ;2Eve$$X_Ruler_Paragraph_ArrA2*4 MYE_TPU.BCK6l7 [WORK.BER]MYE_FORMAT.TPU;1O$ay { The_Ruler } := 11 ;!Endprocedure ; ! Mye_Ruler_Format )!----------------------------------------; &! Mye_Format.TPU ; Page 16Procedure Mye_Get_Ruler- ( Ruler_No ) ;'Eve$$X_Ruled_Buffer := Current_Buffer ;d'Eve$$X_Ruled_Window := Current_Window ;aEve$$Get_Ruler ( Ruler_No ) ;Endprocedure ; ! Mye_Get_Ruler)!----------------------------------------i t&! Mye_Format.TPU ; Page 17Procedure Mye_Toggle_Wrap Local The_Action ;TBThe_Action := Get_Info ( Current_Buffer, "Right_Margin_Action" ) ;!If The_Action = Tpu$K_Unspecified- Then Eve_Set_Wrap ;y Else Eve_Set_Nowrap ; Endif ; Endprocedure ; ! Mye_Toggle_Wrap)!----------------------------------------: u&! Mye_Format.TPU ; Page 18Procedure Mye_Format_KeyO!******************************************************************************iO!********** B L U E K E Y P A D **********-O!******************************************************************************I$Define_Key ( "Mye_Cmd_Format_Word" , Key_Name ( "F", Shift_Key ),' "Mye_Tpu Format_Word (Format_Word)" ,H Mye_K_Blue_Keys_Name ) ;3Eve$Kt_Topic_Mye_Tpu_Format_Word := "Format_Word" ;c!f&Define_Key ( "Mye_Cmd_Format_Indent" , Key_Name ( "I", Shift_Key ),+ "Mye_Tpu Format_Indent (Format_Indent)" ,  Mye_K_Blue_Keys_Name ) ;7Eve$Kt_Topic_Mye_Tpu_Format_Indent := "Format_Indent" ;a!)*Define_Key ( "Mye_Cmd_Format_Isole_Word" ,% Key_Name ( Ctrl_W_Key, SB][ MYE_TPU.BCK6l7 [WORK.BER]MYE_FORMAT.TPU;1O$K!hift_Key ),m3 "Mye_Tpu Format_Isole_Word (Format_Isole_Word)" ,A Mye_K_Blue_Keys_Name ) ;?Eve$Kt_Topic_Mye_Tpu_Format_Isole_Word := "Format_Isole_Word" ;A!r$Define_Key ( "Mye_Cmd_Format_Help" ,% Key_Name ( Ctrl_H_Key, Shift_Key ), ' "Mye_Tpu Format_Help (Format_Help)" ,t Mye_K_Blue_Keys_Name ) ;3Eve$Kt_Topic_Mye_Tpu_Format_Help := "Format_Help" ; !dO!******************************************************************************BO!********** KEYPAD **********,O!******************************************************************************d!r!Define_Key ( "Mye_Get_Ruler(0)" ,C Key_Name ( "", Shift_Key ),% "Mye_Tpu Get_Ruler (Get_Ruler_0)" ,_ Mye_K_Keys_Name ) ; !Define_Key ( "Mye_Get_Ruler(1)" ,  Key_Name ( "", Shift_Key ),% "Mye_Tpu Get_Ruler (Get_Ruler_1)" ,_ Mye_K_Keys_Name ) ; /Eve$Kt_Topic_Mye_Tpu_Get_Ruler := "Get_Ruler" ;:!I Define_Key ( "Mye_Toggle_Wrap" , Key_Name ( F12, Shift_Key ),' "Mye_Tpu Toggle_Wrap (Toggle_Wrap)" ,S Mye_K_Keys_Name ) ;_3Eve$Kt_Topic_Mye_Tpu_Toggle_Wrap := "Toggle_Wrap" ;E!$Endprocedure ; ! Mye_Format_Key!--------------------_ k&! Mye_Format.TPU ; Page 19$Procedure Mye_Format_Module_Pre_InitReturn ( True ) ;;+Endprocedure ; ! Mye_Format_Module_Pre_Initg!--------------------"! Procedure Mye_Format_Module_InitMye_Ruler_Format ;Mye_Format_Key ;)Mye_Cmd_Arg1_Format_Indent := "integer" ; !e! Return ( True ) ;_)! Endprocedure ; ! MyeCq MYE_TPU.BCK6l7 [WORK.BER]MYE_FORMAT.TPU;1O$d$_Format_Module_Init'!--------------------nEndModule ; ! Mye_Format!--------------------r &! Mye_Format.TPU ; Page 20! Build dependencyEve$$Require ( "Mye_Tpu" ) ; Eve$$Require ( "Mye_Hextype" ) ;Eve$$Require ( "Mye_Sort" ) ; A_Char := Current_Character ; &! Mye_Format.TPU ; Page 13 Case A_Char ! Only Pat_Anyc [ '(' ] :  Mye_Add_Blanc_Before ; & Mye_Add_Blanc_After_If_No ( "*" ) ; [ ',' ] :w Mye_Add_Blanc_After ; [ '[', '{', ']', ';', '}DPi MYE_TPU.BCK7"7 ORK.BER]MYE_HEXTYPE.TPU;1O0*[WORK.BER]MYE_HEXTYPE.TPU;1+,7".0/ 4O0.-7 0123KPWO156*7`*89GHJN 2@ 0! Mye_Hextype.TPU ; 8-OCT-1990 15:18 ; Page 1!Module Mye_Hextype Ident "V1.1-7"H!*********************************!*********!***************************4! LANG: Vaxtpu VERSION : 1.1-7 27/09/911! BUT: Extensions Pour Eve.H!-----------------------------------------------------------------------;! NAM: Mye_Hextype CMP: .......... PGM: ..........! SYS: Vax/Vms 5.3! ENT: ..........! RTN: ..........,! FNC: Module de commande, mes commandes :0! - complementaire eve ( handler avant eve ).! - supplementaire ! Commandes :#! Ascii ! Display an ascii table..! Hextype ! Like Hextype of Xedit, Kedit ...4! Word Column ! Split a line, put one word by line.(! Word Mcolumn ! Muti-column formatter.8! Display Character ! Display one char in multi format.! CAL: ..........!------------------------------ ! REV: 5! VER DATE OBJ AUTG! . . . . . . . . . . Ee MYE_TPU.BCK7"7 ORK.BER]MYE_HEXTYPE.TPU;1O0 . .(! -7 27/09/91 Berenguier Alain ! Cor : Init Saved_Timer_State.!(! 1-3 26/06/91 Berenguier Alain5! Cor / Mye_Pro_Cntrl_Select_Line, handle Select_All! and Mouse...!B! 1.0-0 08/10/90 Creation Berenguier AlainG!*********************************************************************)$! Procedure Mye_Hextype_Module_Ident!! Return "V1.1-3" ;!+! EndProcedure ; ! Mye_Hextype_Module_Ident 0! Mye_Hextype.TPU ; 8-OCT-1990 15:18 ; Page 2!++! Table of Contents !! Mye_Hextype.Tpu! 8-OCT-1990 15:27!#! Procedure name Page Description$! -------------- ---- ------------!9! Mye_Hextype_Module_Ident 1 Identification Of Module. ! ------ Globals Variables 3 %! Mye_Cmd_Ascii 4 Ascii Commande)! Mye_Cmd_Hextype 6 Hextype Commande,! Mye_Fnct_Wrk_Buf 8 Function Wrk Buffer7! Mye_Pro_Cntrl_Select_Line 9 Control we are on line0! Mye_Pro_Take_Range_Or_Buf 10 Range Or Buffer0! Mye_Pro_Set_Timer 11 Set timer with New Msg0! Mye_Cmd_Word_Column 12 Word Column commande2! Mye_Cmd_Word_MColumn 14 Multi-Column commande,! Mye_Cmd_Display_Character 15 Show a char.! Mye_Toggle_Timer 17 Toggle Timer On | Off6! Mye_Toggle_Screen_Update 18 Toggle Update On | Off0! Mye_Hextype_Key 19 Module Keys definitions,! Mye_Hextype_Module_Pre_Init 21 Pre_Init.%! Mye_Hextype_Module_Init 21 Init. ! ! 19 !-- ! Mye_Hextype.TPU ; Page 3CoF60MV MYE_TPU.BCK7"7 ORK.BER]MYE_HEXTYPE.TPU;1O0unstant Mye_K_Alphabet := GAscii (0) + Ascii (1) + Ascii (2) + Ascii (3) + Ascii (4) + Ascii (5) +IAscii (6) + Ascii (7) + Ascii (8) + Ascii (9) + Ascii (10) + Ascii (11) +@Ascii (12) + Ascii (13) + Ascii (14) + Ascii (15) + Ascii (16) +@Ascii (17) + Ascii (18) + Ascii (19) + Ascii (20) + Ascii (21) +@Ascii (22) + Ascii (23) + Ascii (24) + Ascii (25) + Ascii (26) +@Ascii (27) + Ascii (28) + Ascii (29) + Ascii (30) + Ascii (31) +$" !""#$%&'()*+,-./0123456789:;<=>?"+C"@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~" +EAscii (127) + Ascii (128) + Ascii (129) + Ascii (130) + Ascii (131) +EAscii (132) + Ascii (133) + Ascii (134) + Ascii (135) + Ascii (136) +EAscii (137) + Ascii (138) + Ascii (139) + Ascii (140) + Ascii (141) +EAscii (142) + Ascii (143) + Ascii (144) + Ascii (145) + Ascii (146) +EAscii (147) + Ascii (148) + Ascii (149) + Ascii (150) + Ascii (151) +EAscii (152) + Ascii (153) + Ascii (154) + Ascii (155) + Ascii (156) +)Ascii (157) + Ascii (158) + Ascii (159) +$"?" +C"" + Ascii (255) , Mye_K_Alpha_Up :=D"0000000000000000111111111111111122222222222222223333333333333333" +D"4444444444444444555555555555555566666666666666667777777777777777" +D"88888888888888889999999999999999AAAAAAAAAAAAAAAABBBBBBBBBBBBBBBB" +D"CCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFF" , Mye_K_Alpha_Lo :=D"0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789AGC3 MYE_TPU.BCK7"7 ORK.BER]MYE_HEXTYPE.TPU;1O0  BCDEF" +D"0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF" +D"0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF" +D"0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF" ;Variable Eve$Kt_Topic_Mye_Tpu_Ascii , Eve$Kt_Topic_Mye_Tpu_Hextype ,$ Eve$Kt_Topic_Mye_Tpu_Word_MColumn ,# Eve$Kt_Topic_Mye_Tpu_Word_Column ,) Eve$Kt_Topic_Mye_Tpu_Display_Character ,$ Eve$Kt_Topic_Mye_Tpu_Toggle_Timer ,, Eve$Kt_Topic_Mye_Tpu_Toggle_Screen_Update ; ! Mye_Hextype.TPU ; Page 4Procedure Mye_Cmd_Ascii!"! Show Ascii table in show buffer.!Local Alpha ,3 Saved_Mark , ! Marker for current cursor position! Saved_Window , ! Current window! Saved_Buffer , ! Current buffer= Throw_Away ; ! Result of eve$prompt_key - to resume editingOn_Error [Tpu$_Controlc]:5 Eve$$Restore_Position ( Saved_Window, Saved_Mark ) ; Eve$Learn_Abort ; Abort ; [Otherwise]:5 Eve$$Restore_Position ( Saved_Window, Saved_Mark ) ; Endon_Error ;/If Get_Info ( Eve$Prompt_Window, "buffer") <> 0Then6 Eve$Message ( Eve$_Cantshow ) ; Update ( Message_Window ) ; Eve$Learn_Abort ; Return (FALSE) ;Endif ;$Position (TEXT) ; ! prevent padding$Saved_Mark := Mark ( Free_Cursor ) ; Saved_Buffer := Current_Buffer ; Saved_Window := Current_Window ;$Eve$Map_Help ( Tpu$X_Show_Buffer ) ;+Eve$Set_Status_Line ( Tpu$X_Show_Window ) ;Erase ( Tpu$X_Show_Buffer ) ; ! Mye_Hextype.TPU ; PaHVW MYE_TPU.BCK7"7 ORK.BER]MYE_HEXTYPE.TPU;1O0l ge 5Position ( Line_Begin ) ; Split_line ;Move_Vertical ( -1 ) ;! Alpha := Mye_K_Alphabet ;! Copy_Text ( Alpha ) ;,Alpha := Substr ( Mye_K_Alphabet , 1, 64 ) ;Translate ( Alpha, " ", " " ) ;Copy_Text ( Alpha ) ; Split_Line ;1Copy_Text ( Substr ( Mye_K_Alpha_Up , 1, 64 ) ) ; Split_Line ;1Copy_Text ( Substr ( Mye_K_Alpha_Lo , 1, 64 ) ) ; Split_Line ; Split_Line ;2Copy_Text ( Substr ( Mye_K_Alphabet , 65, 64 ) ) ; Split_Line ;2Copy_Text ( Substr ( Mye_K_Alpha_Up , 65, 64 ) ) ; Split_Line ;2Copy_Text ( Substr ( Mye_K_Alpha_Lo , 65, 64 ) ) ; Split_Line ; Split_Line ;3Copy_Text ( Substr ( Mye_K_Alphabet , 129, 64 ) ) ; Split_Line ;3Copy_Text ( Substr ( Mye_K_Alpha_Up , 129, 64 ) ) ; Split_Line ;3Copy_Text ( Substr ( Mye_K_Alpha_Lo , 129, 64 ) ) ; Split_Line ; Split_Line ;4Copy_Text ( Substr ( Mye_K_Alphabet , 193, 128 ) ) ; Split_Line ;4Copy_Text ( Substr ( Mye_K_Alpha_Up , 193, 128 ) ) ; Split_Line ;4Copy_Text ( Substr ( Mye_K_Alpha_Lo , 193, 128 ) ) ; Split_Line ; Split_Line ;Update ( Tpu$X_Show_Window ) ;HThrow_Away := Eve$Prompt_Key ( Message_Text ( Eve$_Resumeprompt, 1 ) ) ;Eve$Unmap_Help ;*If Get_Info ( Saved_Window, "buffer") <> 0ThenL Position ( Saved_Window ) ; ! in case package unmap_help changed windowsEndif;Position ( Saved_Mark ) ;Return (TRUE);Endprocedure ; ! Mye_Cmd_Ascii ! Mye_Hextype.TPU ; Page 6Procedure Mye_Cmd_Hextype!3! Display the current line in hexa, in show buffer.G! In future, handle moreIn֡ MYE_TPU.BCK7"7 ORK.BER]MYE_HEXTYPE.TPU;1O0 than One line, put in Two window like a ruler.!Local Line , Line_Up , Line_Lo ,3 Saved_Mark , ! Marker for current cursor position! Saved_Window , ! Current window! Saved_Buffer , ! Current buffer= Throw_Away ; ! Result of eve$prompt_key - to resume editingOn_Error [Tpu$_Controlc]:5 Eve$$Restore_Position ( Saved_Window, Saved_Mark ) ; Eve$Learn_Abort ; Abort ; [Otherwise]:5 Eve$$Restore_Position ( Saved_Window, Saved_Mark ) ; Endon_Error ;/If Get_Info ( Eve$Prompt_Window, "buffer") <> 0Then# Eve$Message ( Eve$_Cantshow ) ; Update ( Message_Window ) ; Eve$Learn_Abort ; Return (FALSE) ;Endif ;$Position (TEXT) ; ! prevent padding$Saved_Mark := Mark ( Free_Cursor ) ; Saved_Buffer := Current_Buffer ; Saved_Window := Current_Window ;Position ( Line_Begin ) ;Line := Current_Line ;MLine_Up := Translate ( Line, Mye_K_Alpha_Up, Mye_K_Alphabet, Not_In_Place ) ;MLine_Lo := Translate ( Line, Mye_K_Alpha_Lo, Mye_K_Alphabet, Not_In_Place ) ;PTranslate ( Line, " ", " " ) ;$Eve$Map_Help ( Tpu$X_Show_Buffer ) ;+Eve$Set_Status_Line ( Tpu$X_Show_Window ) ;*Erase ( Tpu$X_Show_Buffer ) ;L V ! Mye_Hextype.TPU ; Page 7Position ( Line_Begin ) ; Copy_Text ( Line ) ; Split_Line ;Copy_Text ( Line_Up ) ;- Split_Line ;Copy_Text ( Line_Lo ) ;- Split_Line ;Update ( Tpu$X_Show_Window ) ;HThrow_Away := Eve$Prompt_Key ( Message_Text ( Eve$_Resumeprompt, 1 ) ) ;Eve$Unmap_Help ;*If Get_Info ( Saved_Window, "bJĔ MYE_TPU.BCK7"7 ORK.BER]MYE_HEXTYPE.TPU;1O0(uffer") <> 0ThenL Position ( Saved_Window ) ; ! in case package unmap_help changed windowsEndif;Position ( Saved_Mark ) ;Return (TRUE); Endprocedure ; ! Mye_Cmd_Hextype r ! Mye_Hextype.TPU ; Page 8Procedure Mye_Fnct_Wrk_Buf!uC! Function : Return the pointer on buffer "WRK". On the first call,i! create this buffer..!.Local- Buf_Name ,- Mye_Tpu_Wrk_Buffer ;:Buf_Name := "WRK" ; EMye_Tpu_Wrk_Buffer := Get_Info ( Buffers, "Find_Buffer", Buf_Name ) ;.If Mye_Tpu_Wrk_Buffer = 0  Then3 Mye_Tpu_Wrk_Buffer := Create_Buffer ( Buf_Name ) ;I> Set ( Eob_Text, Mye_Tpu_Wrk_Buffer, "[End of Work Buffer]" );' Set ( No_Write, Mye_Tpu_Wrk_Buffer ) ; % Set ( System, Mye_Tpu_Wrk_Buffer ) ; Endif ; Return ( Mye_Tpu_Wrk_Buffer ) ; !Endprocedure ; ! Mye_Fnct_Wrk_Buf*)!----------------------------------------* * ! Mye_Hextype.TPU ; Page 9#Procedure Mye_Pro_Cntrl_Select_Line  ( Start_Range ,u End_Range ) ;MLocaln Resu ;;Resu := Eve$Selection ( True, False, False, False, True ) ;TIf ( Resu = 0 ) Then Eve$Learn_Abort ; Abort ; Else If ( Resu = None )r ThenP? Message ( "Can't perform multiline task on a single char" ) ;_ Eve$Learn_Abort ; Abort ;i Endif ; Endif ;-!GH! Controle that the selected range is bounded to begin of the first lineB! and at end of the last line. return by variables Start_Range and"! End_Range. Cancel the selection.! &Start_Range := Beginning_Of ( Resu ) ;End_Range := End_Of ( ResuK I# MYE_TPU.BCK7"7 ORK.BER]MYE_HEXTYPE.TPU;1O0 ) ;Eve$X_Select_Position := 0 ;=! Assume Range in full line. If not we have multiple words onl! the first and the last.d)If Get_Info ( Start_Range, "Offset" ) > 0_ Then Position ( Start_Range ) ;r Position ( Line_Begin ) ; Start_Range := Mark ( None ) ;e Endif ;a'If Get_Info ( End_Range, "Offset" ) > 0t Then Position ( End_Range ) ;o Position ( Line_End ) ; End_Range := Mark ( None ) ;e Endif ;e*Endprocedure ; ! Mye_Pro_Cntrl_Select_Line)!----------------------------------------t M'! Mye_Hextype.TPU ; Page 10 #Procedure Mye_Pro_Take_Range_Or_Buf  ( Start_Range ,  End_Range ,  The_Range ,  Action_To_Make ) ;! 7! If we have a seleted range, take this range ( controls?! that the selected range is bounded to begin of the first lines! and at end of the last line. 3J! If not, Prompt the user to a confirmation that we proceed to the current ! buffer.i!0Locali Prompt ,  Resu ;) If ( Eve$X_Select_Position = 0 ) ThenD Prompt := Fao ( "Would you perform !AS on buffer !AS [ No ] ? : " , Action_To_Make,) Get_Info ( Current_Buffer, "Name") ) ;2" Resu := Eve$Insist_Y_N ( Prompt , Tpu$K_Unspecified ,2 0 ) ; ! tpu$k_unspecified for yes by default. If Not Resu Theni Eve$Learn_Abort ; Abort ;4 Endif ;1 Start_Range := Beginning_Of ( Current_Buffer ) ;s0 End_Range := End_Of ( Current_Buffer ) ; Else7 Mye_Pro_Cntrl_Select_Line ( Start_Range, End_Range ) ;s Endif ; <The_Range := Create_RaL MYE_TPU.BCK7"7 ORK.BER]MYE_HEXTYPE.TPU;1O0cnge ( Start_Range, End_Range, None ) ;*Endprocedure ; ! Mye_Pro_Take_Range_Or_Buf)!---------------------------------------- '! Mye_Hextype.TPU ; Page 111Procedure Mye_Pro_Set_Timer3 ( New_Message ,4 Saved_Message ,5 New_State ,6 Saved_State ) ;7-Saved_State := Get_Info ( System, "Timer" ) ;A7Saved_Message := Get_Info ( System, "Timed_Message" ) ;D If New_State Then! Set ( Timer, On, New_Message ) ;= Else" Set ( Timer, Off, New_Message ) ; Endif ;4"Endprocedure ; ! Mye_Pro_Set_Timer)!----------------------------------------E +'! Mye_Hextype.TPU ; Page 126Procedure Mye_Cmd_Word_Column0!6F! Take the selected range ( or buffer if any ) an put each word in one! single column.!pLocal Mye_Tpu_Wrk_Buffer ,_ Mark_On_Wrk , Mark_On_Range , Expanded_String , The_Range , Start_Range , End_Range , Temp_String , Temp_Index , Saved_Timer_State , Saved_Timer_Msg , Saved_Mark ;_On_Error [TPU$_CONTROLC]:* If Saved_Timer_State <> Tpu$K_Unspecified Thens' Mye_Pro_Set_Timer ( Saved_Timer_Msg ,f Temp_String ,p Saved_Timer_State ,  Temp_Index ) ; Endif ;' Eve$$Restore_Position ( Saved_Mark ) ;e Eve$Learn_Abort ; Abort ; [OTHERWISE]:* If Saved_Timer_State <> Tpu$K_Unspecified Then ' Mye_Pro_Set_Timer ( Saved_Timer_Msg ,n Temp_String ,M Saved_Timer_State , Temp_Index ) ; Endif ;' Eve$$Restore_Position ( Saved_Mark ) ; Endon_ErroMக MYE_TPU.BCK7"7 ORK.BER]MYE_HEXTYPE.TPU;1O0r ;oDSaved_Mark := Mark ( Free_Cursor ) ; ! only needed for error returns(Saved_Timer_State := Tpu$K_Unspecified ;Mye_Pro_Take_Range_Or_Bufn ( Start_Range ,e End_Range ,  The_Range , "Word_Column" ) ;E'Mye_Pro_Set_Timer ( "Making One Col." ,k Saved_Timer_Msg ,_ True , Saved_Timer_State ) ; (Mye_Tpu_Wrk_Buffer := Mye_Fnct_Wrk_Buf ;!Position ( Mye_Tpu_Wrk_Buffer ) ;pErase ( Mye_Tpu_Wrk_Buffer ) ;%Mark_On_Wrk := Mark ( Free_Cursor ) ;tPosition ( Start_Range ) ;'Mark_On_Range := Mark ( Free_Cursor ) ;V a'! Mye_Hextype.TPU ; Page 13Loop Position ( Mark_On_Range ) ;b" Expanded_String := Current_Line ;8 Expanded_String := Edit ( Expanded_String, Compress ) ;4 Expanded_String := Edit ( Expanded_String, Trim ) ;;!>D Message ( "D- Expanded_String : " + Expanded_String ) ;  If Expanded_String <> ""p Then; Position ( Mark_On_Wrk ) ;" Temp_String := Expanded_String ; Loop0 Temp_Index := Index ( Temp_String, " " ) ;! Exitif ( Temp_Index = 0 ) ;K? Copy_Text ( Substr ( Temp_String, 1, Temp_Index - 1 ) ) ;  Split_Line ;: Temp_String := Substr ( Temp_String, Temp_Index + 1, Length ( Temp_String ) ) ; Endloop ;o Copy_Text ( Temp_String ) ;L Split_Line ;' Mark_On_Wrk := Mark ( Free_Cursor ) ;x Position ( Mark_On_Range ) ; Endif ; Position ( Line_End ) ; Move_Horizontal ( 1 ) ;( Mark_On_Range := Mark ( Free_Cursor ) ;( Exitif ( Mark_On_Range >= End_Range ) ; EndlooNu MYE_TPU.BCK7"7 ORK.BER]MYE_HEXTYPE.TPU;1O0Zp ;ePosition ( Mark_On_Wrk ) ; Erase_Line ;Position ( Start_Range ) ;Erase ( The_Range ) ; "Move_Text ( Mye_Tpu_Wrk_Buffer ) ;%Mye_Pro_Set_Timer ( Saved_Timer_Msg ,b Temp_String ,  Saved_Timer_State ,  Temp_Index ) ;$Endprocedure ; ! Mye_Cmd_Word_Column)!----------------------------------------p e'! Mye_Hextype.TPU ; Page 14.Procedure Mye_Cmd_Word_MColumn!_B! Take the selected range ( or buffer if any ) an put each word in! multi-column.n! Local The_Range , Start_Range , End_Range , Temp_String , Temp_Index ,p Saved_Timer_Msg , Saved_Timer_State , Saved_Mark ;rOn_Error [TPU$_CONTROLC]:* If Saved_Timer_State <> Tpu$K_Unspecified Thenr' Mye_Pro_Set_Timer ( Saved_Timer_Msg ,o Temp_String ,E Saved_Timer_State ,E Temp_Index ) ; Endif ;' Eve$$Restore_Position ( Saved_Mark ) ;o Eve$Learn_Abort ; Abort ; [OTHERWISE]:* If Saved_Timer_State <> Tpu$K_Unspecified ThenG' Mye_Pro_Set_Timer ( Saved_Timer_Msg ,  Temp_String ,g Saved_Timer_State ,p Temp_Index ) ; Endif ;' Eve$$Restore_Position ( Saved_Mark ) ;i Endon_Error ;nDSaved_Mark := Mark ( Free_Cursor ) ; ! only needed for error returns(Saved_Timer_State := Tpu$K_Unspecified ;Mye_Pro_Take_Range_Or_Bufi ( Start_Range , End_Range ,_ The_Range ,= "Word_MColumn" ) ;'Mye_Pro_Set_Timer ( "Making Mul Col." , Saved_Timer_Msg ,L True , Saved_Timer_StO[$ MYE_TPU.BCK7"7 ORK.BER]MYE_HEXTYPE.TPU;1O0`!ate ) ;_+Position ( End_Of ( Eve$Choice_Buffer ) ) ;vErase ( Eve$Choice_Buffer ) ;)Copy_Text ( The_Range ) ;pEve$Format_Choices ;Position ( Start_Range ) ;Erase ( The_Range ) ;p!Move_Text ( Eve$Choice_Buffer ) ;n%Mye_Pro_Set_Timer ( Saved_Timer_Msg ,_ Temp_String ,i Saved_Timer_State ,o Temp_Index ) ;%Endprocedure ; ! Mye_Cmd_Word_MColumnd)!----------------------------------------a T'! Mye_Hextype.TPU ; Page 15a#Procedure Mye_Cmd_Display_Character !eF! Display one char in mnemonique, octal, decimal, hexadecimal format..! The original Author: Geoff Bryant 9/16/85G! Modified to suppres the loop ( for find the number ), and to augmente8! the representation to conform to MA-0894-83 document.! Localn I , Cc ,  Ac ; ,If Mark ( None ) = End_Of ( Current_Buffer ) Then8 Message ( 'At end of buffer, no current character.' ) ; Return ;: Endif ;6I := Index ( Mye_K_Alphabet, Current_Character ) - 1 ; If I < 32  Then! Cc := ', ^' + Ascii ( I + 64 ) ;e Else B Cc := '' ;t Endif;8Case Current_Character From Ascii ( 0 ) To Ascii ( 255 )" [ Ascii ( 0 ) ] : Ac := '' ;" [ Ascii ( 1 ) ] : Ac := '' ;" [ Ascii ( 2 ) ] : Ac := '' ;" [ Ascii ( 3 ) ] : Ac := '' ;" [ Ascii ( 4 ) ] : Ac := '' ;" [ Ascii ( 5 ) ] : Ac := '' ;" [ Ascii ( 6 ) ] : Ac := '' ;" [ Ascii ( 7 ) ] : Ac := '' ;! [ Ascii ( 8 ) ] : Ac := '' ; " [ Ascii ( 14 ) ] : Ac := '' ;" [ Ascii ( 15 ) ] : Ac := ''PV MYE_TPU.BCK7"7 ORK.BER]MYE_HEXTYPE.TPU;1O0;$ ;# [ Ascii ( 16 ) ] : Ac := '' ;f# [ Ascii ( 17 ) ] : Ac := '' ;o# [ Ascii ( 18 ) ] : Ac := '' ;N$ [ Ascii ( 19 ) ] : Ac := '' ;# [ Ascii ( 20 ) ] : Ac := '' ;r# [ Ascii ( 21 ) ] : Ac := '' ; # [ Ascii ( 22 ) ] : Ac := '' ;o# [ Ascii ( 23 ) ] : Ac := '' ;n# [ Ascii ( 24 ) ] : Ac := '' ; " [ Ascii ( 25 ) ] : Ac := '' ;# [ Ascii ( 26 ) ] : Ac := '' ;.# [ Ascii ( 27 ) ] : Ac := '' ;g" [ Ascii ( 28 ) ] : Ac := '' ;" [ Ascii ( 29 ) ] : Ac := '' ;" [ Ascii ( 30 ) ] : Ac := '' ;" [ Ascii ( 31 ) ] : Ac := '' ; r'! Mye_Hextype.TPU ; Page 16t$ [ Ascii ( 132 ) ] : Ac := '' ;$ [ Ascii ( 133 ) ] : Ac := '' ;$ [ Ascii ( 134 ) ] : Ac := '' ;$ [ Ascii ( 135 ) ] : Ac := '' ;$ [ Ascii ( 136 ) ] : Ac := '' ;$ [ Ascii ( 137 ) ] : Ac := '' ;$ [ Ascii ( 138 ) ] : Ac := '' ;$ [ Ascii ( 139 ) ] : Ac := '' ;$ [ Ascii ( 140 ) ] : Ac := '' ;# [ Ascii ( 141 ) ] : Ac := '' ;-$ [ Ascii ( 142 ) ] : Ac := '' ;$ [ Ascii ( 143 ) ] : Ac := '' ;$ [ Ascii ( 144 ) ] : Ac := '' ;$ [ Ascii ( 145 ) ] : Ac := '' ;$ [ Ascii ( 146 ) ] : Ac := '' ;$ [ Ascii ( 147 ) ] : Ac := '' ;$ [ Ascii ( 148 ) ] : Ac := '' ;# [ Ascii ( 149 ) ] : Ac := '' ;n$ [ Ascii ( 150 ) ] : Ac := '' ;$ [ Ascii ( 151 ) ] : Ac := '' ;$ [ Ascii ( 155 ) ] : Ac := '' ;# [ Ascii ( 156 ) ] : Ac := '' ;$ [ Ascii ( 157 ) ] : Ac := '' ;# [ Ascii ( 158Q} MYE_TPU.BCK7"7 ORK.BER]MYE_HEXTYPE.TPU;1O0 ' ) ] : Ac := '' ;f$ [ Ascii ( 159 ) ] : Ac := '' ;* [ Inrange ] : Ac := Current_Character ;) [ Outrange ] : Ac := Current_Character ; Endcase ;JMessage ( Fao ( "Current Character is '!AS', Octal=!OB, Decimal=!-!UB, " +/ "Hex=!-!XB!AS", Ac, I, Cc ) ) ; *Endprocedure ; ! Mye_Cmd_Display_Character)!----------------------------------------a '! Mye_Hextype.TPU ; Page 17MProcedure Mye_Toggle_Timer!R(! Useful in very long ( repeat ) action.! Local_ Saved_State ;-Saved_State := Get_Info ( System, "Timer" ) ;oIf Saved_State Then Set ( Timer, Off ) ;- Else Set ( Timer, On ) ; Endif ; !Endprocedure ; ! Mye_Toggle_Timerr)!----------------------------------------_ s'! Mye_Hextype.TPU ; Page 18 "Procedure Mye_Toggle_Screen_Update! (! Useful in very long ( repeat ) action.!tLocald Saved_State ;5Saved_State := Get_Info ( Screen, "Screen_Update" ) ;If Saved_State Then Set ( Screen_Update, Off ) ; Else Set ( Screen_Update, On ) ; Endif ;-)Endprocedure ; ! Mye_Toggle_Screen_Updatet)!----------------------------------------y m'! Mye_Hextype.TPU ; Page 19 Procedure Mye_Hextype_KeyaO!******************************************************************************rO!********** B L U E K E Y P A D **********EO!******************************************************************************gDefine_Key ( "Mye_Cmd_Ascii" , Key_Name ( "H", ShifR[ MYE_TPU.BCK7"7 ORK.BER]MYE_HEXTYPE.TPU;1O0*t_Key ), "Mye_Tpu Ascii (Ascii)" ,i Mye_K_Blue_Keys_Name ) ;'Eve$Kt_Topic_Mye_Tpu_Ascii := "Ascii" ;S!n$Define_Key ( "Mye_Cmd_Word_Column" , Key_Name ( "O", Shift_Key ),' "Mye_Tpu Word_Column (Word_Column)" ,e Mye_K_Blue_Keys_Name ) ;3Eve$Kt_Topic_Mye_Tpu_Word_Column := "Word_Column" ;U!e%Define_Key ( "Mye_Cmd_Word_MColumn" ,  Key_Name ( "U", Shift_Key ),) "Mye_Tpu Word_MColumn (Word_MColumn)" ,  Mye_K_Blue_Keys_Name ) ;5Eve$Kt_Topic_Mye_Tpu_Word_MColumn := "Word_MColumn" ;r! *Define_Key ( "Mye_Cmd_Display_Character" , Key_Name ( "?", Shift_Key ),3 "Mye_Tpu Display_Character (Display_Character)" ,a Mye_K_Blue_Keys_Name ) ;?Eve$Kt_Topic_Mye_Tpu_Display_Character := "Display_Character" ; ! y'! Mye_Hextype.TPU ; Page 20 O!******************************************************************************uO!********** KEYPAD **********rO!******************************************************************************;!a Define_Key ( "Mye_Cmd_Hextype" , Key_Name ( "H", Shift_Key ), "Mye_Tpu Hextype (Hextype)" ,t Mye_K_Keys_Name ) ;b+Eve$Kt_Topic_Mye_Tpu_Hextype := "Hextype" ;e!t!Define_Key ( "Mye_Toggle_Timer" ,p Key_Name ( F8, Shift_Key ),d) "Mye_Tpu Toggle_Timer (Toggle_Timer)" ,  Mye_K_Keys_Name ) ; 5Eve$Kt_Topic_Mye_Tpu_Toggle_Timer := "Toggle_Timer" ;!T)Define_Key ( "Mye_Toggle_Screen_Update" ,S Key_Name ( F9, Shift_Key ), 9 "Mye_Tpu Toggle_Screen_Update (Toggle_Screen_USv# MYE_TPU.BCK7"7 ORK.BER]MYE_HEXTYPE.TPU;1O0S-pdate)" ,  Mye_K_Keys_Name ) ; EEve$Kt_Topic_Mye_Tpu_Toggle_Screen_Update := "Toggle_Screen_Update" ; ! Endprocedure ; ! Mye_Hextype_Key!--------------------, m'! Mye_Hextype.TPU ; Page 21)%Procedure Mye_Hextype_Module_Pre_InitSReturn ( True ) ;i,Endprocedure ; ! Mye_Hextype_Module_Pre_Init!--------------------R#! Procedure Mye_Hextype_Module_InitEMye_Hextype_Key ;t!1! Return ( True ) ;:*! Endprocedure ; ! Mye_Hextype_Module_Init!--------------------EndModule ; ! Mye_Hextype_!--------------------; o'! Mye_Hextype.TPU ; Page 22g! Build dependencyEve$$Require ( "Mye_Tpu" ) ;o_Set_Timer ( Saved_Timer_Msg ,b Temp_String ,  Saved_Timer_State ,  Temp_Index ) ;$Endprocedure ; ! Mye_Cmd_Word_Column)!----------------------------------------p e'! Mye_Hextype.TPU ; Page 14.Procedure Mye_Cmd_Word_MColumn!_B! Take the selected range ( or buffer if any ) an put each word in! multi-column.n! TN MYE_TPU.BCK77 [WORK.BER]MYE_MACRO.TPU;1Ol*[WORK.BER]MYE_MACRO.TPU;1+,7./ 4OH-7 0123KPWO56z/C7 nC89GHJN 2@ /! Mye_Macro.TPU ; 22-MAR-1991 16:19 ; Page 1Module Mye_Macro Ident "V1.1-6"H!*********************************!*********!***************************4! LANG: Vaxtpu VERSION : 1.1-6 26/09/911! BUT: Extensions Pour Eve.H!-----------------------------------------------------------------------9! NAM: Mye_Macro CMP: .......... PGM: ..........! SYS: Vax/Vms 5.3! ENT: ..........! RTN: ..........2! FNC: Module "pilotant" les macros exterieures.! CAL: ..........!------------------------------ ! REV: 5! VER DATE OBJ AUTG! . . . . . . . . . . . .(! -6 26/09/91 Berenguier Alain4! Searching macro in current directory first, before8! searching in Mye_Tpu_Macro_Lib:. in ( Mye_Cmd_Macro ).!(! -1 14/06/91 Berenguier Alain8! - Adj de Mye_Display_Help_Line ( reduction de code ).! - Adj de macro parameters.!B! 1.0-0 Ubg MYE_TPU.BCK77 [WORK.BER]MYE_MACRO.TPU;1O-08/10/90 Creation Berenguier AlainG!*********************************************************************)"! Procedure Mye_Macro_Module_Ident!! Return "V1.1-1" ;!)! EndProcedure ; ! Mye_Macro_Module_Ident /! Mye_Macro.TPU ; 22-MAR-1991 16:19 ; Page 2!++! Table of Contents !! Mye_Macro.Tpu! 8-OCT-1990 15:27!#! Procedure name Page Description$! -------------- ---- ------------!8! Mye_Macro_Module_Ident 1 Identification Of Module. ! ------ Globals Variables 3 8! Mye_Display_Help_Line 4 Display a line of help.4! Mye_Macro_Mak_A_Help 5 Make a help for macros.%! Mye_Cmd_Macro 8 Macro Commande1! Mye_Macro_Key 10 Module Keys definitions.*! Mye_Macro_Module_Pre_Init 11 Pre_Init.#! Mye_Macro_Module_Init 11 Init.!-- ! Mye_Macro.TPU ; Page 3 ! ConstantVariable Mye_Cmd_Arg1_Macro , Eve$Kt_Topic_Mye_Tpu_Macro ; ! Mye_Macro.TPU ; Page 4Procedure Mye_Display_Help_Line ( ; L_1 ) ;If L_1 <> Tpu$K_Unspecified Then Split_Line ; Copy_Text ( L_1 ) ; Endif ;&Endprocedure ; ! Mye_Display_Help_Line ! Mye_Macro.TPU ; Page 5Procedure Mye_Macro_Mak_A_Help@ ( ; L_0, L_1 , L_2 , L_3 , L_4 , L_5 , L_6 , L_7 , L_8 , L_9 ,E L_10, L_11 , L_12 , L_13 , L_14 , L_15 , L_16 , L_17 , L_18 , L_19 ,H L_20, L_21 , L_22 , L_23 , L_24 , L_25 , L_26 , L_27 , L_28 , L_29 ) ;!!! Display the help of each macro.!Local Line ,3 SavVP0+ MYE_TPU.BCK77 [WORK.BER]MYE_MACRO.TPU;1OUed_Mark , ! Marker for current cursor position! Saved_Window , ! Current window! Saved_Buffer , ! Current buffer= Throw_Away ; ! Result of eve$prompt_key - to resume editingOn_Error [Tpu$_Controlc]:5 Eve$$Restore_Position ( Saved_Window, Saved_Mark ) ; Eve$Learn_Abort ; Abort ; [Otherwise]:5 Eve$$Restore_Position ( Saved_Window, Saved_Mark ) ; Endon_Error ;/If Get_Info ( Eve$Prompt_Window, "buffer") <> 0Then# Eve$Message ( Eve$_Cantshow ) ; Update ( Message_Window ) ; Eve$Learn_Abort ; Return (FALSE) ;Endif ;$Position (TEXT) ; ! prevent padding$Saved_Mark := Mark ( Free_Cursor ) ; Saved_Buffer := Current_Buffer ; Saved_Window := Current_Window ;$Eve$Map_Help ( Tpu$X_Show_Buffer ) ;+Eve$Set_Status_Line ( Tpu$X_Show_Window ) ;Erase ( Tpu$X_Show_Buffer ) ;Position ( Line_Begin ) ;Copy_Text ( L_0 ) ; ! Mye_Macro.TPU ; Page 5Mye_Display_Help_Line ( L_1 ) ;Mye_Display_Help_Line ( L_2 ) ;Mye_Display_Help_Line ( L_3 ) ;Mye_Display_Help_Line ( L_4 ) ;Mye_Display_Help_Line ( L_5 ) ;Mye_Display_Help_Line ( L_6 ) ;Mye_Display_Help_Line ( L_7 ) ;Mye_Display_Help_Line ( L_8 ) ;Mye_Display_Help_Line ( L_9 ) ; Mye_Display_Help_Line ( L_10 ) ; Mye_Display_Help_Line ( L_11 ) ; Mye_Display_Help_Line ( L_12 ) ; Mye_Display_Help_Line ( L_13 ) ; Mye_Display_Help_Line ( L_14 ) ; Mye_Display_Help_Line ( L_15 ) ; Mye_Display_Help_Line ( L_16 ) ; Mye_Display_Help_Line ( L_17 ) ; Mye_Display_Help_LWDE MYE_TPU.BCK77 [WORK.BER]MYE_MACRO.TPU;1O^ ine ( L_18 ) ; Mye_Display_Help_Line ( L_19 ) ; Mye_Display_Help_Line ( L_20 ) ; Mye_Display_Help_Line ( L_21 ) ; Mye_Display_Help_Line ( L_22 ) ; Mye_Display_Help_Line ( L_23 ) ; Mye_Display_Help_Line ( L_24 ) ; Mye_Display_Help_Line ( L_25 ) ; Mye_Display_Help_Line ( L_26 ) ; Mye_Display_Help_Line ( L_27 ) ; Mye_Display_Help_Line ( L_28 ) ; Mye_Display_Help_Line ( L_29 ) ; Split_Line ;Update ( Tpu$X_Show_Window ) ;HThrow_Away := Eve$Prompt_Key ( Message_Text ( Eve$_Resumeprompt, 1 ) ) ;Eve$Unmap_Help ;*If Get_Info ( Saved_Window, "buffer") <> 0ThenL Position ( Saved_Window ) ; ! in case package unmap_help changed windowsEndif;Position ( Saved_Mark ) ;Return (TRUE);%Endprocedure ; ! Mye_Macro_Mak_A_Help ! Mye_Macro.TPU ; Page 8Procedure Mye_Cmd_Macro ( ; Q_Macro_Name ) ;Local$ A_Macro_Name , ! Answered File Name Param_For_Macro , A_Lg , W_Lg , Input_Fspec , Ff_Name , ! Full File Name Init_Name , Expanded_Token , Mye_Tpu_Wrk_Buffer , Cur_Buf ;!8! Get a file, extend eve with it, and make init if found!*If ( Q_Macro_Name = Tpu$K_Unspecified ) Or ( Q_Macro_Name = "" ) Then If Not Eve$Prompt_String ( "" , A_Macro_Name , "Macro to get: " ,, Message_Text ( Eve$_Nofilespec, 0 ) ) Then Eve$Learn_Abort ; Return ( FALSE ) ; Endif ; Else A_Macro_Name := Q_Macro_Name ; Endif ;/Edit ( A_Macro_Name, Compress, On, In_Place ) ;+Edit ( A_Macro_Name, Trim, On, In_Place XO$ MYE_TPU.BCK77 [WORK.BER]MYE_MACRO.TPU;1O ) ;!A_Lg := Length ( A_Macro_Name ) ;%W_Lg := Index ( A_Macro_Name, " " ) ; If W_Lg <> 0 Then1 Param_For_Macro := '("' + Substr ( A_Macro_Name,& W_Lg + 1, A_Lg - W_Lg ) + '")' ; 7 A_Macro_Name := Substr ( A_Macro_Name, 1, W_Lg - 1 ) ; Else Param_For_Macro := "" ; Endif ;Input_Fspec := ".Tpu" ;:Ff_Name := File_Search ( A_Macro_Name, "", Input_Fspec ) ;If Ff_Name = "" Then* Input_Fspec := "Mye_Tpu_Macro_Lib:.Tpu" ;; Ff_Name := File_Search ( A_Macro_Name, "", Input_Fspec ) ; If Ff_Name = "" Then; Ff_Name := File_Parse ( A_Macro_Name, "", Input_Fspec ) ;9 Message ( "I can't find macro """ + Ff_Name + """." ) ; Return ; Endif ; Endif ;Cur_Buf := Current_Buffer ;(Mye_Tpu_Wrk_Buffer := Mye_Fnct_Wrk_Buf ;!Position ( Mye_Tpu_Wrk_Buffer ) ;Erase ( Mye_Tpu_Wrk_Buffer ) ;Eve_Include_File ( Ff_Name ) ;Eve_Extend_Eve ( "*" ) ;Position ( Cur_Buf ) ; ! Mye_Macro.TPU ; Page 94Init_Name := "MYE_MACRO_" + A_Macro_Name + "_INIT" ;"Change_Case ( Init_Name, Upper ) ;9Expanded_Token := Expand_Name ( Init_Name, Procedures ) + Param_For_Macro ; If Expanded_Token <> Eve$Kt_Null Then Execute ( Expanded_Token ) ; Endif ;Endprocedure ; ! Mye_Cmd_Macro!-------------------- %! Mye_Macro.TPU ; Page 10Procedure Mye_Macro_KeyO!******************************************************************************O!********** B L U E K E Y P A D **********O!*********Y9 MYE_TPU.BCK77 [WORK.BER]MYE_MACRO.TPU;1OdG*********************************************************************!O!******************************************************************************O!********** KEYPAD **********O!******************************************************************************Define_Key ( "Mye_Cmd_Macro" , Key_Name ( "&", Shift_Key ), "Mye_Tpu Macro (Macro)" , Mye_K_Keys_Name ) ;'Eve$Kt_Topic_Mye_Tpu_Macro := "Macro" ;!Endprocedure ; ! Mye_Macro_Key!-------------------- %! Mye_Macro.TPU ; Page 11#Procedure Mye_Macro_Module_Pre_InitReturn ( True ) ;*Endprocedure ; ! Mye_Macro_Module_Pre_Init!--------------------!! Procedure Mye_Macro_Module_InitMye_Macro_Key ;2Mye_Cmd_Arg1_Macro := Mye_Cmd_Arg1_Edit ; ! String!! Return ( True ) ;(! Endprocedure ; ! Mye_Macro_Module_Init!--------------------EndModule ; ! Mye_Macro!-------------------- %! Mye_Macro.TPU ; Page 12! Build dependencyEve$$Require ( "Mye_Tpu" ) ; Eve$$Require ( "Mye_Hextype" ) ;nt "V1.1-6"H!*********************************!*********!***************************4! LANG: Vaxtpu VERSION : 1.1-6 26/09/911! BUT: Extensions Pour Eve.H!-----------------------------------------------------------------------9! NAM: Mye_Macro CMP: .......... PGM: ..........! SYS: Vax/Vms 5.3! ENT: ..........! RTN: ..........2! FNC: Module "pilotant" les macros exteZ  MYE_TPU.BCK"/h7 [WORK.BER]MYE_SORT.TPU;1P)*[WORK.BER]MYE_SORT.TPU;1+,"/h./ 4P-7 0123KPWO566#P7`pP89GHJN 2@ .! Mye_Sort.TPU ; 29-NOV-1990 11:07 ; Page 1Module Mye_Sort Ident "V1.0-0"H!*********************************!*********!***************************8! LANG: Vaxtpu VERSION : 1.0-0 29-NOV-19901! BUT: Extensions Pour Eve.H!-----------------------------------------------------------------------;! NAM: Mye_Sort CMP: .......... PGM: ..........! SYS: Vax/Vms 5.3! ENT: ..........! RTN: ..........,! FNC: Module de commande, mes commandes :0! - complementaire eve ( handler avant eve ).! - supplementaire ! Commandes :(! Sort_Buffer ! From Steven K. Shapiro./! Increase portability, with suppress uneeded2! - symbols with "$" ( restricted for digital ),! - globals symbols,! - procedures.! CAL: ..........!------------------------------ ! REV: 5! VER DATE OBJ AUTG! . . . . . . . . . . . .B! 1.0-0 29/11/90 Creation [?= MYE_TPU.BCK"/h7 [WORK.BER]MYE_SORT.TPU;1P) Berenguier AlainG!*********************************************************************)!! Procedure Mye_Sort_Module_Ident!! Return "V1.0-0" ;!(! EndProcedure ; ! Mye_Sort_Module_Ident .! Mye_Sort.TPU ; 29-NOV-1990 11:07 ; Page 2!++! Table of Contents !! Mye_Sort.Tpu! 29-NOV-1990 11:07!#! Procedure name Page Description$! -------------- ---- ------------!7! Mye_Sort_Module_Ident 1 Identification Of Module.5! ------ Initial Header 3 From Steven K. Shapiro. ! ------ Globals Variables 4 )! Mye_Cmd_Sort_Buffer 5 Sort Commande3! Mye_String_Compare 7 Function compare string.'! Mye_Shell_Sort 8 Sort Procedure. ! ! 19 -! Mye_Sort_Key 11 Module Keys definitions)! Mye_Sort_Module_Pre_Init 12 Pre_Init."! Mye_Sort_Module_Init 13 Init.!-- ! Mye_Sort.TPU ; Page 3P!*----------------------------------------------------------------------------*!!++! FILENAME: SORT.TPUJ! FUNCTION: This file contains procedures for performing a shell sort on a! buffer.H! AUTHOR: Steven K. Shapiro, (C) Copyright SKS Enterprises, Austin TX.7! All Rights Reserved.!H! The format, structure and contents of this file are the soleH! property of Steven K. Shapiro and are copyrighted to SKS&! Enterprises, Austin Texas.!H! The information may be freely distributed, used and modifiedH! \U MYE_TPU.BCK"/h7 [WORK.BER]MYE_SORT.TPU;1P provided that the information in this header block is not?! changed, altered, disturbed or modified in any way.!!! DATE: 26-AUG-1987 Original.! HISTORY: current. ! CONTENTS:/! ! evedt_sort (bname,astring)D! Mye_Cmd_Sort_Buffer (buffer_to_sort) ! eve_sort_buffer J! Mye_String_Compare (string1, string2) ! evedt$$string_compare A! Mye_Shell_Sort (buffer_to_sort) ! evedt$$shell_sort!P!23456789A123456789B123456789C123456789D123456789E123456789F123456789G123456789H!--P!*----------------------------------------------------------------------------*! ! Mye_Sort.TPU ; Page 4 ! Constant!Variable Mye_Cmd_Arg1_Sort_Buffer ; ! Mye_Sort.TPU ; Page 5Procedure Mye_Cmd_Sort_Buffer ( ; Buffer_To_Sort )!A! Sort the named buffer. Prompt for buffer name if not specified!Local By_Select , The_Range , Start_Range , End_Range , V_Buf , P_Buf ;By_Select := False ;,If ( Buffer_To_Sort = Tpu$K_Unspecified ) Or ( Buffer_To_Sort = "" ) Then! If ( Eve$X_Select_Position = 0 ) Then! If Not Eve$Prompt_String ( "" , V_Buf , "Sort buffer: " , "Cancelled" ) Then Return ; Endif ;& P_Buf := Eve$Find_Buffer ( V_Buf ) ; Else8 Mye_Pro_Cntrl_Select_Line ( Start_Range, End_Range ) ; By_Select := True ;> The_Range := Create_Range ( Start_Range, End_Range, None ) ; P_Buf := Mye_Fnct_Wrk_Buf ; Posi]![ MYE_TPU.BCK"/h7 [WORK.BER]MYE_SORT.TPU;1Pb% tion ( P_Buf ) ; Erase ( P_Buf ) ; Copy_Text ( The_Range ) ; Endif ; Else V_Buf := Buffer_To_Sort ;% P_Buf := Eve$Find_Buffer ( V_Buf ) ; Endif ; ! Mye_Sort.TPU ; Page 6If ( P_Buf <> 0 ) Then Mye_Shell_Sort ( P_Buf ) ; Else/ Message ( "Buffer " + V_Buf + " not found" ) ; Endif ; If By_Select Then Position ( Start_Range ) ; Erase ( The_Range ) ; Move_Text ( P_Buf ) ; Endif ;$Endprocedure ; ! Mye_Cmd_sort_BufferP!*------------------ ----------------------------------------------------------*! ! Mye_Sort.TPU ; Page 7Procedure Mye_String_Compare ( String1, String2 )!! Compare two strings! ! Returns:! 1 if string1 > string2! 0 if string1 = string2! -1 if string1 < string2!Local V_Alpha , V_C1 , V_P1 , V_C2 , V_I , V_P2 ;!@! The V_Alpha proposed by Steven K. Shapiro is "out of work" forG! multinationals languages. The purpose of sort by a collating sequence,! of ASCII or EBCDIC may be an other choice.=! For this task in sort in the internal editor, i prefere theH! collating sequence of MULTINATIONAL. For more information on collating*! sequence, see "dcl help sort /Collating"F! This collating sequence is for "MCS" of DEC, if you use ISO-latin or3! an another set, you have to rebuild the sequence.! V_Alpha :=< Ascii (0) + Ascii (1) + Ascii (2) + Ascii (3) + Ascii (4) +< Ascii (5) + Ascii (6) + Ascii (7) + Ascii (8) + Ascii (9) +A Ascii^= MYE_TPU.BCK"/h7 [WORK.BER]MYE_SORT.TPU;1P (10) + Ascii (11) + Ascii (12) + Ascii (13) + Ascii (14) +A Ascii (15) + Ascii (16) + Ascii (17) + Ascii (18) + Ascii (19) +A Ascii (20) + Ascii (21) + Ascii (22) + Ascii (23) + Ascii (24) +A Ascii (25) + Ascii (26) + Ascii (27) + Ascii (28) + Ascii (29) + Ascii (30) + Ascii (31) + " !""#$%&'()*+,-./" +: "0123456789:;<=>?@aAbBcCdDeEfFgGhH" +> "iIjJkKlLmMnNoOpPqQrRsStTuU" +! "vVwWxXyYzZ[\]^_`{|}~" +F Ascii (127) + Ascii (128) + Ascii (129) + Ascii (130) + Ascii (131) +F Ascii (132) + Ascii (133) + Ascii (134) + Ascii (135) + Ascii (136) +F Ascii (137) + Ascii (138) + Ascii (139) + Ascii (140) + Ascii (141) +F Ascii (142) + Ascii (143) + Ascii (144) + Ascii (145) + Ascii (146) +F Ascii (147) + Ascii (148) + Ascii (149) + Ascii (150) + Ascii (151) +F Ascii (152) + Ascii (153) + Ascii (154) + Ascii (155) + Ascii (156) +* Ascii (157) + Ascii (158) + Ascii (159) +7 "" + Ascii (255) ;E! This is the collating sequence of dcl sort /collating=Multinational V_I := 1 ;Loop If ( Length ( String2 ) < V_I ) Then0 If ( Length ( String2 ) = Length ( String1 ) ) Then Return 0 ; Else Return 1 ; Endif ; Endif ; If ( Length ( String1 ) < V_I ) Then Return -1 ; Endif ;% V_C1 := Substr ( String1, V_I, 1 ) ;! Change_Case ( V_C1, Upper ) ;% V_C2 := Substr ( String2, V_I, 1 ) ;! Change_Case ( V_C2, Upper ) ;" V_P1 := Index ( V_Alpha, V_C1 ) ;" V_P_][ MYE_TPU.BCK"/h7 [WORK.BER]MYE_SORT.TPU;1P2 := Index ( V_Alpha, V_C2 ) ; If ( V_P1 < V_P2 ) Then Return -1 ; Endif ; If ( V_P1 > V_P2 ) Then Return 1 ; Endif ; V_I := V_I + 1 ; Endloop; Return 1 ;#Endprocedure ; ! Mye_String_CompareP!*----------------------------------------------------------------------------*! ! Mye_Sort.TPU ; Page 8Procedure Mye_Shell_Sort ( Buffer_To_Sort )!5! This is the shell sort, described in knuth and also0! referred to as the Diminishing Increment Sort.!Local Temp_String , Temp_Index , Saved_Timer_Msg , Saved_Timer_State , V_Pos , V_Iline , V_Jline , V_I , V_J , V_Record , X_Shellstep , X_Gshell , X_Shell_Index ;On_Error& Mye_Pro_Set_Timer ( Saved_Timer_Msg , Temp_String , Saved_Timer_State , Temp_Index ) ; Position ( v_pos ) ; Return ; Endon_Error ;'Mye_Pro_Set_Timer ( " Sorting..." , Saved_Timer_Msg , True , Saved_Timer_State ) ;V_Pos := Mark ( None ) ;Position ( Buffer_To_Sort ) ; 'X_Shellstep := Create_Array ( 10, 0 ) ;-X_Shellstep { 0 } := 1 ;X_Shellstep { 1 } := 4 ;X_Shellstep { 2 } := 13 ;X_Shellstep { 3 } := 40 ;SX_Shellstep { 4 } := 121 ;X_Shellstep { 5 } := 364 ;X_Shellstep { 6 } := 1093 ;-X_Shellstep { 7 } := 3280 ;-X_Shellstep { 8 } := 9841 ;-X_Shellstep { 9 } := 32767 ;X_Gshell := 0 ;.X_Shell_Index := 0 ; ! Mye_Sort.TPU ; Page 9.!.! Find the highest step to use!:9V_Record := Get_Info ( Current` MYE_TPU.BCK"/h7 [WORK.BER]MYE_SORT.TPU;1P=<_Buffer, 'Record_Count' ) ; Loop X_Gshell := 0 ; Exitif ( X_Shell_Index >= 6 ) ;D! EXECUTE ("IF (GET_INFO (CURRENT_BUFFER, 'record_count') <"+G! FAO ("evedt$x_shellstep_!UL)",evedt$x_shell_index+2)+i6! " THEN evedt$x_gshell := 1;ENDIF;");4 If ( V_Record < X_Shellstep { X_Shell_Index + 2 } ) Then X_Gshell := 1 ; Endif ; If X_Gshell Then . Exitif 1 ; Endif ;% X_Shell_Index := X_Shell_Index + 1 ;0 Endloop ;  a$! Mye_Sort.TPU ; Page 10!nC! Now we can sort the buffer. Outer loop loops over all the steps,*#! decrementing evedt$x_shell_index.n!Loop@! EXECUTE (FAO("evedt$x_gshell := evedt$x_shellstep_!UL",(! evedt$x_shell_index));, X_Gshell := X_Shellstep { X_Shell_Index } ;J V_J := X_Gshell + 1 ; !Set up loop for step+1-index Loop: Position ( Beginning_Of ( Current_Buffer ) ) ;E Move_Vertical ( V_J - 1 ) ; !Get j'th linee% V_Jline := Current_Line ;-7 V_I := V_J - X_Gshell ; !i = j - ho Loop> Position ( Beginning_Of ( Current_Buffer ) ) ;+ Move_Vertical ( V_I - 1 ) ;y) V_Iline := Current_Line ;C If ( Mye_String_Compare ( V_Jline, V_Iline ) >= 0 )  ThenB Position ( Beginning_Of ( Current_Buffer ) ) ;: Move_Vertical ( V_I + X_Gshell - 1 ) ; a 9 MYE_TPU.BCK"/h7 [WORK.BER]MYE_SORT.TPU;1P Erase_Line ; Split_Line ;( Move_Vertical (-1) ;+ Copy_Text ( V_Jline ) ;g Exitif 1 ; $! Mye_Sort.TPU ; Page 11 ElseB Position ( Beginning_Of ( Current_Buffer ) ) ;: Move_Vertical ( V_I + X_Gshell - 1 ) ; Erase_Line ; Split_Line ;( Move_Vertical (-1) ;+ Copy_Text ( V_Iline ) ;d+ V_I := V_I - X_Gshell ; " If ( V_I < 1 ) ThenF Position ( Beginning_Of ( Current_Buffer ) ) ;> Move_Vertical ( V_I + X_Gshell - 1 ) ;$ Erase_Line ;$ Split_Line ;, Move_Vertical (-1) ;/ Copy_Text ( V_Jline ) ;o" Exitif 1 ; Endif ;8 Endif ;4 Endloop ;8 V_J := V_J + 1 ;' Exitif ( V_J > V_Record ) ;- Endloop;, X_Shell_Index := X_Shell_Index - 1 ;' Exitif ( X_Shell_Index < 0 ) ;g Endloop ;ePosition ( V_Pos ) ;%Mye_Pro_Set_Timer ( Saved_Timer_Msg ,o Temp_String ,f Saved_Timer_State ,t Temp_Index ) ;Endprocedure ; ! Mye_Shell_Sort $! Mye_Sort.TPU ; Page 12Procedure Mye_Sort_KeyO!*****************************************bԴ MYE_TPU.BCK"/h7 [WORK.BER]MYE_SORT.TPU;1PO*************************************cO!********** B L U E K E Y P A D **********O!******************************************************************************u!r(Define_Key ( "Mye_Cmd_Sort_Buffer('')" , Key_Name ( "Z", Shift_Key ),' "Mye_Tpu Sort_Buffer (Sort_Buffer)" ,E Mye_K_Blue_Keys_Name ) ;3Eve$Kt_Topic_Mye_Tpu_Sort_Buffer := "Sort_Buffer" ;u!O!******************************************************************************FO!**********  KEYPAD **********aO!******************************************************************************e! !uEndprocedure ; ! Mye_Sort_Keyo!-------------------- ($! Mye_Sort.TPU ; Page 13"Procedure Mye_Sort_Module_Pre_InitReturn ( True ) ;n)Endprocedure ; ! Mye_Sort_Module_Pre_Init!--------------------r ! Procedure Mye_Sort_Module_InitMye_Sort_Key ;<Mye_Cmd_Arg1_Sort_Buffer := Mye_Cmd_Arg1_Edit ; ! "string" ;!-! Return ( True ) ;-'! Endprocedure ; ! Mye_Sort_Module_Init-!--------------------tEndModule ; ! Mye_Sort!--------------------e $! Mye_Sort.TPU ; Page 14! Build dependencyEve$$Require ( "Mye_Tpu" ) ; Eve$$Require ( "Mye_Hextype" ) ;g1 = string2! -1 if string1 < string2!Local V_Alpha , V_C1 , V_P1 , V_C2 , V_I , V_P2 ;!@! The V_Alpha proposed by Steven K. Shapiro is "out of work" forG! multinationals languages. The purpose of sort by a collating scd MYE_TPU.BCK77 [WORK.BER]MYE_TABS_CNV.TPU;1P-*[WORK.BER]MYE_TABS_CNV.TPU;1+,7.-/ 4P-,-7 0123KPWO.56 NL7@kOM89GHJN 2@ 1! Mye_Tabs_Cnv.TPU ; 8-OCT-1990 15:18 ; Page 1"Module Mye_Tabs_Cnv Ident "V1.1-7"H!*********************************!*********!***************************4! LANG: Vaxtpu VERSION : 1.1-7 27/09/911! BUT: Extensions Pour Eve.H!-----------------------------------------------------------------------<! NAM: Mye_Tabs_Cnv CMP: .......... PGM: ..........! SYS: Vax/Vms 5.3! ENT: ..........! RTN: ..........:! FNC: Module de commande de conversions de tabulations: ! Commandes :! Translate_Tabs_To_Spaces! Translate_Spaces_To_Tabs! Globalset_Start_Line! Indent_Columns ! Indent_Tab! CAL: ..........!------------------------------ ! REV: 5! VER DATE OBJ AUTG! . . . . . . . . . . . .(! 1-7 27/09/91 Berenguier Alain ! Cor : Init Saved_Timer_State.!B! 1.0-0 08/10/90 Creation Berenguier Alain$! Wid MYE_TPU.BCK77 [WORK.BER]MYE_TABS_CNV.TPU;1P-th very increased functionality./! The original Author: Geoff Bryant 9/16/85,4! Another author: Steven K. Shapiro. 15-MAY-1987.! And DIGITAL with Eve V2! For Indent_xxx Joannes Jack.G!*********************************************************************)%! Procedure Mye_Tabs_Cnv_Module_Ident!! Return "V1.0-0" ;!,! EndProcedure ; ! Mye_Tabs_Cnv_Module_Ident 1! Mye_Tabs_Cnv.TPU ; 8-OCT-1990 15:18 ; Page 2!++! Table of Contents !! Mye_Tabs_Cnv.Tpu! 8-OCT-1990 15:27!#! Procedure name Page Description$! -------------- ---- ------------!:! Mye_Tabs_Cnv_Module_Ident 1 Identification Of Module. ! ------ Globals Variables 3 5! Mye_Get_Tab_Stops_Pos 4 Take array of tabs pos.5! Mye_Fnt_Spaces_To_Tab 6 Return number of space.'! Mye_Cmd_Translate_Tabs_To_Spaces 7 '! Mye_Cmd_Translate_Spaces_To_Tabs 10 ;! Mye_Cmd_Globalset_Start_Line 14 Set Preservation Start.$! Mye_Indent 15 Indent each line)! Mye_Cmd_Indent_Columns 19 to column."! Mye_Cmd_Indent_Tab 20 to tab.1! Mye_Tabs_Cnv_Key 21 Module Keys definitions.-! Mye_Tabs_Cnv_Module_Pre_Init 22 Pre_Init.%! Mye_Tabs_Cnv_Module_Init 22 Init.!-- !! Mye_Tabs_Cnv.TPU ; Page 3 ! ConstantVariable Mye_X_Pattern_Start_Line ,$ Mye_Cmd_Arg1_Globalset_Start_Line , Mye_Cmd_Arg1_Indent_Columns , Mye_Cmd_Arg1_Indent_Tab ,0 Eve$Kt_Topic_Mye_Tpu_Translate_Tabs_To_Spaces ,0 Eve$Kt_Topic_Mye_Tpu_Translate_Spaces_To_Tabs ,, EeW'KU MYE_TPU.BCK77 [WORK.BER]MYE_TABS_CNV.TPU;1P-ve$Kt_Topic_Mye_Tpu_Globalset_Start_Line ,& Eve$Kt_Topic_Mye_Tpu_Indent_Columns ," Eve$Kt_Topic_Mye_Tpu_Indent_Tab ; !! Mye_Tabs_Cnv.TPU ; Page 4Procedure Mye_Get_Tab_Stops_Pos& ( Tab_Stops_Pos ) ; ! Returned ArrayLocal End_Of_Loop , Rlidx , Nxt_Bl , Idx , Ccl ,!>D View_Ruler , Right_Marge , A_Type , A_Rule ;<Right_Marge := Get_Info ( Current_Buffer, "Right_Margin" ) ;5!>D Message ( "D- Marge : " + Str ( Right_Marge ) ) ;4A_Rule := Get_Info ( Current_Buffer, "Tab_Stops" ) ;'A_Type := Get_Info ( A_Rule, "Type" ) ;/!>D Message ( "D- Type : " + Str ( A_Type ) ) ;)Tab_Stops_Pos := Create_Array ( 32, 1 ) ; Idx := 1 ;If A_Type = Integer Then Ccl := 1 ;!>D View_Ruler := '' ; Loop Exitif Idx > 32 ; Ccl := Ccl + A_Rule ; Exitif Ccl > Right_Marge ; Tab_Stops_Pos { Idx } := Ccl ;4!>D View_Ruler := View_Ruler + ' ' + Str ( Ccl ) ; Idx := Idx + 1 ; Endloop ; Else !! Mye_Tabs_Cnv.TPU ; Page 5!!>D View_Ruler := ' ' + A_Rule ; Rlidx := 1 ; End_Of_Loop := False ; Loop# Nxt_Bl := Index ( A_Rule, ' ' ) ; If Nxt_Bl > 0 Then4 Ccl := Substr ( A_Rule, Rlidx, Nxt_Bl - Rlidx ) ;, A_Rule := Substr ( A_Rule, Nxt_Bl + 1 ) ; Else$ Ccl := Substr ( A_Rule, Rlidx ) ; End_Of_Loop := True ; Endif ; !>D Message ( "D-2 " + Ccl ) ; Tab_Stops_Pos { Idx } := Ccl ; Idx := Idx + 1 ; Exitif End_Of_Loop ; Exitif Idx > 32 ; Endloop ; Endif ;0!>D Message ( "D- Tab Stops f _FP MYE_TPU.BCK77 [WORK.BER]MYE_TABS_CNV.TPU;1P- | : " + View_Ruler ) ;&EndProcedure ; ! Mye_Get_Tab_Stops_Pos+!------------------------------------------ !! Mye_Tabs_Cnv.TPU ; Page 6Procedure Mye_Fnt_Spaces_To_Tab! ( Cur_Offset, Tab_Stops_Pos ) ;Local Idx , Ccl ;)!>D Message ( "D- Begin Space_To_Tab" ) ; Idx := 1 ;Loop Exitif Idx > 32 ; Ccl := Tab_Stops_Pos { Idx } ;! Exitif Ccl = Tpu$K_Unspecified ; Exitif Ccl > Cur_Offset + 1 ; Idx := Idx + 1 ; Endloop ;E! It is for replace the tab by space, so the word wrap indent ( WPS )"! -W- Marker, aren't checked here.If Ccl = Tpu$K_Unspecified Then Return 1 ; Else" Return ( Ccl - Cur_Offset - 1 ) ; Endif ;&Endprocedure ; ! Mye_Fnt_Spaces_To_Tab+!------------------------------------------ !! Mye_Tabs_Cnv.TPU ; Page 7P!*----------------------------------------------------------------------------*!!L! This command can be invoked with a select range active or without a selectO! range active. If it is invoked with a select range active it will replace allN! tabs within the select range and return the cursor to the position it was inM! when the command was invoked. If it is invoked with no select range it willO! replace all tabs between the current position and the beginning or end of theL! buffer depending on the setting of the current direction in the buffer andK! return the cursor to the position it was in when the command was invoked.! SKS, 15-MAY-1987.!*Procedure Mye_Cmd_Translate_Tabs_To_SpacesLocalg  MYE_TPU.BCK77 [WORK.BER]MYE_TABS_CNV.TPU;1P- Full_Pat , Quot_Pat , Dblq_Pat , Curr_Char , Curr_Col , Found_Range , Rpl_Cnt , Spc_Cnt , Srch_Dir , Start_Range , End_Range , The_Range , Loop_Range , Here , Tab_Siz , Tab_Stops_Pos , Temp_String , Temp_Index , Saved_Timer_State , Saved_Timer_Msg , Saved_Mode , Saved_Mark ; !! Mye_Tabs_Cnv.TPU ; Page 8On_Error [TPU$_CONTROLC]:* If Saved_Timer_State <> Tpu$K_Unspecified Then' Mye_Pro_Set_Timer ( Saved_Timer_Msg , Temp_String , Saved_Timer_State , Temp_Index ) ; Endif ;' Eve$$Restore_Position ( Saved_Mark ) ;% Set ( Saved_Mode, Current_Buffer ) ; Eve$Learn_Abort ; Abort ; [OTHERWISE]:* If Saved_Timer_State <> Tpu$K_Unspecified Then' Mye_Pro_Set_Timer ( Saved_Timer_Msg , Temp_String , Saved_Timer_State , Temp_Index ) ; Endif ;' Eve$$Restore_Position ( Saved_Mark ) ;% Set ( Saved_Mode, Current_Buffer ) ; Endon_Error ;DSaved_Mark := Mark ( Free_Cursor ) ; ! only needed for error returns3Saved_Mode := Get_Info ( Current_Buffer, "Mode" ) ;(Saved_Timer_State := Tpu$K_Unspecified ;Mye_Pro_Take_Range_Or_Buf ( Start_Range , End_Range , The_Range , "Tabs_To_Spaces" ) ;'Mye_Pro_Set_Timer ( "Translating Tab" , Saved_Timer_Msg , True , Saved_Timer_State ) ; Set ( Insert, Current_Buffer ) ;Position ( Start_Range ) ;)Mye_Get_Tab_Stops_Pos ( Tab_Stops_Pos ) ;BFull_Pat := Any ( Ascii ( h*d] MYE_TPU.BCK77 [WORK.BER]MYE_TABS_CNV.TPU;1P-e9 ) + Ascii ( 34 ) + Ascii ( 39 ), 1 ) ;%Quot_Pat := Ascii ( 39 ) | Line_End ;%Dblq_Pat := Ascii ( 34 ) | Line_End ;Loop_Range := The_Range ; !! Mye_Tabs_Cnv.TPU ; Page 9Loop+ Found_Range := Search_Quietly ( Full_Pat ,# Forward, Exact, Loop_Range ) ; Exitif ( Found_Range = 0 ) ; Here := Mark ( None ) ;; Exitif Not Get_Info ( Here, "Within_Range" , The_Range ) ;, Position ( Beginning_Of ( Found_Range ) ) ;! Curr_Char := Current_Character ; Case Curr_Char [ '"' ] : Move_Horizontal ( 1 ) ; Here := Mark ( None ) ;9 Loop_Range := Create_Range ( Here, End_Range , None ) ;, Found_Range := Search_Quietly ( Dblq_Pat ,# Forward, Exact, Loop_Range ) ; Exitif ( Found_Range = 0 ) ;- Position ( Beginning_Of ( Found_Range ) ) ; Move_Horizontal ( 1 ) ; [ "'" ] : Move_Horizontal ( 1 ) ; Here := Mark ( None ) ;9 Loop_Range := Create_Range ( Here, End_Range , None ) ;, Found_Range := Search_Quietly ( Quot_Pat ,# Forward, Exact, Loop_Range ) ;_ Exitif ( Found_Range = 0 ) ;- Position ( Beginning_Of ( Found_Range ) ) ;- Move_Horizontal ( 1 ) ;* [ Ascii ( 9 ) ] :@ Curr_Col := Get_Info ( Current_Buffer, "Offset_Column" ) - 1 ;@ Tab_Siz := Mye_Fnt_Spaces_To_Tab ( Curr_Col, Tab_Stops_Pos ) ; Erase ( Found_Range ) ;-6 Copy_Text ( Substr ( Eve$Kt_Spaces, 1, Tab_Siz ) ) ; Rpl_Cnt := Rpl_Cnt + 1 ; Spc_Cnt := Spc_Cnt + Tab_Siz ; Endcase ; Here := Mark ( None ) ;8 Loop_Range := Create_Range ( Here, End_Range , None ) ; i  MYE_TPU.BCK77 [WORK.BER]MYE_TABS_CNV.TPU;1P-Endloop ; 8Message ( Fao ( "!ZL tab!%S replaced with !ZL space!%S", Rpl_Cnt, Spc_Cnt ) ) ;Position ( Saved_Mark ) ; $Set ( Saved_Mode, Current_Buffer ) ;%Mye_Pro_Set_Timer ( Saved_Timer_Msg ,- Temp_String , Saved_Timer_State ,  Temp_Index ) ;1Endprocedure ; ! Mye_Cmd_Translate_Tabs_To_Spaces +!------------------------------------------  e(! Mye_Tabs_Cnv.TPU ; Page 10*Procedure Mye_Cmd_Translate_Spaces_To_TabsLocal  I , Full_Pat ,A Quot_Pat ,v Dblq_Pat , Curr_Char , Curr_Col ,i Found_Range , Rpl_Cnt , Spc_Cnt , Srch_Dir ,t Start_Range , End_Range , The_Range , Loop_Range ,e Here ,F Tab_Siz , Tab_Stops_Pos , Temp_String , Temp_Index ,* Saved_Timer_State , Saved_Timer_Msg , Saved_Mode ,_ Saved_Mark ;_On_Error [TPU$_CONTROLC]:* If Saved_Timer_State <> Tpu$K_Unspecified Then' Mye_Pro_Set_Timer ( Saved_Timer_Msg ,; Temp_String ,  Saved_Timer_State ,  Temp_Index ) ; Endif ;' Eve$$Restore_Position ( Saved_Mark ) ;c% Set ( Saved_Mode, Current_Buffer ) ;- Eve$Learn_Abort ; Abort ; [OTHERWISE]:* If Saved_Timer_State <> Tpu$K_Unspecified Then ' Mye_Pro_Set_Timer ( Saved_Timer_Msg ,r Temp_String ,_ Saved_Timer_State ,n Temp_Index ) ; Endif ;' Eve$$Restore_Position ( Saved_Mark ) ;l% Set ( Saved_Mode, Current_Buffer ) ;b Endon_Error ;e (! Mye_Tabs_Cnv.TPU ; Page 11DSaved_Mark := Mark ( Free_Cursor )jy\o MYE_TPU.BCK77 [WORK.BER]MYE_TABS_CNV.TPU;1P- ; ! only needed for error returns3Saved_Mode := Get_Info ( Current_Buffer, "Mode" ) ; (Saved_Timer_State := Tpu$K_Unspecified ;Mye_Pro_Take_Range_Or_Bufn ( Start_Range ,v End_Range ,  The_Range , "Spaces_To_Tabs" ) ;'Mye_Pro_Set_Timer ( "Translating Tab" ,P Saved_Timer_Msg ,M True , Saved_Timer_State ) ;d Set ( Insert, Current_Buffer ) ;Position ( Start_Range ) ;)Mye_Get_Tab_Stops_Pos ( Tab_Stops_Pos ) ;eCFull_Pat := Any ( Ascii ( 32 ) + Ascii ( 34 ) + Ascii ( 39 ), 1 ) ;b%Quot_Pat := Ascii ( 39 ) | Line_End ;p%Dblq_Pat := Ascii ( 34 ) | Line_End ;pLoop_Range := The_Range ;_ C(! Mye_Tabs_Cnv.TPU ; Page 12Loop+ Found_Range := Search_Quietly ( Full_Pat ,r# Forward, Exact, Loop_Range ) ;, Exitif ( Found_Range = 0 ) ;> Here := Mark ( None ) ;; Exitif Not Get_Info ( Here, "Within_Range" , The_Range ) ;u, Position ( Beginning_Of ( Found_Range ) ) ;! Curr_Char := Current_Character ;  Case Curr_Char [ '"' ] : Move_Horizontal ( 1 ) ;) Here := Mark ( None ) ;R9 Loop_Range := Create_Range ( Here, End_Range , None ) ; , Found_Range := Search_Quietly ( Dblq_Pat ,# Forward, Exact, Loop_Range ) ;e Exitif ( Found_Range = 0 ) ;- Position ( Beginning_Of ( Found_Range ) ) ;  Move_Horizontal ( 1 ) ; [ "'" ] : Move_Horizontal ( 1 ) ;t Here := Mark ( None ) ;>9 Loop_Range := Create_Range ( Here, End_Range , None ) ;=, Found_Range := Search_Quietly ( Quot_Pat ,# Forward, Exact, Loop_Range ) ;uk MYE_TPU.BCK77 [WORK.BER]MYE_TABS_CNV.TPU;1P-( Exitif ( Found_Range = 0 ) ;- Position ( Beginning_Of ( Found_Range ) ) ;_ Move_Horizontal ( 1 ) ;  (! Mye_Tabs_Cnv.TPU ; Page 13 [ ' ' ] :@ Curr_Col := Get_Info ( Current_Buffer, "Offset_Column" ) - 1 ;@ Tab_Siz := Mye_Fnt_Spaces_To_Tab ( Curr_Col, Tab_Stops_Pos ) ; If Tab_Siz > 1 Then I := 1 ;g Loop" Exitif ( I = Tab_Siz ) ; Move_Horizontal ( 1 ) ;+) Exitif ( Current_Character <> ' ' ) ;> I := I + 1 ; Endloop ; If ( I <> Tab_Siz ) Theni Move_Horizontal ( 1 ) ;; ElseT/ Position ( Beginning_Of ( Found_Range ) ) ;- Erase_Character ( I ) ;v Copy_Text ( Ascii ( 9 ) ) ;y Rpl_Cnt := Rpl_Cnt + 1 ;" Spc_Cnt := Spc_Cnt + Tab_Siz ; Endif ; Else Move_Horizontal ( 1 ) ; Endif ;d Endcase ; Here := Mark ( None ) ;8 Loop_Range := Create_Range ( Here, End_Range , None ) ; Endloop ;E8Message ( Fao ( "!ZL space!%S replaced with !ZL tab!%S", Spc_Cnt ,o Rpl_Cnt ) ) ; Position ( Saved_Mark ) ;i$Set ( Saved_Mode, Current_Buffer ) ;%Mye_Pro_Set_Timer ( Saved_Timer_Msg ,d Temp_String , Saved_Timer_State ,u Temp_Index ) ;1Endprocedure ; ! Mye_Cmd_Translate_Spaces_To_Tabs-+!------------------------------------------ y(! Mye_Tabs_Cnv.TPU ; Page 14&Procedure Mye_Cmd_Globalset_Start_Line ( ; Q_Name ) ;Local- A_Name ,h B_Name ;c!b7! Set the start of line comment to preserve from indent!a$If ( Q_Name = Tpu$K_Unspecified ) Orlf MYE_TPU.BCK77 [WORK.BER]MYE_TABS_CNV.TPU;1P- ( Q_Name = "" ) Then If Not Eve$Prompt_String ( "" , A_Name , % "Start line preservation : " , " "The reply are required." ) Thend Eve$Learn_Abort ;  Return ( FALSE ) ; Endif ; Else A_Name := Q_Name ;h Endif ; "B_Name := Edit ( A_Name, Lower ) ; Case B_Namet[ "pascal_num" ] :0 Mye_X_Pattern_Start_Line := Anchor + "(*" + Any ('0123456789') + Match ( "*)" ) ;[ "com_file" ] :/ Mye_X_Pattern_Start_Line := Anchor + "$" ;[ "gen_file" ] :/ Mye_X_Pattern_Start_Line := Anchor + "%" ;r[ "max_file" ] :/ Mye_X_Pattern_Start_Line := Anchor + "*" ;a[ "hlp_file" ] :/ Mye_X_Pattern_Start_Line := Anchor + "!" ;T[ Outrange ] :?! Message ( "Your request " + A_Name + " is unknow for me." ) ;>! Message ( "I Known only pascal_num, com_file, gen_file," ) ;%! Message ( "max_file, hlp_file." ) ;2 Mye_X_Pattern_Start_Line := Anchor + A_Name ; Endcase ;d-Endprocedure ; ! Mye_Cmd_Globalset_Start_Line +!------------------------------------------e t(! Mye_Tabs_Cnv.TPU ; Page 15(Procedure Mye_Indent ( By_Tabs, Offset )!(E! Indent each line of current selected text, to the number of tabs orH! columns specified.! First version Joannes Jack.!TLocal This_Range ,e Start_Range , End_Range , Remove_Range , Old_Position ,e This_Mode , This_Line , Pad_Line ,d Current_Position ,o Comment_Range , Comment_String ,d Compressed_Comment , Tab_Fao , Space_Fao , Indent_VamɅ MYE_TPU.BCK77 [WORK.BER]MYE_TABS_CNV.TPU;1P-clue ,F Tab_Value , Number_Of_Tabs ;eOn_Error [ Tpu$_Nullstring ] : Return ( False ) ; Endon_Error ;_!! If Eve$X_Select_Position = 0!! Then_P!! ! Eve$Message ( "Vous devez d'abord selectionner les lignes a decaler." ) ;B!! Eve$Message ( "You have to select the lines to indent." ) ;!! Return ; !! Endif ;&Old_Position := Mark ( Free_Cursor ) ;Mye_Pro_Take_Range_Or_Buf ( Start_Range ,n End_Range ,a This_Range , "Indent" ) ;7Tab_Value := Get_Info ( Current_Buffer, "Tab_Stops" ) ;,*If Get_Info ( Tab_Value, "Type" ) = StringThen Tab_Value := 8 ;4HEndif ; ! Actualy we don't make indent by tabs on positional tabs stops. P(! Mye_Tabs_Cnv.TPU ; Page 16 If By_TabsThen Offset := Tab_Value * Offset ; Endif ;i!! If Eve$X_Select_Range <> 0=!! Theno&!! This_Range := Eve$X_Select_Range ;!! Elsee !! This_Range := Select_Range ; !! Endif ;*Position ( Beginning_Of ( This_Range ) ) ;Position ( Line_Begin ) ;2This_Mode := Get_Info ( Current_Buffer, "Mode" ) ; Set ( Insert, Current_Buffer ) ;!Set ( Pad_Overstruck_Tabs, On ) ; Set ( Screen_Update, Off ) ; Tab_Fao := "!#*" + Ascii ( 9 ) ;Space_Fao := "!#* " ;  f(! Mye_Tabs_Cnv.TPU ; Page 17Loop' Current_Position := Mark ( None ) ; 9 Exitif ( Current_Position > End_Of ( This_Range ) ) ;  This_Line := Current_Line ;r If Length ( This_Line ) > 0n Then Loopa@ Comment_Range := Search_Quietly ( Mye_X_Pattern_Start_LinnH MYE_TPU.BCK77 [WORK.BER]MYE_TABS_CNV.TPU;1P-!e, Forward ) ;F Exitif Comment_Range = 0 ;B, Position ( End_Of ( Comment_Range ) ) ; Move_Horizontal ( 1 ) ; Endloop ;% If Current_Position <> Mark ( None )t Then" Move_Horizontal ( -1 ) ;SH Comment_Range := Create_Range ( Current_Position, Mark ( None ) ) ;1 Comment_String := Substr ( Comment_Range, 1,;! Length ( Comment_Range ) ) ;_ Move_Horizontal ( 1 ) ;+ Compressed_Comment := Comment_String ;g1 Edit ( Compressed_Comment, Collapse, Off ") ;l: If Index ( Eve$Kt_Whitespace, Current_Character ) = 0 Thenp Erase ( Comment_Range ) ;i Endif ; Else  Comment_String := '' ;u Endif ; Indent_Value := Offset ;i$ Edit ( This_Line, Collapse, Off ) ;< If ( This_Line = "" ) Or ( This_Line = Compressed_Comment ) ThenC Indent_Value := 0 ; Position ( Line_Begin ) ;2 Erase_Character ( Length ( Current_Line ) ) ; ElsegE Position ( Search ( Notany ( Eve$Kt_Whitespace ) , Forward ) ) ;_) If Current_Position <> Mark ( None )h Then_ Indent_Value := Offset - 1 +1 Get_Info ( Current_Buffer, "Offset_Column" ) ;R Move_Horizontal ( -1 ) ;2 Remove_Range := Create_Range ( Current_Position, Mark ( None ) , None ) ; Erase ( Remove_Range ) ; Endif ; Endif ; S(! Mye_Tabs_Cnv.TPU ; Page 18 If Eve$X_Tab_Mode = 1 Thenu/ Pad_Line := Fao ( Space_Fao, Indent_Value ) ;a Else ! 0 or 2 ( like 0 )p. Number_Of_Tabs := Indent_Value / Tab_Value ;:! Pad_Line oaލ MYE_TPU.BCK77 [WORK.BER]MYE_TABS_CNV.TPU;1P-Zi$:= Substr ( Eve$Kt_Tabs, 1, Number_Of_Tabs ) +"! Substr ( Eve$Kt_Spaces, 1,:! Indent_Value - ( Number_Of_Tabs * Tab_Value ) ) ;/ Pad_Line := Fao ( Tab_Fao, Number_Of_Tabs ) +  Fao ( Space_Fao,e9 Indent_Value - ( Number_Of_Tabs * Tab_Value ) ) ;e Endif ;" If Length ( Comment_String ) <> 0 Thene Comment_Range := 0 ;M0 If Length ( Comment_String ) < Indent_Value Then  Copy_Text ( Pad_Line ) ;& Set ( Overstrike, Current_Buffer ) ; Position ( Line_Begin ) ;e Copy_Text ( Comment_String ) ;" Set ( Insert, Current_Buffer ) ; Elsee Copy_Text ( Comment_String ) ; Endif ; Elsen Copy_Text ( Pad_Line ) ; Endif ; Position ( Line_Begin ) ; Endif ;b Move_Vertical ( 1 ) ; Endloop ;gSet ( Screen_Update, On ) ; "Set ( Pad_Overstruck_Tabs, Off ) ;If This_Mode = OverstrikeuThen% Set ( Overstrike, Current_Buffer ) ;Endif ;aPosition ( Old_Position ) ;eEndprocedure ; ! Mye_Indent2+!------------------------------------------t :(! Mye_Tabs_Cnv.TPU ; Page 196Procedure Mye_Cmd_Indent_Columns ( Number_Of_Columns )Local Offset ;On_Error% Eve$Message ( "Nombre Incorrect. ");  Eve$Learn_Abort ; Return ( False ) ;d Endon_Error;If Number_Of_Columns = ""aThenE Offset := Int (Read_Line ("Indent ( +/- Number of columns ) : ") ) ;RElse& Offset := Int ( Number_Of_Columns ) ;Endif ;dMye_Indent ( False, Offset ) ;'Endprocedure ; ! Mye_Cmd_Indent_Columns:+!-------p MYE_TPU.BCK77 [WORK.BER]MYE_TABS_CNV.TPU;1P-'-----------------------------------( (! Mye_Tabs_Cnv.TPU ; Page 20/Procedure Mye_Cmd_Indent_Tab ( Number_Of_Tabs )uLocal Offset ;On_Error% Eve$Message ( "Nombre Incorrect. ");F Eve$Learn_Abort ; Return ( False ) ;g Endon_Error;If Number_Of_Tabs = ""ThenB Offset := Int (Read_Line ("Indent ( +/- Number of tabs ) : ") ) ;Else# Offset := Int ( Number_Of_Tabs ) ;,Endif ;eMye_Indent ( True, Offset ) ;a#Endprocedure ; ! Mye_Cmd_Indent_Tab +!------------------------------------------e )(! Mye_Tabs_Cnv.TPU ; Page 21Procedure Mye_Tabs_Cnv_KeyO!******************************************************************************eO!********** B L U E K E Y P A D **********TO!******************************************************************************o2Define_Key ( "Mye_Cmd_Globalset_Start_Line ('')" , Key_Name ( "[", Shift_Key ),9 "Mye_Tpu Globalset_Start_Line (Globalset_Start_Line)" ,I Mye_K_Blue_Keys_Name ) ;EEve$Kt_Topic_Mye_Tpu_Globalset_Start_Line := "Globalset_Start_Line" ;O! 1Define_Key ( "Mye_Cmd_Translate_Spaces_To_Tabs" ,  Key_Name ( "T", Shift_Key ),7 "Mye_Tpu Translate_Spaces_To_Tabs (Spaces_To_Tabs)" ,b Mye_K_Blue_Keys_Name ) ;MEve$Kt_Topic_Mye_Tpu_Translate_Spaces_To_Tabs := "Translate_Spaces_To_Tabs" ;)!1Define_Key ( "Mye_Cmd_Translate_Tabs_To_Spaces" ,e Key_Name ( "Y", Shift_Key ),7 "Mye_Tpu Translate_Tabs_To_Spaces (Tabs_To_Spaces)" ,o Mye_K_Blue_Keys_Name ) ;MEve$qen MYE_TPU.BCK77 [WORK.BER]MYE_TABS_CNV.TPU;1P-;)*Kt_Topic_Mye_Tpu_Translate_Tabs_To_Spaces := "Translate_Tabs_To_Spaces" ; !eO!******************************************************************************xO!********** KEYPAD **********-O!****************************************************************************** ,Define_Key ( "Mye_Cmd_Indent_Columns ('')" , Key_Name ( "Y", Shift_Key ),- "Mye_Tpu Indent_Columns (Indent_Columns)" ,e Mye_K_Keys_Name ) ;9Eve$Kt_Topic_Mye_Tpu_Indent_Columns +:= "Indent_Columns" ; !n(Define_Key ( "Mye_Cmd_Indent_Tab ('')" , Key_Name ( "T", Shift_Key ),% "Mye_Tpu Indent_Tab (Indent_Tab)" ,r Mye_K_Keys_Name ) ;d1Eve$Kt_Topic_Mye_Tpu_Indent_Tab := "Indent_Tab" ;d!;!Endprocedure ; ! Mye_Tabs_Cnv_Keyn!--------------------t A(! Mye_Tabs_Cnv.TPU ; Page 22&Procedure Mye_Tabs_Cnv_Module_Pre_InitReturn ( True ) ;-Endprocedure ; ! Mye_Tabs_Cnv_Module_Pre_Init)!-------------------- $! Procedure Mye_Tabs_Cnv_Module_InitMye_Tabs_Cnv_Key ;8Mye_Cmd_Arg1_Globalset_Start_Line := Mye_Cmd_Arg1_Edit ;*Mye_Cmd_Arg1_Indent_Columns := "integer" ;8Mye_Cmd_Arg1_Indent_Tab := Mye_Cmd_Arg1_Indent_Columns ;*Mye_X_Pattern_Start_Line := Anchor + "!" ;!e! Return ( True ) ; +! Endprocedure ; ! Mye_Tabs_Cnv_Module_Inits!--------------------cEndModule ; ! Mye_Tabs_Cnv!--------------------l h(! Mye_Tabs_Cnv.TPU ; Page 23! Build dependencyEve$$Require ( "Mye_Tpu" ) ; Eve$$Require ( "Mye_Hextype" ) ;+!-----------r@_9 MYE_TPU.BCK77 [WORK.BER]MYE_TPU.HLP;1P*[WORK.BER]MYE_TPU.HLP;1+,7./ 4Ph-7 0123KPWO56 \7 \89GHJN 2@  1 MYE_TPUH!*********************************!*********!***************************4! LANG: Help/Eve VERSION : 1.1-6 26/09/91-! BUT: Help for Mye_TpuH!-----------------------------------------------------------------------;! NAM: Mye_Tpu.Hlp CMP: Vax/VMS PGM: ..........! SYS: VMS 5.3, EVE 2.0! ENT: ..........! RTN: ..........!! FNC: Help sous Eve de Mye_Tpu! CAL: ..........!------------------------------! REV: ..........5! VER DATE OBJ AUTG! . . . . . . . . . . . .;! -6 26/09/91 Mod / Macro command. Berenguier Alain:! 1-5 16/09/91 Add Print Command. Berenguier Alain1! 1.0-0 22/01/91 Creation Berenguier AlainG!********************************************************************** MYE_TPUM! It is my eve, this is for emulate all fonctions than i use on edt.9 M U L T I Y I E sdU MYE_TPU.BCK77 [WORK.BER]MYE_TPU.HLP;1PcL D E D I T O RD Increase yield of programmers by decrease the hit of keys. 1 commands MYE_TPU List_Of_TopicsC Below are the commands and informational topics available to you. ~I~B o For help on a subtopic, type topic subtopic and press RETURN.8 o To exit from help and resume editing, press RETURN. COMMANDS< Ascii Display_Character EditI Format_Help Format_Ident Format_Isole_Word? Format_Word  Globalset_Start_Line HextypeB Include Indent_Columns Indent_Tab= Load_Selected Macro PrintC Rol_Edit Scratch Sort_BufferP Substitute Translate_Spaces_To_Tabs Translate_Tabs_To_Spaces< Word_Column Word_Mcolumn Zcnl Znl  KEYS_FUNCTIONS< Assign_Go_Buffer Blue_Keypad DateA Get_Lis Get_Log Get_RulerF Goto_Last Go_Buffer Make_SignatureL Mye_Cmd Swap_Char Toggle_Screen_UpdateC Toggle_Tabs Toggle_Timer Toggle_WrapC Word_Format Word_Space Word_Toggle INFORMATIONAL TOPICS Edt_Range!----------------------------1 Macro MYE_TPU MacroA Load the specified macro file, with t MYE_TPU.BCK77 [WORK.BER]MYE_TPU.HLP;1Pdefault searching :" 1 ) ".Tpu" ( current directory ), 2 ) "Mye_Tpu_Macro_Lib:.Tpu"J in work buffer, extend eve with it, execute Mye_Macro_"Macro_Name"_Init if found. Binded to key GOLD-&.!----------------------------1 Globalset_Start_Line MYE_TPU Globalset_Start_Line@ Set the start of line comment to preserve from indent.# With the preserved start line are/ pascal_num (*xx*) with xx one edit number. com_file $ gen_file % max_file * hlp_file !J If the parameter is different that there keywords, the parameter+ himself is take as preserved start line.% Binded to key GOLD-[ on blue keypad. Related topics:5 Indent_Columns Indent_Tab!----------------------------1 Indent_Columns MYE_TPU Indent_ColumnsK Indent all selected text by the number ( eventually negative ) ofM column specified. Preserve each start of line set by Globalset_Start_Line. Binded to key GOLD-Y. Related topics:5 Globalset_Start_Line Indent_Tab!---------------------------- 1 Indent_Tab MYE_TPU Indent_TabK Indent all selected text by the number ( eventually negative ) ofK tabs specified. Preserve each start of line set by Globalset_Start_Line. Binded to key GOLD-T. Related topics:9 Globalset_Start_Line Indent_Columns!----------------------------1 Toggle_Timer MYE_TPU Toggle_Timer! Toggle tu MYE_TPU.BCK77 [WORK.BER]MYE_TPU.HLP;1P(  imer on or off. Binded to key GOLD-F8.!----------------------------1 Toggle_Screen_Update MYE_TPU Toggle_Screen_Update) Toggle Screen_Update on or off. Binded to key GOLD-F9.!----------------------------1 Translate_Spaces_To_Tabs" MYE_TPU Translate_Spaces_To_TabsM This command can be invoked with a select range active or without aK select range active. If it is invoked with a select range active it willK replace all spaces by tabs within the select range and return the cursorK to the position it was in when the command was invoked. If it is invokedL with no select range it will replace all spaces by tabs in the the bufferG and return the cursor to the position it was in when the command was invoked.% Binded to key GOLD-T on Blue Keypad.!----------------------------1 Translate_Tabs_To_Spaces% MYE_TPU Translate_Tabs_To_SpacesM This command can be invoked with a select range active or without aK select range active. If it is invoked with a select range active it willK replace all tabs by spaces within the select range and return the cursorK to the position it was in when the command was invoked. If it is invokedL with no select range it will replace all tabs by spaces in the the bufferG and return the cursor to the position it was in when the command was invoked.% Binded to key GOLD-Y on Blue Keypad.!----------------------------1 Ascii MYE_TPU Ascii0 DivO MYE_TPU.BCK77 [WORK.BER]MYE_TPU.HLP;1P splay an ASCII Table in show buffer.% Binded to key GOLD-H on Blue Keypad.!---------------------------- 1 Hextype MYE_TPU HextypeH Display the current line in hexadecimal format in show buffer. Binded to key GOLD-H.!---------------------------- 1 Word_Column MYE_TPU Word_ColumnK Take the selected range ( or buffer if any ) and put each word in one single column.% Binded to key GOLD-O on Blue Keypad.!----------------------------1 Word_Mcolumn MYE_TPU Word_McolumnK Take the selected range ( or buffer if any ) and put each line in2 multiples column. Compute the number of column.% Binded to key GOLD-U on Blue Keypad.!----------------------------1 Display_Character MYE_TPU Display_CharacterM Display one char in mnemonique, octal, decimal, hexadecimal format.% Binded to key GOLD-? on Blue Keypad.!---------------------------- 1 Sort_Buffer MYE_TPU Sort_BufferJ Take the selected range ( or buffer if any ) and rearrange it byJ sorting each line in Multinational Collating Sequence ( with DEC MCS ).% Binded to key GOLD-Z on Blue Keypad.!---------------------------- 1 Format_Word MYE_TPU Format_WordB Take the selected range ( or buffer if any ) and applies Word_Format on each word.% Binded to key GOLD-F on Blue Keypad.!----------------------------1 Format_Indent MYE_TPU Format_IndentL Take the selected range ( or buffew4'C MYE_TPU.BCK77 [WORK.BER]MYE_TPU.HLP;1Pr if any ) and applies indent as you specify.% Binded to key GOLD-I on Blue Keypad.!----------------------------1 Format_Isole_Word MYE_TPU Format_Isole_WordM Take the selected range ( or buffer if any ) and isole each word or1 informatics symbols between two whites spaces.- Binded to key GOLD-Control-W on Blue Keypad.!---------------------------- 1 Format_Help MYE_TPU Format_HelpJ Take the selected range ( or buffer if any ) and make a table ofJ list of topics.( Put each word on single column, reorder in alphabetic,A push in multi-column, applies Format_word, Indent to column 5.- Binded to key GOLD-Control-H on Blue Keypad.!----------------------------1 Edit MYE_TPU EditK Edit an another file, Like Get_File of eve, but keep the filespec0 of the initial file in related environnement. Binded to key GOLD-E.!---------------------------- 1 Include MYE_TPU IncludeL Include a file, Like Include_File of eve, but keep the filespec of- the initial file in related environnement.L Binded to key GOLD-I.!---------------------------- 1 Load_Selected: MYE_TPU Load_Selected-M Edit a file selected. Like Open Selected, but with the initial fileT in related environnement. Examples:M Bye the eve command dcl, make a directory command. Go to the bufferN> DCL, select one file name and make a load_selected command.% Binded to key GOLD-E on Blue Keypad.x\f MYE_TPU.BCK77 [WORK.BER]MYE_TPU.HLP;1P !---------------------------- 1 Rol_Edit MYE_TPU Rol_Edit= Edit Multiples files, with wildcard specifications.% Binded to key GOLD-* on Blue Keypad. !----------------------------01 Zcnl MYE_TPU Zcnl> Insert a centered ruler. ( Centered Numbered Line ).% Binded to key CTRL-N on Blue Keypad.*!----------------------------*1 Znl MYE_TPU Znl , Insert a ruler. ( Numbered Line ).% Binded to key GOLD-N on Blue Keypad. !---------------------------- 1 Scratch MYE_TPU ScratcheK Set the current buffer "scratch", eg. Read_Only, Modifiable, likes buffer on real EDT.% Binded to key GOLD-S on Blue Keypad. !---------------------------- 1 Assign_Go_Buffer MYE_TPU Assign_Go_Buffer( Define a key for a goto buffer6 Mye_Tpu provide some predefined Goto Buffer:' Gold-m is binded to go to main buffer. = Gold-p is binded to perform a assign, the first hit, the keyo. is after binded to go to the current buffer.4 Gold-- is binded to perform any assign with prompt.> Gold-= is binded to go to last visited buffer. ( Goto Last ).: Gold-Ctrl-M ( Return ) is binded to go to Message buffer., Gold-Ctrl-W is binded to go to Show buffer.+ Gold-Ctrl-D is binded to go to Dcl buffer.n, Gold-Ctrl-H is binded to go to Help buffer.= Gold-Ctrl-B is binded to Show buffers ( Go to buffer list ).. Gold-Ctrl-V is binded to Show System buffers. Related topics:* Get_Log Get_Lis Goto_Last Go_Buffery  MYE_TPU.BCK77 [WORK.BER]MYE_TPU.HLP;1Pf!----------------------------e 1 Go_Buffer  MYE_TPU Go_BufferK Key is binded for going to buffer of mnemonique name, for sample:_M main for main buffer ( the first buffer ), pag a secondary, log the buffere2 of log file, lis the buffer of listing file ... Related topics:2 Assign_Go_Buffer Get_Log Get_Lis Goto_Last!---------------------------- 1 Blue_Keypad MYE_TPU Blue_Keypad-1 The Blue keypad is toggle with F20 key,tK With Blue Keypad you can access more keys than your eyes can see.t!----------------------------T1 Date MYE_TPU Date* Out the date of the day in text, GOLD-G out "30/10/90", GOLD-G / Blue out "30-OCT-1990 15:36:24.94" 2 Bye_Tpu  Two procedures : Mye_Date out "30/10/90"* Mye_Fr_Date out "30-OCT-1990 15:38:47.19"!----------------------------t 1 Make_Charv MYE_TPU Make_Char E Some characteres are'nt easy to hit on particular keyboard,l. With a Vaxmate and French keyboard : key F7 are binded to "|" C key F8 are binded to "~" ( the control-alternate 1 doesn't work ).tH You can make similar assign by putting in a Tpu$Command file :# Define_Key ( "Copy_Text ( '|' )" ,  F7 ,_! "Mye_Tpu Make_Char (Char |)" , Mye_K_Keys_Name ) ;C With replacing |, and F7 by the char and the key of your choice.r!---------------------------- 1 Make_Signature MYE_TPU Make_Signature6 Binded to key Gold-} make "Berenguier Alain"z@X0 MYE_TPU.BCK77 [WORK.BER]MYE_TPU.HLP;1PJ Of course you have to customize this key with your name. You can5 make this in a Tpu$Command file with the sentence:_+ Define_Key ( "Copy_Text ( 'Your Name' )" , Key_Name ( '}', Shift_Key ) ,) "Mye_Tpu Make_Signature (Signature)" ,a Mye_K_Keys_Name ) ;!---------------------------- 1 Mye_Cmd- MYE_TPU Mye_CmdpF Mye_Tpu provide one command parser, witch supplement the eveE parser. Some of commands can supersed the eve commands for special F purpose. If you want disable mye_tpu parser, you can make this with# gold-F20 key (toggle the parser)e( Actually superseeded commands:0 Buffer : for handling the last buffer function.0 Go_To : for handling the last buffer function.& Mark : for easy binding to one key.A Include: for handling related file specification of main buffer.e- See List Of Topics for additionals commands.l!----------------------------d 1 Toggle_Tabsr MYE_TPU Toggle_Tabs < Binded to key Gold-F14 toggle tabs visible or not.!----------------------------i 1 Toggle_Wraph MYE_TPU Toggle_WrapI7 Binded to key Gold-F12 toggle wrap on or off.l!----------------------------f 1 Word_Formatr MYE_TPU Word_FormatiG Make a word "EVE$X_KEY_MAP_LIST" or "eve$x_key_map_list" like  "Eve$X_Key_Map_List"!----------------------------l 1 Word_Space MYE_TPU Word_Space6 Make a title "Word_Space or make title" like3 "W o r d _ S p a c e o r m a k e t i t l{餰 MYE_TPU.BCK77 [WORK.BER]MYE_TPU.HLP;1P e" !----------------------------t 1 Word_Togglee MYE_TPU Word_TogglepL Toggle definition of end word beetwen standart EVE and compilation words. Binded to key Gold-F7.!---------------------------- 1 Get_Logo MYE_TPU Get_LoglE Search a log file with the same name than the main file, intJ Sys$Login directory. If the file is found, then get the file and assignM the Gold-o key to go back to this buffer; else put a message of this fact,P? and assign the Gold-o key to the assign go buffer procedure.B Related topics: Assign_Go_Buffer!----------------------------p 1 Get_LisP MYE_TPU Get_Lis I Search a listing file with the same name than the main file, in L current directory. If the file is found, then get the file and assign theM Gold-l key to go back to this buffer; else put a message of this fact, andc; assign the Gold-l key to the assign go buffer procedure.n Related topics: Assign_Go_Buffer!----------------------------d 1 Get_Ruler  MYE_TPU Get_Rulerc' Reset a predefined WPS ruler. ) Actually we have two predefined rulers :m- Number 0, ( Reset ) for programming design :e Left_Margin = 0- Tabs = every 8 columna Right_Margin = 72  Binded to Gold- key. , Number 1, ( Help ) for doc, help ... design Left_Margin = 4t Tabs = every 8 column  Right_Margin = 77- Paragraph_Indent = 11 Binded to Gold- key.o!----------------------------e 1 | MYE_TPU.BCK77 [WORK.BER]MYE_TPU.HLP;1PRGoto_Lastg MYE_TPU Goto_Last)I Binded to the key Gold-=, perform a go back to the last visitede buffer. Related topics: Assign_Go_Buffer!----------------------------- 1 Swap_CharW MYE_TPU Swap_ChartI Swap the current character with the preceding. Binded to Gold-# key.o!----------------------------k GOLD-F on Blue Keypad.!----------------------------1 Format_Indent MYE_TPU Format_IndentL Take the selected range ( or buffe}[ MYE_TPU.BCK7"7 [WORK.BER]MYE_TPU.TPU;1O9s*[WORK.BER]MYE_TPU.TPU;1+,7".9/ 4O97-7 0123KPWO:56ͧg7>h89GHJN 2@ .! Mye_Tpu.TPU ; 8-OCT-1990 15:18 ; Page 1Module Mye_Tpu Ident "V1.1-9"H!*********************************!*********!***************************4! LANG: Vaxtpu VERSION : 1.1-9 01/10/911! BUT: Extensions Pour Eve.H!-----------------------------------------------------------------------;! NAM: Mye_Tpu CMP: .......... PGM: ..........! SYS: Vax/Vms 5.3! ENT: ..........! RTN: ..........B! FNC: Ce sont les extensions ncessaires Eve, pour reproduire"! mes habitudes acquises sous EDT.D! Implemente les commandes Buffer Mark et Go_To ( supersed of eve ).! FNC: ..........! CAL: ..........!------------------------------ ! REV: 5! VER DATE OBJ AUTG! . . . . . . . . . . . .(! -9 01/10/91 Berenguier Alain@! Adding a Ctrl Key to perform Do command - for foreign terminal1! to authorize user to perform command like quit.!~m MYE_TPU.BCK7"7 [WORK.BER]MYE_TPU.TPU;1O9C(! 1-8 30/09/91 Berenguier Alain;! Implementation of Red Key ( Shift key for macro usage ).!B! 1.0-0 08/10/90 Creation Berenguier AlainG!*********************************************************************) ! Procedure Mye_Tpu_Module_Ident!! Return "V1.1-9" ;!'! EndProcedure ; ! Mye_Tpu_Module_Ident .! Mye_Tpu.TPU ; 8-OCT-1990 15:18 ; Page 2!++! Table of Contents !! Mye_Tpu.Tpu! 8-OCT-1990 15:27!#! Procedure name Page Description$! -------------- ---- ------------!6! Mye_Tpu_Module_Ident 1 Identification Of Module. ! ------ Globals Variables 3 +! Mye_Cmd_Buffer 4 Position On Buffer..! Mye_Return_To_Last 4 Position On Buffer.<! Mye_Ass_Switch_Buf_Key 5 Define Key for switching buf.-! Mye_AssSwitchBufKey 6 -- With prompt.%! Mye_Get_Log 7 Get the log file)! Mye_Get_Lis 7 Get the listing file3! Mye_Fr_Date 8 Copy the curent date. dd/mm/yy'! Mye_Date 8 Copy the curent date.-! Mye_Permute_Char 9 Permute 2 caracteres(! Mye_Blancs 9 Make AAAA -> A A A A2! Mye_Toggle_Tab 10 Toggle tabs visible or not/! Mye_Word_Toggle 10 Toggle definition word4! Mye_Word_Format 11 Make abs$aa_cc -> Abs$Aa_Cc2! Mye_Chgcase 13 Change case ( lower | upper )3! Mye_Blue_Toggle 15 Active or not blue keypad.'! Mye_Cmd_Mark 16 Mark with prompt.)! Mye_Cmd_Go_To 17 Go to with prompt.&! Mye_Key 18 My Keys definitions.0! Mye_q; MYE_TPU.BCK7"7 [WORK.BER]MYE_TPU.TPU;1O9JKeypad_Status_Field 25 Keypad Indicator)! Mye_Tpu_Module_Pre_Init 26 Pre_Init.!! Mye_Tpu_Module_Init 26 Init.!-- ! Mye_Tpu.TPU ; Page 3Constant2 Mye_K_Keys_Name := "Mye_Keys" , ! Name Of Keypad< Mye_K_Blue_Keys_Name := "Blue_Keys" , ! Name Of Blue Keypad: Mye_K_Red_Keys_Name := "Red_Keys" ; ! Name Of Blue KeypadVariable( Mye_X_Last_Buffer , ! Last seen buffer) Mye_X_Blue_Actif , ! Toggle Blue Keypad- Mye_X_Current_Word_Definition , ! For toggle Mye_Cmd_Arg1_Buffer , Mye_Cmd_Arg1_Mark , Mye_Cmd_Arg1_Go_To ; ! Mye_Tpu.TPU ; Page 4Procedure Mye_Cmd_Buffer ( ; Q_New_Buffer_Name ) ;Local New_Buffer_Name , New_Buf , Cur_Buf ;/If ( Q_New_Buffer_Name = Tpu$K_Unspecified ) Or ( Q_New_Buffer_Name = "" ) Then If Not Eve$Prompt_String ( "" , New_Buffer_Name ,( Message_Text ( Eve$_Bufnam, 1 ) ,. Message_Text ( Eve$_Bufnotswitch, 0 ) ) Then Eve$Learn_Abort; Return ( FALSE ) ; Endif ; Else' New_Buffer_Name := Q_New_Buffer_Name ; Endif ;/Cur_Buf := Get_Info ( Current_Buffer, "Name") ; Eve_Buffer ( New_Buffer_Name ) ;0New_Buf := Get_Info ( Current_Buffer, "Name" ) ;If Cur_Buf <> New_Buf Then Mye_X_Last_Buffer := Cur_Buf ; Endif ;EndProcedure ; ! Mye_Cmd_Buffer!--------------------Procedure Mye_Return_To_Last Local Cur_Buf ;7 If Get_Info ( Mye_X_Last_Buffer, "Type") = UNSPECIFIED Then) Message ( "Unspecified Last Buffer" ) ;: Mye_X_Last_Bufl,; MYE_TPU.BCK7"7 [WORK.BER]MYE_TPU.TPU;1O9u fer := Get_Info (current_buffer, "name") ; Else0 Cur_Buf := Get_Info (current_buffer, "name") ;! If Cur_Buf <> Mye_X_Last_Buffer Then% Eve_Buffer ( Mye_X_Last_Buffer ) ;! Mye_X_Last_Buffer := Cur_Buf ; Endif ; Endif ;#Endprocedure ; ! Mye_Return_To_Last!-------------------- ! Mye_Tpu.TPU ; Page 5@Procedure Mye_Ass_Switch_Buf_Key ! Define Key for switching buf ( Letter_Keybu , ! Key Letter+ Mnemo_Name_Buf , ! Mnemonique Name buf! Buf_Number ) ; ! 0 = Current Local Loop_Buffer , Loop_Buffer_Name , Z_Goto , Buf_Count ;=Z_Goto := "Mye_Tpu Go_Buffer (Goto_" + Mnemo_Name_Buf + ")" ;If Buf_Number = 0 Then8 Loop_Buffer_Name := Get_Info (current_buffer, "name") ;< Define_Key ( "Mye_Cmd_Buffer ('" + Loop_Buffer_Name + "')",( Key_Name ( Letter_Keybu, Shift_Key ), Z_Goto, Mye_K_Keys_Name ) ; Else, Loop_Buffer := Get_Info (BUFFERS, "first"); Buf_Count := 0 ; Loop Exitif Loop_Buffer = 0 ;: Loop_Buffer_Name := Get_Info ( Loop_Buffer, "name") ;- If Get_Info ( Loop_Buffer, "system") = 0 Then Buf_Count := Buf_Count + 1 ; If Buf_Count = Buf_Number Then Define_Key (2 "Mye_Cmd_Buffer ('" + Loop_Buffer_Name + "')",) Key_Name ( Letter_Keybu, Shift_Key ), Z_Goto, Mye_K_Keys_Name ) ; Exitif 1 ; Endif ;%! Copy_Text ( Loop_Buffer_Name ) ;! Split_Line ; Endif ;0 Loop_Buffer := Get_Info (BUFFERS, "next") ; Ox MYE_TPU.BCK7"7 [WORK.BER]MYE_TPU.TPU;1O9@ Endloop ; Endif ;'Endprocedure ; ! Mye_Ass_Switch_Buf_Key!-------------------- ! Mye_Tpu.TPU ; Page 6>Procedure Mye_AssSwitchBufKey ! Define Key for switching buf$ ( ; Q_Letter_Keybu , ! Key Letter/ Q_Mnemo_Name_Buf ) ; ! Mnemonique Name buf Local  Letter_Keybu , Mnemo_Name_Buf ;,If ( Q_Letter_Keybu = Tpu$K_Unspecified ) Or ( Q_Letter_Keybu = "" ) Then If Not Eve$Prompt_String ( "" , Letter_Keybu , "Key Letter : " , "La lettre est requise" ) Then Eve$Learn_Abort; Return ( FALSE ) ; Endif ; Else! Letter_Keybu := Q_Letter_Keybu ; Endif ;.If ( Q_Mnemo_Name_Buf = Tpu$K_Unspecified ) Or ( Q_Mnemo_Name_Buf = "" ) Then If Not Eve$Prompt_String ( "" , Mnemo_Name_Buf , "Nom mnemonique : " ,# "Le mnemonique est requis" ) Then Eve$Learn_Abort; Return ( FALSE ) ; Endif ; Else% Mnemo_Name_Buf := Q_Mnemo_Name_Buf ; Endif ;<Mye_Ass_Switch_Buf_Key ( Letter_Keybu, Mnemo_Name_Buf, 0 ) ;$EndProcedure ; ! Mye_AssSwitchBufKey!-------------------- ! Mye_Tpu.TPU ; Page 7Procedure Mye_Get_LogLocal Name_Of_Log , Input_Fname , Input_File ;6Input_File := Get_Info ( Command_Line, "File_Name" ) ;8Input_Fname := File_Parse ( Input_File, "", "", Name ) ;DName_Of_Log := File_Search ( Input_Fname, "Sys$Scratch:.Log", "" ) ;If Name_Of_Log = ""Then# Message ( "Log file not found" ) ;: Define_Key ( "Mye_Ass_Switch_Buf_Key ( 'obc\ MYE_TPU.BCK7"7 [WORK.BER]MYE_TPU.TPU;1O9L', 'Log', 0 )" , Key_Name ( 'o', Shift_Key ),, "Mye_Tpu Assign_Go_Buffer (Assign Log)" , Mye_K_Keys_Name ) ;Else Eve_Get_File ( Name_Of_Log ) ;+ Mye_Ass_Switch_Buf_Key ( 'o', 'Log', 0 ) ;Endif ;Endprocedure ; ! Mye_Get_Log!--------------------!Procedure Mye_Get_LisLocal Name_Of_Lis , Input_Fname , Input_File ;6Input_File := Get_Info ( Command_Line, "File_Name" ) ;8Input_Fname := File_Parse ( Input_File, "", "", Name ) ;8Name_Of_Lis := File_Search ( Input_Fname, ".Lis", "" ) ;If Name_Of_Lis = ""Then' Message ( "Listing file not found" ) ;: Define_Key ( "Mye_Ass_Switch_Buf_Key ( 'l', 'Lis', 0 )" , Key_Name ( 'l', Shift_Key ),, "Mye_Tpu Assign_Go_Buffer (Assign Lis)" , Mye_K_Keys_Name ) ;Else Eve_Get_File ( Name_Of_Lis ) ;+ Mye_Ass_Switch_Buf_Key ( 'l', 'Lis', 0 ) ;Endif ;Endprocedure ; ! Mye_Get_Lis!--------------------! ! Mye_Tpu.TPU ; Page 8Procedure Mye_Fr_Date ;!! Make one date like "26/10/90"!Localy This_Day_One ,O This_Day_Two ,  Resu_String , This_Date , This_Day , This_Month ,* This_Year ;*1This_Date := Substr ( Fao ( "!%D", 0 ), 1, 11 ) ;x(This_Day := Substr ( This_Date, 1, 2 ) ;+This_Day_One := Substr ( This_Day, 1, 1 ) ;EIf This_Day_One = " "- Then, This_Day_Two := Substr ( This_Day, 2, 1 ) ;! This_Day := "0" + This_Day_Two ;. Endif ;G*This_Year := Substr ( This_Date, 10, 2 ) ;Case Substr ( This_Date, 4, 3 ). ["JAN"]: This_Month := "01" ; ["FEB"]: Thisi MYE_TPU.BCK7"7 [WORK.BER]MYE_TPU.TPU;1O93_Month := "02" ; ["MAR"]: This_Month := "03" ; ["APR"]: This_Month := "04" ; ["MAY"]: This_Month := "05" ; ["JUN"]: This_Month := "06" ; ["JUL"]: This_Month := "07" ; ["AUG"]: This_Month := "08" ; ["SEP"]: This_Month := "09" ; ["OCT"]: This_Month := "10" ; ["NOV"]: This_Month := "11" ; ["DEC"]: This_Month := "12" ;! [OUTRANGE]: This_Month := "MM" ; Endcase ;r>Resu_String := This_Day + "/" + This_Month + "/" + This_Year ;Copy_Text ( Resu_String ) ;oEndprocedure ; ! Mye_Fr_Date!-------------------- Procedure Mye_Date!I.! Make one date like "26-OCT-1990 17:41:53.61"!e Local In_date ;In_date := Fao ( '!%D', 0 ) ; Copy_Text ( In_Date ) ;Return ( TRUE ) ;*Endprocedure ; ! Mye_Date*!-------------------- ! Mye_Tpu.TPU ; Page 9Procedure Mye_Permute_Char! ! Make BA like ABe!uLocal This_Char ;$This_Char := Erase_Character ( 1 ) ;Cursor_Horizontal ( -1 ) ;Copy_Text ( This_Char ) ; !Endprocedure ; ! Mye_Permute_Char7!-------------------- Procedure Mye_Blancs ( ; Nbn_blancs ) ;!-! Make "COCO" like "C O C O"!eLocal Nbr_Blancs ;'If Not Eve$Prompt_Number ( Nbn_Blancs ,  Nbr_Blancs , "Nombre de blancs :" , "Le nombre est requis" ) Then Eve$Learn_Abort; Return ( FALSE ) ; Else Looph Cursor_Horizontal ( 1 ) ;e Copy_Text ( " " ) ;t! Nbr_Blancs := Nbr_Blancs - 1 ; g Exitif Nbr_Blancs = 0 ;7 Endloop ; Endif ;Endprocedure ; ! Mye_Blancs !-------------------- y$! Mye_Tps] MYE_TPU.BCK7"7 [WORK.BER]MYE_TPU.TPU;1O9?u.TPU ; Page 10Procedure Mye_Toggle_Tab!e! Toggle Tabs visible or not! LocalA This_Window , The_Text ;TThis_Window := Current_Window ;t.The_Text := Get_Info ( This_Window, "Text" ) ; Case The_TextF. [BLANK_TABS] : Eve_Set_Tabs ( "Visible" ) ;0 [GRAPHIC_TABS] : Eve_Set_Tabs ( "InVisible" ) ; Endcase ;lEndprocedure ; ! Mye_Toggle_Tabd!--------------------1Procedure Mye_Word_Togglem!T:! Toggle word definition between initial eve and "compile"!i$If Mye_X_Current_Word_Definition = 1Then Eve$Restore_Word_Separators ;% Mye_X_Current_Word_Definition := 0 ;eElseB Eve$Add_Word_Separators ( "'!@#$%^&*()_-+=~`{[}]:;|\/<,>.?""" ) ;% Mye_X_Current_Word_Definition := 1 ;eEndif ;d Endprocedure ; ! Mye_Word_Toggle!--------------------e d$! Mye_Tpu.TPU ; Page 11Procedure Mye_Word_Formata!b8! Make eve$$restore_position like Eve$$Restore_Position !iLocalT Eow_Mark ,y Text_Mark , Char_Range ,i Word_Range ,t Saved_Mark ,C Resu_Search , Pat_Any , Pat_Notany ;eOn_Error [TPU$_CONTROLC]:F Eve$$Restore_Position ( Saved_Mark ) ; ! restore free cursor position Eve$Learn_Abort ; Abort ; [OTHERWISE]:' Eve$$Restore_Position ( Saved_Mark ) ;T Endon_Error ;d$Saved_Mark := Mark ( Free_Cursor ) ;If Eve$Eol_Nopad_DeleteSThen Return (TRUE);Endif;0If Not Get_Info ( Current_Window, "Beyond_Eob" )Then9 If Not ( Get_Info ( Current_Window, "Before_Bol" ) Or_3 Get_Info ( Current_Window, "Middle_2 MYE_TPU.BCK7"7 [WORK.BER]MYE_TPU.TPU;1O9Of_Tab" ) )w Then Position (TEXT); ! snap to text Endif ; Else# Position (TEXT); ! snap to textv% Saved_Mark := Mark (FREE_CURSOR); Endif ;fText_Mark := Mark ( None ) ;(If Text_Mark = End_Of ( Current_Buffer )Then2 Move_Vertical ( 1 ) ; ! force an error messageEndif ;If Current_Character <> ""Then Eve$End_Of_Word ;L Move_Horizontal ( -1 ) ;Endif ;L u$! Mye_Tpu.TPU ; Page 12Eow_Mark := Mark ( None ) ;s:Word_Range := Create_Range ( Text_Mark, Eow_Mark, NONE ) ;#Change_Case ( Word_Range, Upper ) ;=Position ( Text_Mark ) ;Move_Horizontal ( 1 ) ;<>Word_Range := Create_Range ( Mark ( None ), Eow_Mark, None ) ;$Change_Case ( Word_Range, INVERT ) ;Pat_Any := Any ( "$_.", 1 ) ;#Pat_Notany := Notany ( "$_.", 1 ) ;Loop2 Resu_Search := Search_Quietly ( Pat_Any, Forward, Exact, Word_Range ) ; Exitif Resu_Search = 0 ;s Position ( Resu_Search ) ;b? Word_Range := Create_Range ( Mark ( None ), Eow_Mark, None ) ; 5 Resu_Search := Search_Quietly ( Pat_Notany, Forward,, Exact, Word_Range ) ; Exitif Resu_Search = 0 ;B Position ( Resu_Search ) ;eD Char_Range := Create_Range ( Mark ( None ), Mark ( None ), None ) ;% Change_Case ( Char_Range, Invert ) ;c? Word_Range := Create_Range ( Mark ( None ), Eow_Mark, None ) ;p Endloop ;ePosition ( Saved_Mark ) ;tReturn (TRUE); Endprocedure ; ! Mye_Word_Format!--------------------f :$! Mye_Tpu.TPU ; Page 13Procedure Mye_Chgcase  ( Case_Key_Parm ) ; s1 MYE_TPU.BCK7"7 [WORK.BER]MYE_TPU.TPU;1O9>L!+/! Like EDT -- Change case -- but with parameter,!-2! 0,1,2 { LOWER | UPPER | INVERT }Local Case_Key , Saved_Mark ,f Target ;;On_Error [OTHERWISE]: Endon_Error ;f#Case_Key := Int ( Case_Key_Parm ) ;o'If ( Case_Key < 0 ) Or ( Case_Key > 2 )tThen" Message ( "Invalide Case_Key" ) ;Endif ;e9If Not Eve$Declare_Intention ( Eve$K_Action_Change_Case )(Then Return (FALSE) ;Endif ;n;Target := Eve$Selection (FALSE) ; ! check for active selecteIf Target <> 0Then Case Case_Key From 0 To 2A& [0] : Change_Case ( Target, Lower ) ;& [1] : Change_Case ( Target, Upper ) ;' [2] : Change_Case ( Target, Invert ) ;K Endcase ;g Eve$Clear_Message ;b Return (TRUE) ; Endif ;N u$! Mye_Tpu.TPU ; Page 14Saved_Mark := Mark (NONE) ; )If Saved_Mark = End_Of ( Current_Buffer )bThen" If Current_Direction = FORWARD Then Position ( Saved_Mark ) ; Eve$Learn_Abort ; Return (FALSE) ; Endif ; Else4 ! change case of current character (if non-null)" If ( Current_Character <> "" ) Then Case Case_Key From 0 To 2= [0] : Change_Case (Create_Range (Mark (NONE), Mark (NONE),_ NONE), Lower ) ;= [1] : Change_Case (Create_Range (Mark (NONE), Mark (NONE),  NONE), Upper ) ;= [2] : Change_Case (Create_Range (Mark (NONE), Mark (NONE),  NONE), Invert ) ;e Endcase ; Endif ; Endif ;FIf Current_Direction = FORWARDThen Move_Horizontal (1) ; Return (TRUE) ;_Else2 If Sf# MYE_TPU.BCK7"7 [WORK.BER]MYE_TPU.TPU;1O9aved_Mark <> Beginning_Of (Current_Buffer) Then Move_Horizontal (-1) ;- Return (TRUE) ; Else Position (Saved_Mark) ; Eve$Learn_Abort ; Return (FALSE) ;N Endif ;Endif ;aEndprocedure ; ! Mye_Chgcase!--------------------d n$! Mye_Tpu.TPU ; Page 15Procedure Mye_Blue_Toggle"!e'! Toggle Activity or not of Blue KeypadF!eIf Mye_X_Blue_Actif = 1)Then% Remove_Key_Map ( Eve$X_Key_Map_List,o! Mye_K_Blue_Keys_Name, ALL ) ;  Mye_X_Blue_Actif := 0 ;Else= ! Keep the End User keypad "Eve$User_Keys" always the first.s% Remove_Key_Map ( Eve$X_Key_Map_List,K Eve$X_User_Keys, ALL ) ;0 Add_Key_Map ( Eve$X_Key_Map_List, Eve$Kt_First, Mye_K_Blue_Keys_Name ) ;0 Add_Key_Map ( Eve$X_Key_Map_List, Eve$Kt_First, Eve$X_User_Keys ) ; Mye_X_Blue_Actif := 1 ;Endif ;aEve$Update_Status_Lines ;u Endprocedure ; ! Mye_Blue_Toggle!--------------------_ m$! Mye_Tpu.TPU ; Page 16Procedure Mye_Cmd_Mark ( ; Q_Mark ) ;Local A_Mark ;)$If ( Q_Mark = Tpu$K_Unspecified ) Or ( Q_Mark = "" ) Then If Not Eve$Prompt_String ( "" , A_Mark ,', Message_Text ( Eve$_Markprompt, 1 ) ,+ Message_Text ( Eve$_Notmarked, 0 ) ), ThenK Eve$Learn_Abort; Return ( FALSE ) ; Endif ; Else A_Mark := Q_Mark ;l Endif ; Eve_Mark ( A_Mark ) ;eEndProcedure ; ! Mye_Cmd_Mark-!--------------------  _$! Mye_Tpu.TPU ; Page 17Procedure Mye_Cmd_Go_Too ( ; Q_Mark ) ;Local  ጇ MYE_TPU.BCK7"7 [WORK.BER]MYE_TPU.TPU;1O9U! New_Buf , Cur_Buf , A_Mark ;a$If ( Q_Mark = Tpu$K_Unspecified ) Or ( Q_Mark = "" ) Then If Not Eve$Prompt_String ( "" , A_Mark ,D, Message_Text ( Eve$_Gotoprompt, 1 ) ,( Message_Text ( Eve$_Nomark, 0 ) ) Then1 Eve$Learn_Abort; Return ( FALSE ) ; Endif ; Else A_Mark := Q_Mark ;) Endif ;a0Cur_Buf := Get_Info ( Current_Buffer, "Name" ) ;Eve_Go_To ( A_Mark ) ;0New_Buf := Get_Info ( Current_Buffer, "Name" ) ;If Cur_Buf <> New_Buf; Then Mye_X_Last_Buffer := Cur_Buf ;] Endif ;hEndProcedure ; ! Mye_Cmd_Go_To!--------------------h M$! Mye_Tpu.TPU ; Page 18.Procedure Mye_Show_Key ! Quicky help on a key ( ; Key_String )Local The_Key, The_Name ;;(If ( Key_String = Tpu$K_Unspecified ) Or ( Key_String = "" )ThenG The_Key := Eve$Prompt_Key ( Message_Text ( Eve$_Keytodescr, 1 ) ) ;* The_Name := Eve$Key_Name ( The_Key ) ;Else The_Name := Key_String ;Endif ; Eve_Show_Key ( The_Name ) ;a!Endprocedure ; ! Mye_Tpu_Show_Keyr!--------------------o d$! Mye_Tpu.TPU ; Page 19Procedure Mye_KeyLocal Mye_Keys ;'0Mye_Keys := Create_Key_Map ( Mye_K_Keys_Name ) ;5Mye_Keys := Create_Key_Map ( Mye_K_Blue_Keys_Name ) ;4Mye_Keys := Create_Key_Map ( Mye_K_Red_Keys_Name ) ;!_ ! Blue - Key$Define_Key ( "Mye_Blue_Toggle", F20,' "Mye_Tpu Blue_Keypad (Blue_Toggle)" ,u Mye_K_Keys_Name ) ;;$Define_Key ( "Mye_Blue_Toggle", F20,' "Mye_Tpu Blue_Keypad (Blue_Toggle)" ,- ̰= MYE_TPU.BCK7"7 [WORK.BER]MYE_TPU.TPU;1O9$Mye_K_Blue_Keys_Name ) ;! ! Red - Keyn>Define_Key ( 'Execute ( Read_Key, Mye_K_Red_Keys_Name )' , F9, "Mye_Tpu Macro (Red_Key)" ,N Mye_K_Keys_Name ) ;_!n ,$! Mye_Tpu.TPU ; Page 20O!****************************************************************************** O!********** B L U E K E Y P A D **********:O!******************************************************************************e!eDefine_Key ( "Mye_Date" ,- Key_Name ( 'g', Shift_Key ),  "Mye_Tpu Date (Date)" , Mye_K_Blue_Keys_Name ) ;o!e"Define_Key ( "Mye_Chgcase ( 0 )" , F7 , "Eve Change_Case (Lower)" ,o Mye_K_Blue_Keys_Name ) ;"Define_Key ( "Mye_Chgcase ( 1 )" , Key_Name ( F7 , Shift_Key ) ,A "Eve Change_Case (Upper)" ," Mye_K_Blue_Keys_Name ) ;!_%Define_Key ( "Eve_Mark ( 'Mrk_A' )" ,p Ctrl_A_Key , "Eve Mark (Mark_A)" ,- Mye_K_Blue_Keys_Name ) ;*Define_Key ( "Mye_Cmd_Go_To ( 'Mrk_A' )" , Key_Name ( 'a' , Shift_Key ) , "Eve Go_To (Go_To_A)" ,_ Mye_K_Blue_Keys_Name ) ;!o%Define_Key ( "Eve_Mark ( 'Mrk_B' )" ,r Ctrl_B_Key , "Eve MArk (Mark_B)" ,_ Mye_K_Blue_Keys_Name ) ;*Define_Key ( "Mye_Cmd_Go_To ( 'Mrk_B' )" , Key_Name ( 'b' , Shift_Key ) , "Eve Go_To (Go_To_B)" ,g Mye_K_Blue_Keys_Name ) ;!%Define_Key ( "Eve_Mark ( 'Mrk_D' )" ,r Ctrl_D_Key , "Eve Mark (Mark_D)" ,$ Mye_K_Blue_Keys_Name ) ;*Define_Key ( "Mye_Cmd_Go_To ( 'Mrk_D' )" , Key_Name ( 'd' , Shift_Key ) , "Eve Go_To (Go_To_D)" , )z MYE_TPU.BCK7"7 [WORK.BER]MYE_TPU.TPU;1O9&'Mye_K_Blue_Keys_Name ) ;!tDefine_Key ( "Eve_Paginate" ,U Key_Name ( 'p' , Shift_Key ) , "Eve Paginate (Paginate)" ,r Mye_K_Blue_Keys_Name ) ;!A t$! Mye_Tpu.TPU ; Page 21O!******************************************************************************uO!********** KEYPAD **********GO!******************************************************************************i! *** 1 ) Go ActionODMye_Ass_Switch_Buf_Key ( 'm', 'Main', 1 ) ; ! First call make assign;!Define_Key ( "Mye_Ass_Switch_Buf_Key ( 'm', 'Main', 1 )" ,i ! Key_Name ( 'm', Shift_Key ),&! "Assign Main", Mye_K_Keys_Name ) ;!9Define_Key ( "Mye_Ass_Switch_Buf_Key ( 'p', 'Pag', 0 )" ,r Key_Name ( 'P', Shift_Key ),i, "Mye_Tpu Assign_Go_Buffer (Assign Pag)" , Mye_K_Keys_Name ) ;! Define_Key ( "Mye_Get_Log" , Key_Name ( 'o', Shift_Key ), "Mye_Tpu Get_Log (Get_Log)" , Mye_K_Keys_Name ) ;!kDefine_Key ( "Mye_Get_Lis" , Key_Name ( 'l', Shift_Key ),o "Mye_Tpu Get_Lis (Get_Lis)" , Mye_K_Keys_Name ) ;!i#Define_Key ( "Mye_Return_To_Last" ,  Key_Name ( '=', Shift_Key ),e$ "Mye_Tpu Goto_Last (Goto_Last)" , Mye_K_Keys_Name ) ;!N$Define_Key ( "Mye_AssSwitchBufKey" , Key_Name ( '-', Shift_Key ), / "Mye_Tpu Assign_Go_Buffer (Remake Assign)" ,t Mye_K_Keys_Name ) ;! Define_Key ( "Mye_Cmd_Mark" ,a Key_Name ( '.' , Shift_Key ) , "Eve Mark (Mark_?)" ,e Mye_K_Keys_Name ) ; !EDefine_Key ( "Mye_Cmd_Go_To"YD MYE_TPU.BCK7"7 [WORK.BER]MYE_TPU.TPU;1O96* , Key_Name ( '<' , Shift_Key ) , "Eve Go_To (Go_To_?)" ,R Mye_K_Keys_Name ) ;S!c #! Mye_Tpu.TPU ; Page 22C! **** Goto systems buffers-Define_Key ( "Mye_Cmd_Buffer ( 'Messages' )",a& Key_Name ( Ctrl_M_Key, Shift_Key ),# "Mye_Tpu Go_Buffer (Goto_Msg)" ,w Mye_K_Keys_Name ) ;!e)Define_Key ( "Mye_Cmd_Buffer ( 'Show' )",E& Key_Name ( Ctrl_W_Key, Shift_Key ),$ "Mye_Tpu Go_Buffer (Goto_Show)" , Mye_K_Keys_Name ) ;!(Define_Key ( "Mye_Cmd_Buffer ( 'Dcl' )",& Key_Name ( Ctrl_D_Key, Shift_Key ),# "Mye_Tpu Go_Buffer (Goto_Dcl)" ,  Mye_K_Keys_Name ) ;! )Define_Key ( "Mye_Cmd_Buffer ( 'Help' )",f& Key_Name ( Ctrl_H_Key, Shift_Key ),# "Mye_Tpu Go_Buffer (Goto_Hlp)" ,n Mye_K_Keys_Name ) ;!( Define_Key ( "Eve_Show_Buffers",& Key_Name ( Ctrl_B_Key, Shift_Key )," "Show_Buffers (Show_Buffers)" , Mye_K_Keys_Name ) ;!n'Define_Key ( "Eve_Show_System_Buffers",n& Key_Name ( Ctrl_V_Key, Shift_Key ),) "Show_System_Buffers (Show_Sys_Buf)" ,> Mye_K_Keys_Name ) ;! +! Commands, Insert Here, Spell == no actionw )$! Mye_Tpu.TPU ; Page 23! *** 2 ) Edit Action!Define_Key ( "Mye_Permute_Char" ,  Key_Name ( '#', Shift_Key ), ' "Mye_Tpu Swap_Char (Permute Char)" ,p Mye_K_Keys_Name ) ;!4Define_Key ( "Mye_Blancs" ,  Key_Name ( 'b', Shift_Key ),t& "Mye_Tpu Word_Space (Word_Space)" , Mye_K_Keys_Name ) ;!sDefine_Key ( "Mye_Fr_Date" , Key_Name ( 'g', Shift_Key ), "Mye_Tpu Date (Fr_Date)" ޗ3| MYE_TPU.BCK7"7 [WORK.BER]MYE_TPU.TPU;1O9-,e Mye_K_Keys_Name ) ;!( Define_Key ( "Mye_Word_Format" , Key_Name ( 'f', Shift_Key ),a( "Mye_Tpu Word_Format (Word_Format)" , Mye_K_Keys_Name ) ;!M Define_Key ( "Eve_Center_Line" , Key_Name ( 'c', Shift_Key ) ,e# "Eve Center_Line (Center_Line)" ,, Mye_K_Keys_Name ) ;a! 1Define_Key ( "Copy_Text ( 'Berenguier Alain' )" ,E Key_Name ( '}', Shift_Key ) ,( "Mye_Tpu Make_Signature (Signature)" , Mye_K_Keys_Name ) ;! "Define_Key ( "Eve_Find_Selected" , Key_Name ( '>' , Shift_Key ) ,' "Eve Find_Selected (Find_Selected)" ,- Mye_K_Keys_Name ) ; !e4Define_Key ( Eve$$Kt_Return + "Eve$$Display_Ruler" , Key_Name ( 'n' , Shift_Key ) , "KEYPAD ruler" , Mye_K_Keys_Name ) ;-!-4Define_Key ( Eve$$Kt_Return + "Eve_Replace('','')" , Key_Name ( ";", Shift_Key ) , "Replace" ,t Mye_K_Keys_Name ) ;F!e5! Key for char unwritable bye Vt240 Vaxmate emulation$"Define_Key ( "Copy_Text ( '|' )" , F7 , "Mye_Tpu Make_Char (Char |)" , Mye_K_Keys_Name ) ; !r"Define_Key ( "Copy_Text ( '~' )" , F8 , "Mye_Tpu Make_Char (Char ~)" , Mye_K_Keys_Name ) ;y!A )$! Mye_Tpu.TPU ; Page 24!! *** 3 ) ==== WINDOWS Keys ====K.Define_Key ( "Shift ( Current_Window, -24 )" ,! Key_Name ( Right, Shift_Key ) ,K# "Shift_Right", Mye_K_Keys_Name) ;n-Define_Key ( "Shift ( Current_Window, 24 )" ,e Key_Name ( Left, Shift_Key ) ,# "Shift_Left", Mye_K_Keys_Name ) ; ! !Define_Key ( "Eve_Split_Window" , F17 ,a% "Split_WQ MYE_TPU.BCK7"7 [WORK.BER]MYE_TPU.TPU;1O9}*0indow", Mye_K_Keys_Name ) ;M! "Define_Key ( "Eve_Delete_Window" , Key_Name ( F17 , Shift_Key ) ,& "Delete_Window", Mye_K_Keys_Name ) ;!M Define_Key ( "Eve_Next_Buffer" , F18 , $ "Next_Buffer", Mye_K_Keys_Name ) ;! Define_Key ( "Mye_Toggle_Tab" ,E Key_Name ( F14 , Shift_Key ) ,: "Mye_Tpu Toggle_Tabs (Toggle_Tabs)", Mye_K_Keys_Name ) ;!d Define_Key ( "Mye_Word_Toggle" , Key_Name ( F7 , Shift_Key ) ,g' "Mye_Tpu Word_Toggle (Word_Toggle)" ,a Mye_K_Keys_Name ) ;B!,! *** 4 ) Misc ActionDefine_Key ( "Eve_Select_All" ,e Key_Name ( 's' , Shift_Key ) ,! "Eve Select_All (Select_All)" , Mye_K_Keys_Name ) ; Define_Key ( "Mye_Show_Key" ,, Key_Name ( 'v' , Shift_Key ) , "Eve Show_Key (Show_Key)" ,$ Mye_K_Keys_Name ) ;( Define_Key ( "Eve_Attach ('')" , F19 ,Q "Eve Attach (Attach)" ,u Mye_K_Keys_Name ) ;_Define_Key ( "Eve_Spawn ('')" ,_ Key_Name ( F19, Shift_Key ) ,u "Eve Spawn (Spawn)" , Mye_K_Keys_Name ) ;$Define_Key ( "Eve_Write_File ('')" , Key_Name ( F10, Shift_Key ) ,M "Eve Write File (Write)" , Mye_K_Keys_Name ) ;P! ! *** 5 ) Exit Action1Define_Key ( "Exit", Key_Name ( 'z', Shift_Key ),  "Exit", Mye_K_Keys_Name ) ;e2Define_Key ( "Quit", Key_Name ( 'q', Shift_Key ) , "Quit", Mye_K_Keys_Name ) ;)@! Adding a Ctrl Key to perform Do command - for foreign terminal*! to authorize incoming to perform a quit.+Define_Key ( Eve$$Kt_Return + "Eve_Do('')",i Ctrl_D_Key, "Do",h Mye_K_Keys_Name ) ;0 Tpu$K_Unspecified Then If A_Help = "?" Then!-------------< --------Mye_Macro_Mak_A_Help (" "," STRUCT_COM"," ",L" This macro find the pending of THEN or ENDIF for a command file",9" the current pointer must be on a THEN ( or ENDIF )."," ",E" A 'rz' parameter to this macro, restore the bolding an reverse",5" video attribut set by a precedent call to none."," " ) ;Return ;!-------------> -------- Else If A_Help <> "" Then% B_Help := Edit ( A_Help, Lower ) ; If A_Help = "rz" Then- Modify_Range ( Mye_X_Begin_Struct_Wr, , , None ) ;+ Modify_Range ( Mye_X_End_Struct_Wr, , , None ) ; Return ; Else% Message ( "Unknow parameters" ) ; Return ; Endif Endif ; Endif ; Endif ;!!---2Pat_White := ( Span ( Eve$Kt_Whitespace ) | "" ) ;5Pattern_Begin_End := ( LINE_BEGIN + "$" + Pat_White + ( "THEN" | "ENDIF" ) +6 ( Line_End | ( Pat_White + ( "!" | "" ) ) ) ) ;5Pattern_Begin := ( LINE_BEGIN + "$" + Pat_White + ( "THEN" ) +6 ( Line_End | ( Pat_White + ( "!" | "" ) ) ) ) ;5Pattern_End := ( LINE_BEGIN + "$" + Pat_White + ( "ENDIF" ) +6 ( Line_End | ( Pat_White + ( "!" | "" ) ) ) ) ;!---Hk MYE_TPU.BCK77 [WORK.BER]STRUCT_COM.TPU;1U *Position ( Text ) ; This_Position := Mark ( None ) ;Begin_Target := 'THEN' ;End_Target := 'ENDIF' ; Word_Range := Eve$Current_Word ;-Rg_Is_Begin := Search_Quietly ( Begin_Target,% Forward, No_Exact, Word_Range ) ;+Rg_Is_End := Search_Quietly ( End_Target,% Forward, No_Exact, Word_Range ) ;Is_Begin := Rg_Is_Begin <> 0 ;Is_End := Rg_Is_End <> 0 ;If Not Is_Begin And Not Is_EndThen Position ( This_Position ) ;D Message ( "Le curseur doit etre place sur un THEN ou un ENDIF." ) ; Return ( False ) ;Endif ; If Is_BeginThen' Mye_X_Begin_Struct_Wr := Rg_Is_Begin ; Search_Target := Pattern_end ; Target := 'ENDIF' ; Move_Direction := 1 ; Direction := Forward ; Count := 1 ;Else% Mye_X_Begin_Struct_Wr := Rg_Is_End ;! Search_Target := Pattern_begin ; Target := 'THEN' ; Move_Direction := -1 ; Direction := Reverse ;= Count := 1 ; ! May be Zero if multiple pattern on same line.Endif ;2Modify_Range ( Mye_X_Begin_Struct_Wr, , , Bold ) ;:Message ( "Recherche du " + Target + " correspondant." ) ;Position ( This_Position ) ;Eve_Start_Of_Line ;! Move_Horizontal (1);"Move_Vertical ( Move_Direction ) ;Position ( Line_Begin ) ;Loop4 Found_Range := Search_Quietly ( Pattern_Begin_End , Direction , No_Exact ) ;N!>D Message ( "D- We have one found_Range : '" + Str ( Found_Range ) + "'" ) ; Exitif Found_Range = 0 ; Position ( Found_Range ) ;3 Ya_Found_Range := Search_Quietly ( Search_Target, ' FORWAAjE MYE_TPU.BCK77 [WORK.BER]STRUCT_COM.TPU;1U m RD, NO_EXACT, Found_Range ) ;U!>D Message ( "D- We have **** Ya_found_Range : '" + Str ( Ya_Found_Range ) + "'" ) ; if Ya_Found_Range <> 0 thenD!>D Message ( "D- Ya_Found_Range <> 0, Count : " + Str ( Count ) ) ; Count := Count - 1 ; Exitif Count = 0 ; Else)!>D Message ( "D- Ya_Found_Range = 0" ) ; Count := Count + 1 ; Endif ;# Move_Vertical ( Move_Direction ) ; Position ( Line_Begin ) ; Endloop ; If Count <> 0ThenD Message ("Impossible de trouver le " + target + " correspondant."); Position ( This_Position ) ;Else0 Mye_X_End_Struct_Wr := Search_Quietly ( Target,* Forward, No_Exact, Found_Range ) ;# Position ( Mye_X_End_Struct_Wr ) ;4 Modify_Range ( Mye_X_End_Struct_Wr, , , Reverse ) ;-! position ( Search (any ("EBCL"), forward));Endif ;#Endprocedure ; ! Mye_Cmd_Struct_Com+!------------------------------------------ #! Mye_Struct_Com.TPU ; Page 3%Procedure Mye_Macro_Struct_Com_Init ;!E! Define and set global variable to obtain parameter in command line.!7Mye_Cmd_Arg1_Struct_Com := Mye_Cmd_Arg1_Edit ; ! String!C! Bind on key Gold-A is specialy reserved to it. ( temporary key ).#Define_Key ( "Mye_Cmd_Struct_Com" , Key_Name ( "A", Shift_Key ), "Mye_Tpu Macro (Macro)" , Mye_K_Keys_Name ) ;*Define_Key ( "Mye_Cmd_Struct_Com ('rz')" , Key_Name ( "", Shift_Key ), "Mye_Tpu Macro (Macro)" , Mye_K_Keys_Name ) ;!*Endprocedure ; ! Mye_Macro_Struct_Com_Init[w MYE_TPU.BCK77 [WORK.BER]STRUCT_PASCAL.TPU;1L `*[WORK.BER]STRUCT_PASCAL.TPU;1+,7. / 4L -7 0123KPWO 56ʠ789GHJN 2@ %! Mye_Struct_Pascal.TPU ; Page 1H!*********************************!*********!***************************4! LANG: Vaxtpu VERSION : 1.0-0 26/03/911! BUT: Extensions Pour Eve.H!-----------------------------------------------------------------------;! NAM: Struct_Pascal CMP: .......... PGM: ..........! SYS: Vax/Vms 5.3! ENT: ..........! RTN: ..........H! FNC: Macro pour checker les structures BEGIN END, LOOP CASE des .PAS! CAL: ..........!------------------------------ ! REV: 5! VER DATE OBJ AUTG! . . . . . . . . . . . .B! 1.0-0 26/03/91 Creation Berenguier Alain!! First version from JOANNES JACKG!********************************************************************** %! Mye_Struct_Pascal.TPU ; Page 2Procedure Mye_Cmd_Struct_Pascal ( ; A_Help ) ;Local B_Help , Pattern_Begin_End , Rg_Is_Beg | MYE_TPU.BCK77 [WORK.BER]STRUCT_PASCAL.TPU;1L in , Rg_Is_End , Is_Begin , Is_End , Begin_Target , End_Target , Word_Range , Found_Range , This_Position , Count , Search_Target , Target , Move_Direction , Direction ;On_ErrorH Eve$Message ("Impossible de trouver le " + Target + " correspondant."); Position ( This_Position ) ; Return ( False ) ; Endon_Error ;If A_Help <> Tpu$K_Unspecified Then If A_Help = "?" Then!-------------< --------Mye_Macro_Mak_A_Help (" "," STRUCT_COM"," ",H"  This macro find the pending of END from a BEGIN, LOOP, CASE",L" where the current pointer must be on. This is for a pascal source file"," ",E" A 'rz' parameter to this macro, restore the bolding an reverse",5" video attribut set by a precedent call to none."," " ) ;Return ;!-------------> -------- Else If A_Help <> "" Then% B_Help := Edit ( A_Help, Lower ) ; If A_Help = "rz" Then- Modify_Range ( Mye_X_Begin_Struct_Wr, , , None ) ;+ Modify_Range ( Mye_X_End_Struct_Wr, , , None ) ; Return ; Else% Message ( "Unknow parameters" ) ; Return ; Endif Endif ; Endif ; Endif ;!!---:Pattern_Begin_End := ( ( any ( Eve$$Kt_Word_Separators ) |# "}" | ")" | ":" | LINE_BEGIN ) +0 ( "BEGIN" | "LOOP" | "CASE" | "END" ) +4 ( Span ( Eve$$Kt_Word_Separators + ".;" ) | LINE_END ) ) |$ ( "{" | "}" | "(*" | "*)" ) ;!---Position ( Text ) ; This_Position := Mark ( Nod& MYE_TPU.BCK77 [WORK.BER]STRUCT_PASCAL.TPU;1L yne ) ;+Begin_Target := 'BEGIN' | 'CASE' | 'LOOP' ;End_Target := 'END' ; Word_Range := Eve$Current_Word ;-Rg_Is_Begin := Search_Quietly ( Begin_Target,% Forward, No_Exact, Word_Range ) ;+Rg_Is_End := Search_Quietly ( End_Target,% Forward, No_Exact, Word_Range ) ;Is_Begin := Rg_Is_Begin <> 0 ;Is_End := Rg_Is_End <> 0 ;If Not Is_Begin And Not Is_EndThen Position ( This_Position ) ; Message K("Le curseur doit etre place sur un BEGIN, un CASE, un LOOP ou un END." ) ; Return ( FALSE ) ;Endif ; If Is_BeginThen' Mye_X_Begin_Struct_Wr := Rg_Is_Begin ; Search_Target := End_Target ; Target := 'END' ; Move_Direction := 1 ; Direction := Forward ; Count := 1 ;Else% Mye_X_Begin_Struct_Wr := Rg_Is_End ; Search_Target := Begin_Target ;" Target := 'BEGIN, CASE OU LOOP' ; Move_Direction := -1 ; Direction := Reverse ; Count := 0 ;Endif ;2Modify_Range ( Mye_X_Begin_Struct_Wr, , , Bold ) ;7Message ("Recherche du " + target + " correspondant.");Position ( This_Position ) ;Move_Horizontal ( 1 ) ;LoopA Found_Range := Search_Quietly ( Pattern_Begin_End, Direction ) ; Exitif Found_Range = 0 ; Position ( Found_Range ) ;8 Found_Range := Search_Quietly ( Search_Target, Forward, No_Exact, Found_Range ) ; If Found_Range <> 0 Then Count := Count - 1 ; Exitif Count = 0 ; Else Count := Count + 1 ; Endif ;% Move_Horizontal ( Move_Direction ) ; Endloop ; If Count <> 0ThenD Message ("Impossible s MYE_TPU.BCK77 [WORK.BER]STRUCT_PASCAL.TPU;1L * de trouver le " + target + " correspondant."); Position ( This_Position ) ;Else% Mye_X_End_Struct_Wr := Found_Range ;# Position ( Mye_X_End_Struct_Wr ) ;4 Modify_Range ( Mye_X_End_Struct_Wr, , , Reverse ) ;Endif ;&Endprocedure ; ! Mye_Cmd_Struct_Pascal+!------------------------------------------ %! Mye_Struct_Pascal.TPU ; Page 3(Procedure Mye_Macro_Struct_Pascal_Init ;!E! Define and set global variable to obtain parameter in command line.!:Mye_Cmd_Arg1_Struct_Pascal := Mye_Cmd_Arg1_Edit ; ! String!C! Bind on key Gold-A is specialy reserved to it. ( temporary key ).&Define_Key ( "Mye_Cmd_Struct_Pascal" , Key_Name ( "A", Shift_Key ), "Mye_Tpu Macro (Macro)" , Mye_K_Keys_Name ) ;-Define_Key ( "Mye_Cmd_Struct_Pascal ('rz')" , Key_Name ( "", Shift_Key ), "Mye_Tpu Macro (Macro)" , Mye_K_Keys_Name ) ;!-Endprocedure ; ! Mye_Macro_Struct_Pascal_Init MYE_TPU.BCK77 [WORK.BER]MAK_HLP_CC.TPU;1H *[WORK.BER]MAK_HLP_CC.TPU;1+,7. / 4H -7 0123KPWO 56273W89GHJN 2@ ! Mak_Hlp_Cc.TPU ; Page 1H!*********************************!*********!***************************4! LANG: Vaxtpu VERSION : 1.1-7 27/09/911! BUT: Extensions Pour Eve.H!-----------------------------------------------------------------------;! NAM: Mak_Hlp_Cc CMP: .......... PGM: ..........! SYS: Vax/Vms 5.3! ENT: ..........! RTN: ..........G! FNC: Perform neccesary ouput to format or unformat a range of lines*! to make a common "usage" on C programs.! CAL: ..........!------------------------------ ! REV: 5! VER DATE OBJ AUTG! . . . . . . . . . . . .(! -7 27/09/91 Berenguier Alain!! Cor : Init Saved_Timer_State.!B! 1.0-0 26/03/91 Creation Berenguier AlainG!********************************************************************** ! Mak_Hlp_Cc.TPU ; Page 2Procedure Mye_Cmd_Mak_Hlp_Ccf; MYE_TPU.BCK77 [WORK.BER]MAK_HLP_CC.TPU;1H .d ( ; A_Help ) ;Local B_Help , Mye_Tpu_Wrk_Buffer , Mark_On_Range , The_Range , Start_Range , End_Range , To_Remove , Temp_String , Temp_Index , Saved_Timer_State , Saved_Timer_Msg , Saved_Mark ;On_Error [TPU$_CONTROLC]:- If Saved_Timer_State <> Tpu$K_Unspecified Then& Mye_Pro_Set_Timer ( Saved_Timer_Msg , Temp_String , Saved_Timer_State , Temp_Index ) ; Endif ;* Eve$$Restore_Position ( Saved_Mark ) ; Eve$Learn_Abort ; Abort ; [OTHERWISE]:- If Saved_Timer_State <> Tpu$K_Unspecified Then& Mye_Pro_Set_Timer ( Saved_Timer_Msg , Temp_String , Saved_Timer_State , Temp_Index ) ; Endif ;* Eve$$Restore_Position ( Saved_Mark ) ; Endon_Error ;DSaved_Mark := Mark ( Free_Cursor ) ; ! only needed for error returns(Saved_Timer_State := Tpu$K_Unspecified ;To_Remove := False ;If A_Help <> Tpu$K_Unspecified Then If A_Help = "?" Then!-------------< --------Mye_Macro_Mak_A_Help (" ",H" This macro enclose every line of the seleted range with the",C" necessary begin of line and end line <"" ) ;>",D" this make easy to perform format of help usage on text editor."," "," " ) ;Return ;!-------------> -------- Else If A_Help <> "" Then% B_Help := Edit ( A_Help, Lower ) ; If B_Help = "rz" Then To_Remove := True ; Else% MessagNi MYE_TPU.BCK77 [WORK.BER]MAK_HLP_CC.TPU;1H he ( "Unknow parameters" ) ; Return ; Endif Endif ; Endif ; Endif ;Mye_Pro_Take_Range_Or_Buf ( Start_Range , End_Range , The_Range , "Make_Hlp_Cc" ) ;'Mye_Pro_Set_Timer ( "Building Cc Use" , Saved_Timer_Msg , True , Saved_Timer_State ) ;Position ( Start_Range ) ;'Mark_On_Range := Mark ( Free_Cursor ) ;Loop If To_Remove Then Erase_Character ( 12 ) ; Else! Copy_Text ( 'printf ( "\n' ) ; Endif ; Position ( Line_End ) ; If To_Remove Then Move_Horizontal ( -5 ) ; Erase_Character ( 5 ) ; Else Copy_Text ( '" ) ;' ) ; Endif ; Position ( Line_End ) ; Move_Horizontal ( 1 ) ;+ Mark_On_Range := Mark ( Free_Cursor ) ;+ Exitif ( Mark_On_Range >= End_Range ) ; Endloop ;%Mye_Pro_Set_Timer ( Saved_Timer_Msg , Temp_String , Saved_Timer_State , Temp_Index ) ;#Endprocedure ; ! Mye_Cmd_Mak_Hlp_Cc ! Mak_Hlp_Cc.TPU ; Page 3#Procedure Mye_Macro_Mak_Hlp_Cc_Init ( ; Possible_Params ) ;!E! Define and set global variable to obtain parameter in command line.!Local Tmp_String ;7Mye_Cmd_Arg1_Mak_Hlp_Cc := Mye_Cmd_Arg1_Edit ; ! String!C! Bind on key Gold-A is specialy reserved to it. ( temporary key ).#Define_Key ( "Mye_Cmd_Mak_Hlp_Cc" , Key_Name ( "A", Shift_Key ), "Mye_Tpu Macro (Macro)" , Mye_K_Keys_Name ) ;*Define_Key ( "Mye_Cmd_Mak_Hlp_Cc ('rz')" , Key_Name ( "  MYE_TPU.BCK77 [WORK.BER]MAK_HLP_CC.TPU;1H e ", Shift_Key ), "Mye_Tpu Macro (Macro)" , Mye_K_Keys_Name ) ;-If ( Possible_Params = Tpu$K_Unspecified ) Or ( Possible_Params = "" ) Then Else@ Tmp_String := "Mye_Cmd_Mak_Hlp_Cc('" + Possible_Params + "')" ;! Define_Key ( Tmp_String , ! Key_Name ( "A", Shift_Key ),! "Mye_Tpu Macro (Macro)" ,! Mye_K_Blue_Keys_Name ) ; Execute ( Tmp_String ) ; Endif ;*Endprocedure ; ! Mye_Macro_Mak_Hlp_Cc_Initl  MYE_TPU.BCK77 [WORK.BER]MAK_KIT.TPU;1H 3*[WORK.BER]MAK_KIT.TPU;1+,7. / 4H -7 0123KPWO 56Խ7] 89GHJN 2@ ! Mak_Kit.TPU ; Page 1H!*********************************!*********!***************************4! LANG: Vaxtpu VERSION : 1.0-0 26/03/911! BUT: Extensions Pour Eve.H!-----------------------------------------------------------------------8! NAM: Mak_Kit CMP: .......... PGM: ..........! SYS: Vax/Vms 5.3! ENT: ..........! RTN: ..........G! FNC: Perform neccesary ouput to format or unformat a range of lines*! to make a common "usage" on C programs.! CAL: ..........!------------------------------ ! REV: 5! VER DATE OBJ AUTG! . . . . . . . . . . . .B! 1.0-0 26/03/91 Creation Berenguier AlainG!********************************************************************** ! Mak_Kit.TPU ; Page 2Procedure Mye_Cmd_Mak_Kit' ( ; A_Help , A_Bg_Line, A_Eo_Line ) ;Local B_Bg_Line , B_Eo_Line , N MYE_TPU.BCK77 [WORK.BER]MAK_KIT.TPU;1H c Lg_Bg_Line , Lg_Eo_Line , B_Help , Mye_Tpu_Wrk_Buffer , Mark_On_Range , The_Range , Start_Range , End_Range , To_Remove , Temp_String , Temp_Index , Saved_Timer_State , Saved_Timer_Msg , Saved_Mark ;On_Error [TPU$_CONTROLC]:- If Saved_Timer_State <> Tpu$K_Unspecified Then& Mye_Pro_Set_Timer ( Saved_Timer_Msg , Temp_String , Saved_Timer_State , Temp_Index ) ; Endif ;* Eve$$Restore_Position ( Saved_Mark ) ; Eve$Learn_Abort ; Abort ; [OTHERWISE]:- If Saved_Timer_State <> Tpu$K_Unspecified Then& Mye_Pro_Set_Timer ( Saved_Timer_Msg , Temp_String , Saved_Timer_State , Temp_Index ) ; Endif ;* Eve$$Restore_Position ( Saved_Mark ) ; Endon_Error ;DSaved_Mark := Mark ( Free_Cursor ) ; ! only needed for error returns If A_Bg_Line = Tpu$K_Unspecified Then B_Bg_Line := '$ Mkkit "' ; Else B_Bg_Line := A_Bg_Line ; Endif ;$Lg_Bg_Line := Length ( B_Bg_Line ) ; If A_Eo_Line = Tpu$K_Unspecified Then B_Eo_Line := '"' ; Else B_Eo_Line := A_Eo_Line ; Endif ;$Lg_Eo_Line := Length ( B_Eo_Line ) ;To_Remove := False ;If A_Help <> Tpu$K_Unspecified Then If A_Help = "?" Then!-------------< --------Mye_Macro_Mak_A_Help (" ",H" This macro enclose every line of the seleted range with the",<" necessary begin of line <$ Mkkit ""> and end line <"">",B" this make easy& MYE_TPU.BCK77 [WORK.BER]MAK_KIT.TPU;1H  to perform the enclose of writing com_file by"," the a com_file"," "," " ) ;Return ;!-------------> -------- Else If A_Help <> "" Then% B_Help := Edit ( A_Help, Lower ) ; If B_Help = "rz" Then To_Remove := True ; Else% Message ( "Unknow parameters" ) ; Return ; Endif Endif ; Endif ; Endif ;Mye_Pro_Take_Range_Or_Buf ( Start_Range , End_Range , The_Range , "Make_Kit" ) ;'Mye_Pro_Set_Timer ( "Building Kit Mk" , Saved_Timer_Msg , True , Saved_Timer_State ) ;Position ( Start_Range ) ;'Mark_On_Range := Mark ( Free_Cursor ) ;Loop If To_Remove Then# Erase_Character ( Lg_Bg_Line ) ; Else Copy_Text ( B_Bg_Line ) ; Endif ; Position ( Line_End ) ; If To_Remove Then% Move_Horizontal ( - Lg_Eo_Line ) ;# Erase_Character ( Lg_Eo_Line ) ; Else Copy_Text ( B_Eo_Line ) ; Endif ; Position ( Line_End ) ; Move_Horizontal ( 1 ) ;+ Mark_On_Range := Mark ( Free_Cursor ) ;+ Exitif ( Mark_On_Range >= End_Range ) ; Endloop ;%Mye_Pro_Set_Timer ( Saved_Timer_Msg , Temp_String , Saved_Timer_State , Temp_Index ) ; Endprocedure ; ! Mye_Cmd_Mak_Kit ! Mak_Kit.TPU ; Page 3 Procedure Mye_Macro_Mak_Kit_Init ( ; Possible_Params ) ;!E! Define and set global variable to obtain parameter in command line.!Local Tmp_String ;4Mye_Cmd_Arg1_Mak_KC MYE_TPU.BCK77 [WORK.BER]MAK_KIT.TPU;1H Y it := Mye_Cmd_Arg1_Edit ; ! String!C! Bind on key Gold-A is specialy reserved to it. ( temporary key ). Define_Key ( "Mye_Cmd_Mak_Kit" , Key_Name ( "A", Shift_Key ), "Mye_Tpu Macro (Macro)" , Mye_K_Keys_Name ) ;'Define_Key ( "Mye_Cmd_Mak_Kit ('rz')" , Key_Name ( "", Shift_Key ), "Mye_Tpu Macro (Macro)" , Mye_K_Keys_Name ) ;!;Define_Key ( "Mye_Cmd_Mak_Kit ('', '""""!/', '"""" + -' )", Key_Name ( "A" ), "Mye_Tpu Macro (Macro)" , Mye_K_Red_Keys_Name ) ;;Define_Key ( "Mye_Cmd_Mak_Kit ('', '""""!/', '"""" + -' )", Key_Name ( "a" ), "Mye_Tpu Macro (Macro)" , Mye_K_Red_Keys_Name ) ;=Define_Key ( "Mye_Cmd_Mak_Kit ('rz', '""""!/', '"""" + -' )", Key_Name ( "" ), "Mye_Tpu Macro (Macro)" , Mye_K_Red_Keys_Name ) ;!-If ( Possible_Params = Tpu$K_Unspecified ) Or ( Possible_Params = "" ) Then Else= Tmp_String := "Mye_Cmd_Mak_Kit('" + Possible_Params + "')" ;! Define_Key ( Tmp_String , ! Key_Name ( "A", Shift_Key ),! "Mye_Tpu Macro (Macro)" ,! Mye_K_Blue_Keys_Name ) ; Execute ( Tmp_String ) ; Endif ;'Endprocedure ; ! Mye_Macro_Mak_Kit_Init MYE_TPU.BCK=7v7 [WORK.BER]MAK_KIT.COM;1'r*[WORK.BER]MAK_KIT.COM;1+,=7v./ 4'-7 0123KPWO56?7@;+89GHJN 2@  $ Backup -0Readme.Txt, -AaRelMye_Tpu.Doc, -MYe_Tpu.Note, -MAK_SYMB_OFLG.TPU, -MYE_CMD.TPU, -MYE_EDT.HLP, -MYE_EDT.TPU, -MYE_FORMAT.TPU, -MYE_HEXTYPE.TPU, -MYE_MACRO.TPU, -MYE_SORT.TPU, -MYE_TABS_CNV.TPU, -MYE_TPU.HLP, -MYE_TPU.TPU, -MYE_TPU_MASTER.FILE, -MYE_TPU_VERSION.DAT, -STRUCT_COM.TPU, -STRUCT_PASCAL.TPU, -MAK_HLP_CC.TPU, -MAK_KIT.TPU, - Mak_Kit.Com -'Mye_Tpu.Bck/Sav /log /Group=0/Bloc=2048