From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Delivered-To: caml-list@yquem.inria.fr Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by yquem.inria.fr (Postfix) with ESMTP id 01F6CBC3F for ; Wed, 27 Oct 2004 13:34:34 +0200 (CEST) Received: from pauillac.inria.fr (pauillac.inria.fr [128.93.11.35]) by nez-perce.inria.fr (8.13.0/8.13.0) with ESMTP id i9RBYXG7004459 for ; Wed, 27 Oct 2004 13:34:33 +0200 Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id NAA12656 for ; Wed, 27 Oct 2004 13:34:33 +0200 (MET DST) Received: from wproxy.gmail.com (wproxy.gmail.com [64.233.184.197]) by nez-perce.inria.fr (8.13.0/8.13.0) with ESMTP id i9RBYWNq004453 for ; Wed, 27 Oct 2004 13:34:32 +0200 Received: by wproxy.gmail.com with SMTP id 68so295935wri for ; Wed, 27 Oct 2004 04:34:32 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:reply-to:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:references; b=teqzvsOcmpBdtxH+0YQiHKk7W5sAqzeSTJ8be09G7ZM3lw1i13KGU7xkbzF8lvw9ehr0njSPoPC5XlNwVeO1rpfruTV9I3OJIl+khm69BHsNhsSCgEkGiYFmFkU5i7prSV2O5FW5oP/zYptm3mAQQpam3J8bvRqehY9jjX1Lm4g= Received: by 10.38.150.44 with SMTP id x44mr1095455rnd; Wed, 27 Oct 2004 04:34:31 -0700 (PDT) Received: by 10.38.66.27 with HTTP; Wed, 27 Oct 2004 04:34:31 -0700 (PDT) Message-ID: Date: Wed, 27 Oct 2004 04:34:31 -0700 From: Tiago Dionizio Reply-To: Tiago Dionizio To: Caml Mailing List Subject: Re: [Caml-list] *s ignored on windows gui In-Reply-To: <8008871f04102620127e11b050@mail.gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit References: <417E7200.20902@baretta.com> <20041026160601.GA19671@old.davidb.org> <8008871f0410261730ef46a39@mail.gmail.com> <8008871f041026192114469d5d@mail.gmail.com> <8008871f04102620127e11b050@mail.gmail.com> X-Miltered: at nez-perce with ID 417F87C9.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Miltered: at nez-perce with ID 417F87C8.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; caml-list:01 buffer:01 ocaml:01 toplevel:01 wrote:01 char:01 cvs:01 wrote:01 char:01 terminate:01 redirected:01 bug:01 ocaml:01 hwnd:01 hwnd:01 X-Spam-Checker-Version: SpamAssassin 3.0.0 (2004-09-13) on yquem.inria.fr X-Spam-Status: No, score=0.5 required=5.0 tests=FROM_ENDS_IN_NUMS,RCVD_BY_IP autolearn=disabled version=3.0.0 X-Spam-Level: Hi, thanks for looking into it :) i see now why they were being trimmed, since the command line being used is not interactive and gets the input buffer as a whole it will output prompt characters for each line given on the "prompt". As i see it, the ocaml toplevel could have a new option to turn the prompt generation *off* so it didn't generate the prompt at all, another way (the dirty way) would be to count input lines and delete on the output 2 characters per input line (generated prompt chars). I don't how you are doing it now. But i think both options could work. Tiago On Tue, 26 Oct 2004 23:12:03 -0400, Christopher A. Watford wrote: > # > > print_char '*';; > *- : unit = () > # > > print_string " 3 spaces";; > _-_3 spaces- : unit = () > # > > I turned the spaces in the last example into an alternating pattern so > you could see nothing got trimmed! I'll get this code into CVS. > > As always, if you want the bleeding edge of OCamlWinPlus, I suggest > you check out (that is my actual VS.Net project directory): > http://projects.tunkeymicket.com/OCamlWinPlus/Release/ > > If you'd like the more stable side of the bleeding edge (stable > directory on my webserver that only takes polished copies): > http://dorm.tunkeymicket.com/OCamlWinPlus/Release/ > > Hope that helps! > > Chris > > On Tue, 26 Oct 2004 22:21:56 -0400, Christopher A. Watford > wrote: > > Here is some output from my recently applied changes: > > > > # print_string "**e";; > > **e- : unit = () > > # print_char '*';; > > *- : unit = () > > # print_char '\t';; > > - : unit = () > > # > > > > print_char '*';; > > *- : unit = () > > # > > > > Note the crappy leading space if you use lots of lines.... I'm not > > sure how I should go about checking for things like that. The old code > > removed all whilespace leading the output (and those *'s, hehe sorry). > > > > Is the desired functionality leaving the output intact? If so the > > above looks like this: > > > > # print_string "**e";; > > **e- : unit = () > > # print_char '*';; > > *- : unit = () > > # print_char '\t';; > > - : unit = () > > # > > > > print_char '*';; > > *- : unit = () > > # > > > > With only a bunch of leading white space when you use more than 1 > > line. Should I have it detect and remove 1 space for each extra line? > > The reality of what goes on is accurately shown below: > > > > # > > > > print_char '*';; > > *- : unit = () > > # > > > > Note I used no indentation between lines, and no indentation appeared > > in my output. I think it would require a bit of extra work, but I > > might could finagle keeping track of indentation for removal in the > > output. > > > > > > > > On Tue, 26 Oct 2004 20:30:28 -0400, Christopher A. Watford > > wrote: > > > Ok let me explain why I trim these. > > > > > > What happens when some luser forgets to terminate a comment, a string, > > > etc, the damn redirected shell process puts out either ' *' at the > > > front of a line, or just extra spaces. The actual variables etc aren't > > > being trimmed, just the output. > > > > > > I'll try and work around having to trim those with some more > > > intelligent checks for user input failures. > > > > > > Thanks for pointing out that bug! Keep them coming! > > > > > > Chris > > > > > > > > > > > > On Tue, 26 Oct 2004 21:38:02 +0000, Tiago Dionizio wrote: > > > > I didn't try with 3.07, only started working with OCaml recently. > > > > > > > > Although this is a very rough attempt on locating the problem, this > > > > might have something to do with it: > > > > > > > > on file win32caml/ocaml.c around the line 1319 here is what i found: > > > > > > > > ... > > > > case WM_TIMERTICK: > > > > /** Modified by Chris Watford 21 Sept 2003 **/ > > > > hwndChild = (HWND) GetWindowLong(hwnd, DWL_USER); > > > > > > > > if (ReadToLineBuffer()) > > > > { > > > > int errMsg = 0; > > > > char *p, *l = lineBuffer; > > > > > > > > // Ok we read something. Display the > > > > trimmed version > > > > while(((*l) == ' ') || ((*l) == '\t') > > > > || ((*l) == '\n') || ((*l) == '\r') || ((*l) == '*')) > > > > l++; > > > > ... > > > > > > > > I have no idea why it trims empty spaces and the *'s. There may be a > > > > good reason for this to happen.. but i did get very confused when this > > > > happened to me the first time. > > > > > > > > Tiago > > > > > > > > > > > > > > > > > > > > On Tue, 26 Oct 2004 09:06:01 -0700, David Brown wrote: > > > > > On Tue, Oct 26, 2004 at 05:49:20PM +0200, Alex Baretta wrote: > > > > > > > > > > > ># print_string "**e";; > > > > > > >e- : unit = () > > > > > > > > > > > > Try flushing stdout. > > > > > > > > > > I don't think it will help, since the 'e' is getting printed, just not the > > > > > '*'s before it. I don't see anything in the source that looks like it > > > > > would cause this problem, but there might be something subtle. Did it > > > > > happen with 3.07? The windows code changed quite a bit between. > > > > > > > > > > Dave > > > > > > > > > > > > > _______________________________________________ > > > > Caml-list mailing list. Subscription management: > > > > http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list > > > > Archives: http://caml.inria.fr > > > > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > > > > Bug reports: http://caml.inria.fr/bin/caml-bugs > > > > > > > > > > > > > -- > > > Christopher A. Watford > > > christopher.watford@gmail.com > > > http://dorm.tunkeymicket.com > > > > > > > -- > > Christopher A. Watford > > christopher.watford@gmail.com > > http://dorm.tunkeymicket.com > > > > > -- > > > Christopher A. Watford > christopher.watford@gmail.com > http://dorm.tunkeymicket.com >