From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sahitihi Subject: Re: Status of Submitted Patches Date: Tue, 15 May 2018 23:11:26 +0530 Message-ID: <618c131c-6ba6-e525-aefc-72acca1c910f@swecha.net> References: <8ea5d026-fab9-7b12-198e-610ad7743cb2@swecha.net> <871sfxev9w.fsf@elephly.net> <7626275c-3eee-bb05-ab9d-4c88ec6f0329@swecha.net> <87r2nvjte6.fsf@elephly.net> <5ab51417-b635-9725-9f48-3bc3f9b61fdf@swecha.net> <87tvsko2wd.fsf@elephly.net> <7290013c-990d-3f7d-d8db-38e090ed766a@swecha.net> <87zi28kt82.fsf@elephly.net> <8573e97d-d107-cde6-cd17-35f4ef6d2de3@swecha.net> <87k1takumm.fsf@elephly.net> <87o9hycwl6.fsf@elephly.net> <87r2mhdeap.fsf@elephly.net> Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="------------F79730DD029C34175BA531AA" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:48623) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fIdxp-0006AX-8U for guix-devel@gnu.org; Tue, 15 May 2018 13:42:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fIdxl-0000P4-83 for guix-devel@gnu.org; Tue, 15 May 2018 13:42:17 -0400 In-Reply-To: <87r2mhdeap.fsf@elephly.net> Content-Language: en-US List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Ricardo Wurmus Cc: guix-devel@gnu.org This is a multi-part message in MIME format. --------------F79730DD029C34175BA531AA Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 SGkgUmljYXJkbywKCj4gSGVyZSB5b3UgYXJlIHJlYWRpbmcgYSBjaGFyYWN0ZXIgZnJvbSB0 aGUgY3VycmVudCBpbnB1dCBwb3J0LiAgVGhlCj4gcmVzdWx0IGlzIGZlZCB0byDigJxjaGFy LXVwY2FzZeKAnSwgd2hpY2ggdHVybnMgaXQgaW50byBhbiB1cHBlci1jYXNlCj4gdmFyaWFu dCwgYW5kIHRoZW4geW91IHdyaXRlIHRoYXQgY2hhcmFjdGVyIHRvIHRoZSBjdXJyZW50IGRl ZmF1bHQgb3V0cHV0Cj4gcG9ydC4KPgo+IFdoaWxlIHRoaXMgYWNoaWV2ZXMgdGhlIGdvYWwg Zm9yIGEgc2luZ2xlIGNoYXJhY3RlciBpdCBkb2VzIG5vdAo+IGNvbnN0aXR1dGUgYSBjdXN0 b20gcG9ydC4gIEhhdmUgeW91IHJlYWQgdGhlIGRvY3VtZW50YXRpb24gZm9yCj4g4oCcbWFr ZS1jdXN0b20tcG9ydOKAnSBpbiB0aGUgR3VpbGUgbWFudWFsPwoKSSBoYXZlIHRyaWVkIHdp dGggdGhlIGZvbGxvd2luZyBjb2RlIGZvciwgR8OhYm9yIGhlbHBlZCBtZSBpbiBwcm9jZXNz CgoodXNlLW1vZHVsZXMgKGljZS05IGJpbmFyeS1wb3J0cykpCih1c2UtbW9kdWxlcyAoaWNl LTkgaTE4bikpCgooZGVmaW5lIHN0ZG91dCAoY3VycmVudC1vdXRwdXQtcG9ydCkpCihkZWZp bmUgcyAocmVhZChjdXJyZW50LWlucHV0LXBvcnQpKSkKKGRlZmluZSBwIChtYWtlLXNvZnQt cG9ydArCoMKgwqDCoMKgwqDCoMKgwqDCoCAodmVjdG9yCsKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgKGxhbWJkYSAoYykgKHdyaXRlIGMgc3Rkb3V0KSkKwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAobGFtYmRhIChzKSAoZGlzcGxheSAoc3RyaW5nLXVwY2FzZSEgcykgc3Rkb3V0KSkKwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAobGFtYmRhICgpIChkaXNwbGF5ICIuIiBzdGRvdXQpKQrC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIChsYW1iZGEgKCkgKGNoYXItdXBjYXNlIChyZWFkLWNo YXIpKSkKwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAobGFtYmRhICgpIChkaXNwbGF5ICJAIiBz dGRvdXQpKSkKwqDCoMKgwqDCoMKgwqDCoMKgwqAgInJ3IikpCih3cml0ZSBzIHApCgpUaGUg YWJvdmUgcmVzdWx0ZWQgbWUgd2l0aCBhIGNhcGl0YWxpemVkIG91dHB1dAo+IFdoYXQgdHlw ZSBpcyB0aGUgdmFsdWUgaW4gdGhlIHZhcmlhYmxlIHdpdGggbmFtZSDigJxh4oCdPyAg4oCc cmVhZC1jaGFy4oCdIHRha2VzCj4gYSBwb3J0IGFuZCByZXR1cm5zIGEgc2luZ2xlIGNoYXJh Y3RlciBmcm9tIGl0LCDigJxjaGFyLXVwY2FzZeKAnSB0YWtlcyBhCj4gY2hhcmFjdGVyIGFu ZCByZXR1cm5zIGEgZGlmZmVyZW50IGNoYXJhY3Rlciwgc28g4oCcYeKAnSBob2xkcyBhIGNo YXJhY3Rlci4KPiBBcyB5b3Uga25vdywgdGhlIGltcGxlbWVudGF0aW9uIG9mIOKAnGNvbG9y aXplLXN0cmluZ+KAnSBpbnRlcm5hbGx5IGdsdWVzIGEKPiBidW5jaCBvZiBzdHJpbmdzIHRv Z2V0aGVyOiBhIHRlcm1pbmFsIGVzY2FwZSBzZXF1ZW5jZSB0byBzZXQgdGhlIGNvbG91ciwK PiB0aGUgc3RyaW5nIHRvIGJlIGNvbG91cmVkLCBhbmQgYSB0ZXJtaW5hbCBlc2NhcGUgc2Vx dWVuY2UgdG8gZGlzYWJsZSB0aGUKPiBjb2xvdXIuICBZb3UgZ2F2ZSBhIGNoYXJhY3RlciB0 byB0aGUgcHJvY2VkdXJlLCBidXQgaXQgZXhwZWN0cyBhIHN0cmluZy4KPgoodXNlLW1vZHVs ZXMgKGljZS05IGJpbmFyeS1wb3J0cykpIDtUaG91Z2ggbmFtZSBpcyBiaW5hcnksIEFsbCBw b3J0cyBpbgpHdWlsZSBhcmUgYm90aCBiaW5hcnkgYW5kIHRleHR1YWwgcG9ydHMuCih1c2Ut bW9kdWxlcyAoaWNlLTkgaTE4bikpwqAgOyBUaGUgfChpY2UtOSBpMThuKXwgbW9kdWxlIHBy b3ZpZGVzCnByb2NlZHVyZXMgdG8gbWFuaXB1bGF0ZSB0ZXh0IGFuZCBvdGhlciBkYXRhCih1 c2UtbW9kdWxlcyAoaWNlLTkgY29sb3JpemVkKSkgO0NvbG9yaXppbmcgbW9kdWxlCihhY3Rp dmF0ZS1jb2xvcml6ZWQpCgooZGVmaW5lIHN0ZG91dCAoY3VycmVudC1vdXRwdXQtcG9ydCkp IDtzdGRvdXQgdmFyaWFibGUgYWN0IGFzIGFuIG91dHB1dCBwb3J0CihkZWZpbmUgcyAocmVh ZChjdXJyZW50LWlucHV0LXBvcnQpKSkgOyBzIHZhcmlhYmxlIHJlYWRzIHRoZSBpbnB1dCBm cm9tCmlucHV0IHBvcnQKO3NvZnQgcG9ydHMgYXJlIHVzZWQgZm9yIGN1c3RvbWl6YXRpb24g b24gaG93IG91dHB1dCBwb3J0IHdvcmtzCihkZWZpbmUgcCAobWFrZS1zb2Z0LXBvcnQKwqDC oMKgwqDCoMKgwqDCoMKgwqAgKHZlY3RvcgrCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChsYW1i ZGEgKGMpICh3cml0ZSBjIHN0ZG91dCkpIDthY2NlcHRpbmcgb25lIGNoYXJhY3RlciBmb3IK b3V0cHV0CsKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGxhbWJkYSAocykgKGRpc3BsYXkgKGNv bG9yaXplZC1kaXNwbGF5IChzdHJpbmctdXBjYXNlISBzKQonKEdSRUVOKSkgc3Rkb3V0KSkg O2FjY2VwdGluZyBhIHN0cmluZywgQ2FwaXRhbGl6aW5nIGl0IGFuZCB0aGVuCmNvbG9yaXpp bmcgd2l0aCBmb3Igb3V0cHV0CsKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGxhbWJkYSAoKSAo ZGlzcGxheSAiLiIgc3Rkb3V0KSkKwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAobGFtYmRhICgp IChjaGFyLXVwY2FzZSAocmVhZC1jaGFyKSkpCsKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGxh bWJkYSAoKSAoZGlzcGxheSAiQCIgc3Rkb3V0KSkpCsKgwqDCoMKgwqDCoMKgwqDCoMKgICJy dyIpKQood3JpdGUgcyBwKQoKCgpUaGlzIHJlc3VsdHMgb3V0IHdpdGggYSBjYXBpdGFsaXpl ZCwgY29sb3JpemVkIG91dHB1dAoKdGhlIGRlc2NyaXB0aW9uIGZvciB0aGF0IGdvZXMgdGhp cyB3YXkuLi4uCgpUaGUgaW5wdXQgdGFrZW4gZnJvbSBpbnB1dCBwb3J0IGlzIHJlYWQgYW5k IHN0b3JlZCBpbiB2YXJpYWJsZSAicyIuwqAKVGhpcyB2YXJpYWJsZSBpcyBwYXNzZWQgdG8g bWFrZS1zb2Z0LXBvcnQuwqAgVGhlIHZhcmlhYmxlIHMgaXMKY2FwaXRhbGl6ZWQgYnkgbG9j YWxlIGNvbnZlcnNpb24gdGhlbiBiaW5kZWQgd2l0aCBjb2xvci4gdGhlIHJlc3VsdCBpcwpk aXNwbGF5ZWQgd2hlbiBjYWxsZWQuCgoKSSBoYXZlIHRyaWVkIHRoZSBvdGhlciBwcm9jZXNz IHVzaW5nIGVzY2FwZSBjb2RlcyBob3dldmVyIGZhaWxlZCB3aXRoCnRoZSByZXN1bHQgaSB3 aWxsIGNvbWUgd2l0aCB0aGlzIGltcGxlbWVudGF0aW9uIGFuZCBwcm9jZWR1cmUgaW4gbXkg bmV4dAptYWlsCgo= --------------F79730DD029C34175BA531AA Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: 8bit Hi Ricardo,

