From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: Date: Mon, 13 Nov 2006 20:02:48 -0500 From: "Joey Makar" To: 9fans@cse.psu.edu MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_34398_32354712.1163466168104" Subject: [9fans] Samterm up down key patch Topicbox-Message-UUID: ddee5144-ead1-11e9-9d60-3106f5b1d025 ------=_Part_34398_32354712.1163466168104 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Hello, attached is a patch to samterm to make the up and down arrow keys move the cursor. When the down arrow key is pressed it should go to the next newline plus the number of characters from the previous newline, unless that is beyond the next next newline, then go to that. And for the up arrow key: go the previous previous newline plus the number of characters from the previous newline, unless that is beyond the previous newline, then go to that. I'm relatively new to Plan9, any comments welcome. Joey ------=_Part_34398_32354712.1163466168104 Content-Type: application/octet-stream; name=samterm.h.patch Content-Transfer-Encoding: base64 X-Attachment-Id: f_euhljwxo Content-Disposition: attachment; filename="samterm.h.patch" MTYyYQpTZWN0aW9uCSpsYXN0c2VjdGlvbihSYXNwKiwgU2VjdGlvbiopOwpsb25nCXByZXZuZXds aW5lKFJhc3AqLCBsb25nKTsKbG9uZwluZXh0bmV3bGluZShSYXNwKiwgbG9uZyk7Ci4Kdwo= ------=_Part_34398_32354712.1163466168104 Content-Type: application/octet-stream; name=main.c.patch Content-Transfer-Encoding: base64 X-Attachment-Id: f_euhlkck6 Content-Disposition: attachment; filename="main.c.patch" NjYzYQp9CgpTZWN0aW9uKgpsYXN0c2VjdGlvbihSYXNwICpyLCBTZWN0aW9uICpzKQp7CglTZWN0 aW9uICpwOwoJZm9yKHA9ci0+c2VjdDsgcDsgcD1wLT5uZXh0KQoJCWlmKHAtPm5leHQgPT0gcykK CQkJcmV0dXJuIHA7CglyZXR1cm4gMDsKfQoKbG9uZwpwcmV2bmV3bGluZShSYXNwICpyLCBsb25n IGZyb20pCnsKCVNlY3Rpb24gKnNlY3Q7CglSdW5lICp0ZXh0OwoJbG9uZyBycCwgc3A7CS8qIFJh c3AsIFNlY3Rpb24gcG9zaXRpb24gKi8KCQkJLyogcnAgaXMgdGhlIGludGVnZXIgY291bnRlcnBh cnQgb2YgdGV4dCAqLwoKCWlmKCFyLT5zZWN0KQoJCXJldHVybiAtMTsKCgkvKiBHbyB0byB0aGUg ZnJvbSBwb3NpdGlvbi4gKi8KCXNlY3QgPSByLT5zZWN0OwoJcnAgPSAwOwoJd2hpbGUocnAgKyBz ZWN0LT5ucnVuZXMgPCBmcm9tKXsKCQlycCArPSBzZWN0LT5ucnVuZXM7CgkJc2VjdCA9IHNlY3Qt Pm5leHQ7Cgl9CglzcCA9IGZyb20gLSBycDsKCXRleHQgPSBzZWN0LT50ZXh0ICsgc3A7CglycCA9 IGZyb207CgoJLyogU2VhcmNoIGJhY2t3YXJkcyBmb3IgYSBuZXdsaW5lLiAqLwoJd2hpbGUoMSl7 CgkJY2hhciBjaFtVVEZtYXhdOwoJCWludCBydjsKCgkJaWYoLS1zcCA8IDApewoJCQlzZWN0ID0g bGFzdHNlY3Rpb24ociwgc2VjdCk7CgkJCWlmKCFzZWN0KQoJCQkJcmV0dXJuIC0xOwoJCQlzcCA9 IHNlY3QtPm5ydW5lczsKCQkJdGV4dCA9IHNlY3QtPnRleHQgKyBzcDsKCQl9CgkJcnAtLTsKCQl0 ZXh0LS07CgoJCXJ2ID0gcnVuZXRvY2hhcihjaCwgdGV4dCk7CgkJaWYocnYgPT0gMSAmJiBjaFsw XSA9PSAnXG4nKQoJCQlyZXR1cm4gcnA7Cgl9Cn0KCmxvbmcKbmV4dG5ld2xpbmUoUmFzcCAqciwg bG9uZyBmcm9tKQp7CglTZWN0aW9uICpzZWN0OwoJUnVuZSAqdGV4dDsKCWxvbmcgcnAsIHNwOwkv KiBSYXNwLCBTZWN0aW9uIHBvc2l0aW9uICovCgkJCS8qIHJwIGlzIHRoZSBpbnRlZ2VyIGNvdW50 ZXJwYXJ0IG9mIHRleHQgKi8KCglpZighci0+c2VjdCkKCQlyZXR1cm4gMDsKCgkvKiBHbyB0byB0 aGUgZnJvbSBwb3NpdGlvbi4gKi8KCXNlY3QgPSByLT5zZWN0OwoJcnAgPSAwOwoJd2hpbGUocnAg KyBzZWN0LT5ucnVuZXMgPCBmcm9tKXsKCQlycCArPSBzZWN0LT5ucnVuZXM7CgkJc2VjdCA9IHNl Y3QtPm5leHQ7Cgl9CglzcCA9IGZyb20gLSBycDsKCXRleHQgPSBzZWN0LT50ZXh0ICsgc3A7Cgly cCA9IGZyb207CgoJLyogU2VhcmNoIGZvciBhIG5ld2xpbmUuICovCgl3aGlsZSgxKXsKCQljaGFy IGNoW1VURm1heF07CgkJaW50IHJ2OwoKCQlydiA9IHJ1bmV0b2NoYXIoY2gsIHRleHQpOwoJCWlm KHJ2ID09IDEgJiYgY2hbMF0gPT0gJ1xuJykKCQkJcmV0dXJuIHJwOwoKCQlpZigrK3NwID4gc2Vj dC0+bnJ1bmVzIC0gMSl7CgkJCXNlY3QgPSBzZWN0LT5uZXh0OwoJCQlpZighc2VjdCkKCQkJCXJl dHVybiByLT5ucnVuZXM7CgkJCXNwID0gMDsKCQkJdGV4dCA9IHNlY3QtPnRleHQgLSAxOwoJCX0K CQlycCsrOwoJCXRleHQrKzsKCX0KCglyZXR1cm4gMDsgLyogV29uJ3QgZXhlY3V0ZTsgc2lsZW5j ZXMgYSBjb21waWxlciB3YXJuaW5nLiAqLwouCjU0NWEKCX1lbHNlIGlmKGMgPT0gU0NST0xMS0VZ KXsKCQlsb25nIHBuLCBubiwgbm5uOwkvKiBQcmV2aW91cywgbmV4dCwgbmV4dCBuZXh0IG5ld2xp bmUgKi8KCQlmbHVzaHR5cGluZygwKTsKCQlwbiA9IHByZXZuZXdsaW5lKCZ0LT5yYXNwLCBsLT5w MCk7CgkJbm4gPSBuZXh0bmV3bGluZSgmdC0+cmFzcCwgbC0+cDApOwoJCWlmKG5uICE9IHQtPnJh c3AubnJ1bmVzKQoJCQlubm4gPSBuZXh0bmV3bGluZSgmdC0+cmFzcCwgbm4gKyAxKTsKCQllbHNl CgkJCW5ubiA9IHQtPnJhc3AubnJ1bmVzOwoJCS8qIHBuIG1heSBiZSAtMS4gKi8KCQlhMCA9IChs LT5wMCAtIHBuKSArIG5uOwoJCWEwID0gYTAgPiBubm4gPyBubm4gOiBhMDsKCQlmbHNldHNlbGVj dChsLCBhMCwgYTApOwoJCWNlbnRlcihsLCBhMCk7Cgl9ZWxzZSBpZihjID09IEJBQ0tTQ1JPTExL RVkpewoJCWxvbmcgcHBuLCBwbjsJLyogUHJldmlvdXMgcHJldmlvdXMsIHByZXZpb3VzIG5ld2xp bmUgKi8KCQlmbHVzaHR5cGluZygwKTsKCQlwbiA9IHByZXZuZXdsaW5lKCZ0LT5yYXNwLCBsLT5w MCk7CgkJaWYocG4gIT0gLTEpCgkJCXBwbiA9IHByZXZuZXdsaW5lKCZ0LT5yYXNwLCBwbik7CgkJ ZWxzZQoJCQlwcG4gPSAtMTsKCQlpZihwbiA9PSAtMSkKCQkJYTAgPSAwOwoJCWVsc2V7CgkJCS8q IHBwbiBtYXkgYmUgLTEuICovCgkJCWEwID0gKGwtPnAwIC0gcG4pICsgcHBuOwoJCQlhMCA9IGEw ID4gcG4gPyBwbiA6IGEwOwoJCX0KCQlmbHNldHNlbGVjdChsLCBhMCwgYTApOwoJCWNlbnRlcihs LCBhMCk7Ci4KNTI2YwoJfWVsc2UgaWYoYz09UEFHRVVQKXsKLgo1MjJjCglpZihjPT1QQUdFRE9X Til7Ci4Kdwo= ------=_Part_34398_32354712.1163466168104--