filemorph

Check-in [97dbf1f6a9]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Minor fix to documentation
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 97dbf1f6a90065ae5bb2a2ba7711efb006496973
User & Date: kevin 2018-08-21 01:53:35
Context
2018-08-21
02:05
Build tweaks for Mac check-in: 13cdde2dd3 user: kevin tags: trunk
01:53
Minor fix to documentation check-in: 97dbf1f6a9 user: kevin tags: trunk
00:41
Refinements for scripting and unit testing on Windows check-in: 27d8264cf3 user: kevin tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to filemorph.pl.

522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
Tkx::focus(-force => $listbox);

if ($IS_AQUA) {
    &createAppleScriptCommands;
}

if ($IS_WINDOWS) {
	&createDDECommands;
}

Tkx::MainLoop();
exit;

###----subroutines








|







522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
Tkx::focus(-force => $listbox);

if ($IS_AQUA) {
    &createAppleScriptCommands;
}

if ($IS_WINDOWS) {
    &createDDECommands;
}

Tkx::MainLoop();
exit;

###----subroutines

675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
sub errlog {
    my $msg = shift;
    Tkx::tk___messageBox(
        -parent  => $mw,
        -title   => "Error",
        -icon    => "error",
        -message => $msg,
     )

}

#error message for selected file
sub fileErrMsg {

    errlog(







|







675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
sub errlog {
    my $msg = shift;
    Tkx::tk___messageBox(
        -parent  => $mw,
        -title   => "Error",
        -icon    => "error",
        -message => $msg,
      )

}

#error message for selected file
sub fileErrMsg {

    errlog(
1122
1123
1124
1125
1126
1127
1128

1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139

1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
        Tkx::aem__installeventhandler("CoKv", "adTx", \&scriptAddText);
        Tkx::aem__installeventhandler("CoKv", "tmDa", \&scriptSetTime);
        Tkx::aem__installeventhandler("CoKv", "cTme", \&scriptFileTime);
    }
}

if ($IS_WINDOWS) {

  sub createDDECommands {
    Tkx::interp_alias("", "set_directory_path", "", [\&scriptSetDir]);
    Tkx::interp_alias("", "set_file_path", "", [\&scriptSetFile]);
    Tkx::interp_alias("", "set_old_extension",  "", [\&scriptOldExt]);
	Tkx::interp_alias("", "set_new_extension", "", [\&scriptNewExt]);
    Tkx::interp_alias("", "change_extension", "", [\&scriptChangeExt]);
    Tkx::interp_alias("", "set_old_text", "", [\&scriptOldText]);
	Tkx::interp_alias("", "set_new_text", "", [\&scriptNewText]);
    Tkx::interp_alias("", "change_text", "", [\&scriptChangeText]);
    Tkx::interp_alias("", "set_added_text",  "", [\&scriptAddedText]);
	Tkx::interp_alias("", "set_prefix_or_suffix", "", [\&scriptPrefixOrSuffix]);

    Tkx::interp_alias("", "add_text",  "", [\&scriptAddText]);
    Tkx::interp_alias("", "set_time",  "", [\&scriptSetTime]);
	Tkx::interp_alias("", "change_file_time", "", [\&scriptFileTime]);
   }
}

sub scriptSetDir {
    my $path = shift;

    #join with spaces
    foreach (@_) {







>
|
|
|
|
|
|
|
|
|
|
|
>
|
|
|
|







1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
        Tkx::aem__installeventhandler("CoKv", "adTx", \&scriptAddText);
        Tkx::aem__installeventhandler("CoKv", "tmDa", \&scriptSetTime);
        Tkx::aem__installeventhandler("CoKv", "cTme", \&scriptFileTime);
    }
}

if ($IS_WINDOWS) {

    sub createDDECommands {
        Tkx::interp_alias("", "set_directory_path", "", [\&scriptSetDir]);
        Tkx::interp_alias("", "set_file_path", "", [\&scriptSetFile]);
        Tkx::interp_alias("", "set_old_extension",  "", [\&scriptOldExt]);
        Tkx::interp_alias("", "set_new_extension", "", [\&scriptNewExt]);
        Tkx::interp_alias("", "change_extension", "", [\&scriptChangeExt]);
        Tkx::interp_alias("", "set_old_text", "", [\&scriptOldText]);
        Tkx::interp_alias("", "set_new_text", "", [\&scriptNewText]);
        Tkx::interp_alias("", "change_text", "", [\&scriptChangeText]);
        Tkx::interp_alias("", "set_added_text",  "", [\&scriptAddedText]);
        Tkx::interp_alias("", "set_prefix_or_suffix", "",
            [\&scriptPrefixOrSuffix]);
        Tkx::interp_alias("", "add_text",  "", [\&scriptAddText]);
        Tkx::interp_alias("", "set_time",  "", [\&scriptSetTime]);
        Tkx::interp_alias("", "change_file_time", "", [\&scriptFileTime]);
    }
}

sub scriptSetDir {
    my $path = shift;

    #join with spaces
    foreach (@_) {

Changes to scriptlibs/machelp/help.txt.

146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
   end tell


'''Windows Scripting'''
 
Automating the application on Windows can be done using the Dynamic Data Exchange (DDE) protocol. The DDE protocol has several components, including a "Service," "Topic," and "Items." In FileMorph, the Service name is always TclEval (because that is the underlying name that the Tcl interpreter supports), the Topic name is FileMorph, and Items (data or return values) are not currently required. 

There are various programming languages on Windows in which one can write a DDE client to automate a DDE application, including Tcl, Python, VBA, C/C++, and others. An easy way to automate TextSweep from the command line is to install Chris Oldwood's free DDE Command tool from [http://www.chrisoldwood.com/win32.htm]. The tool can then be incorporated into a batch script such as the following: 

   @echo off
   set testdir  "C:/Users/kevin/Desktop/unitfiles"
   if exist %testdir% (
   rmdir %testdir%
   )
   xcopy "testsource" %testdir%







|







146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
   end tell


'''Windows Scripting'''
 
Automating the application on Windows can be done using the Dynamic Data Exchange (DDE) protocol. The DDE protocol has several components, including a "Service," "Topic," and "Items." In FileMorph, the Service name is always TclEval (because that is the underlying name that the Tcl interpreter supports), the Topic name is FileMorph, and Items (data or return values) are not currently required. 

There are various programming languages on Windows in which one can write a DDE client to automate a DDE application, including Tcl, Python, VBA, C/C++, and others. An easy way to automate FileMorph from the command line is to install Chris Oldwood's free DDE Command tool from [http://www.chrisoldwood.com/win32.htm]. The tool can then be incorporated into a batch script such as the following: 

   @echo off
   set testdir  "C:/Users/kevin/Desktop/unitfiles"
   if exist %testdir% (
   rmdir %testdir%
   )
   xcopy "testsource" %testdir%