Check-in [1a36ac65ca]
Overview
Comment:Better prompt handling without readline
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 1a36ac65caf2dcc3d228a1766a2ca7255a984a348bf589c7b97f9e6a9892751c
User & Date: rkeene on 2019-01-17 02:19:44
Other Links: manifest | tags
Context
2019-01-17
07:45
Added start of kit maker, for easy binary distribution of application check-in: 0007db6527 user: rkeene tags: trunk
02:19
Better prompt handling without readline check-in: 1a36ac65ca user: rkeene tags: trunk
01:57
More stats work check-in: 008bdd4f8f user: rkeene tags: trunk
Changes

Modified nano.tcl from [4d60af78c2] to [42c9c4c386].

4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
			}

			if {$use_tclreadline} {
				proc ::tclreadline::prompt1 {} $prompt
				::tclreadline::Loop
			} else {
				fconfigure stdout -blocking false
				puts -nonewline "> "
				flush stdout
				fileevent stdin readable [list apply {{} {
					uplevel #0 {
						gets stdin __line__
						if {$__line__ eq "" && [eof stdin]} {
							exit 0
						}

						if {[catch $__line__ __result__]} {
							puts "\[ERROR\] $::errorInfo"
						} else {
							if {$__result__ ne ""} {
								puts "$__result__"
							}
						}
					}

					puts -nonewline "> "
					flush stdout
				}}]

				vwait forever
			}
		}
		"import" {
			uplevel #0 [list namespace import ::nano::${namespace}::cli::*]
		}







|

|















|

|







4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
			}

			if {$use_tclreadline} {
				proc ::tclreadline::prompt1 {} $prompt
				::tclreadline::Loop
			} else {
				fconfigure stdout -blocking false
				puts -nonewline [apply [list {} $prompt]]
				flush stdout
				fileevent stdin readable [list apply {{prompt} {
					uplevel #0 {
						gets stdin __line__
						if {$__line__ eq "" && [eof stdin]} {
							exit 0
						}

						if {[catch $__line__ __result__]} {
							puts "\[ERROR\] $::errorInfo"
						} else {
							if {$__result__ ne ""} {
								puts "$__result__"
							}
						}
					}

					puts -nonewline [apply [list {} $prompt]]
					flush stdout
				}} $prompt]

				vwait forever
			}
		}
		"import" {
			uplevel #0 [list namespace import ::nano::${namespace}::cli::*]
		}