Here you are reading a character from the current input port.  The
result is fed to “char-upcase”, which turns it into an upper-case
variant, and then you write that character to the current default output
port.

While this achieves the goal for a single character it does not
constitute a custom port.  Have you read the documentation for
“make-custom-port” in the Guile manual?

I have tried with the following code for, Gábor helped me in process

(use-modules (ice-9 binary-ports))
(use-modules (ice-9 i18n))

(define stdout (current-output-port))
(define s (read(current-input-port)))
(define p (make-soft-port
           (vector
            (lambda (c) (write c stdout))
            (lambda (s) (display (string-upcase! s) stdout))
            (lambda () (display "." stdout))
            (lambda () (char-upcase (read-char)))
            (lambda () (display "@" stdout)))
           "rw"))
(write s p)

The above resulted me with a capitalized output
What type is the value in the variable with name “a”?  “read-char” takes
a port and returns a single character from it, “char-upcase” takes a
character and returns a different character, so “a” holds a character.
As you know, the implementation of “colorize-string” internally glues a
bunch of strings together: a terminal escape sequence to set the colour,
the string to be coloured, and a terminal escape sequence to disable the
colour.  You gave a character to the procedure, but it expects a string.

(use-modules (ice-9 binary-ports)) ;Though name is binary, All ports in Guile are both binary and textual ports.
(use-modules (ice-9 i18n))  ; The (ice-9 i18n) module provides procedures to manipulate text and other data
(use-modules (ice-9 colorized)) ;Colorizing module
(activate-colorized)

(define stdout (current-output-port)) ;stdout variable act as an output port
(define s (read(current-input-port))) ; s variable reads the input from input port
;soft ports are used for customization on how output port works
(define p (make-soft-port
           (vector
            (lambda (c) (write c stdout)) ;accepting one character for output
            (lambda (s) (display (colorized-display (string-upcase! s) '(GREEN)) stdout)) ;accepting a string, Capitalizing it and then colorizing with for output
            (lambda () (display "." stdout))
            (lambda () (char-upcase (read-char)))
            (lambda () (display "@" stdout)))
           "rw"))
(write s p)



This results out with a capitalized, colorized output

the description for that goes this way....

The input taken from input port is read and stored in variable "s".  This variable is passed to make-soft-port.  The variable s is capitalized by locale conversion then binded with color. the result is displayed when called.


I have tried the other process using escape codes however failed with the result i will come with this implementation and procedure in my next mail

--------------F79730DD029C34175BA531AA--