9front - general discussion about 9front
 help / color / mirror / Atom feed
From: Jacob Moody <moody@mail.posixcafe.org>
To: 9front@9front.org
Subject: Re: [9front] [PATCH] diff: retain original file names
Date: Sun, 22 May 2022 12:45:07 -0600	[thread overview]
Message-ID: <399c430d-65da-0c60-e046-38c19f7c6305@posixcafe.org> (raw)
In-Reply-To: <2FD13CB117DFE6893A17A959B97B8C03@eigenstate.org>

On 5/22/22 10:41, Ori Bernstein wrote:
> 
> When diffing non-regular files, like /dev/null,
> pipes, and similar, diff will generate a temp
> file to diff against. This is the right thing
> to do, but the temp file leaks into the diff.
> 
> This patch retains the original file name all
> the way through to diff output.

This has been a pet peeve of mine, glad to see
I wasn't the only one. Looks good to me! One
small comment inline that I could take or leave.

> ---
> diff 4649189126e1ad98f9a07afd078096227668bfd1 23f8872bc10fbe9ffd2b0067db1f91d8eaaabb40
> --- a/sys/src/cmd/diff/diff.h	Sun May 22 12:34:33 2022
> +++ b/sys/src/cmd/diff/diff.h	Sun May 22 12:41:47 2022
> @@ -23,8 +23,8 @@
>  void *erealloc(void *, unsigned);
>  void diff(char *, char *, int);
>  void diffdir(char *, char *, int);
> -void diffreg(char *, char *);
> -Biobuf *prepare(int, char *);
> +void diffreg(char *, char *, char *, char *);
> +Biobuf *prepare(int, char *, char *);
>  void panic(int, char *, ...);
>  void check(Biobuf *, Biobuf *);
>  void change(int, int, int, int);
> --- a/sys/src/cmd/diff/diffio.c	Sun May 22 12:34:33 2022
> +++ b/sys/src/cmd/diff/diffio.c	Sun May 22 12:41:47 2022
> @@ -104,7 +104,7 @@
>  }
>  
>  Biobuf *
> -prepare(int i, char *arg)
> +prepare(int i, char *arg, char *orig)
>  {
>  	Line *p;
>  	int j, h;
> @@ -143,11 +143,10 @@
>  	file[i] = p;
>  	input[i] = bp;			/*fix*/
>  	if (i == 0) {			/*fix*/

Is there any context for why these /*fix*/ comments are here? Could
we just delete them?

> -		file1 = arg;
> +		file1 = orig;
>  		firstchange = 0;
> -	}
> -	else
> -		file2 = arg;
> +	} else
> +		file2 = orig;
>  	return bp;
>  }
>  
> --- a/sys/src/cmd/diff/diffreg.c	Sun May 22 12:34:33 2022
> +++ b/sys/src/cmd/diff/diffreg.c	Sun May 22 12:41:47 2022
> @@ -363,16 +363,16 @@
>  }
>  
>  void
> -diffreg(char *f, char *t)
> +diffreg(char *f, char *fo, char *t, char *to)
>  {
>  	Biobuf *b0, *b1;
>  	int k;
>  
>  	binary = 0;
> -	b0 = prepare(0, f);
> +	b0 = prepare(0, f, fo);
>  	if (!b0)
>  		return;
> -	b1 = prepare(1, t);
> +	b1 = prepare(1, t, to);
>  	if (!b1) {
>  		Bterm(b0);
>  		return;
> --- a/sys/src/cmd/diff/main.c	Sun May 22 12:34:33 2022
> +++ b/sys/src/cmd/diff/main.c	Sun May 22 12:41:47 2022
> @@ -149,7 +149,7 @@
>  			Bprint(&stdout, "Common subdirectories: %s and %s\n", fp, tp);
>  	}
>  	else if (REGULAR_FILE(fsb) && REGULAR_FILE(tsb))
> -		diffreg(fp, tp);
> +		diffreg(fp, f, tp, t);
>  	else {
>  		if (REGULAR_FILE(fsb)) {
>  			if ((p = utfrrune(f, '/')) == 0)
> @@ -157,14 +157,14 @@
>  			else
>  				p++;
>  			if (mkpathname(tb, tp, p) == 0)
> -				diffreg(fp, tb);
> +				diffreg(fp, f, tb, t);
>  		} else {
>  			if ((p = utfrrune(t, '/')) == 0)
>  				p = t;
>  			else
>  				p++;
>  			if (mkpathname(fb, fp, p) == 0)
> -				diffreg(fb, tp);
> +				diffreg(fb, f, tp, t);
>  		}
>  	}
>  	free(fsb);


  reply	other threads:[~2022-05-22 18:46 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-22 16:41 Ori Bernstein
2022-05-22 18:45 ` Jacob Moody [this message]
2022-05-22 23:24   ` ori

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=399c430d-65da-0c60-e046-38c19f7c6305@posixcafe.org \
    --to=moody@mail.posixcafe.org \
    --cc=9front@9front.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).