aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2006-03-21 18:03:33 +0000
committerrsc <devnull@localhost>2006-03-21 18:03:33 +0000
commitde1168dd9caa73403e11de015b6f33323372c505 (patch)
tree85708d9a7c3cd1ad99c7dcab22debe32f9b39f5d /src
parentacb880af1ce5169b0280eb9b8fa256942ab77bed (diff)
downloadplan9port-de1168dd9caa73403e11de015b6f33323372c505.tar.gz
plan9port-de1168dd9caa73403e11de015b6f33323372c505.tar.bz2
plan9port-de1168dd9caa73403e11de015b6f33323372c505.zip
Write $-free paths in Dump files (Peter Canning).
Diffstat (limited to 'src')
-rw-r--r--src/cmd/acme/rows.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/cmd/acme/rows.c b/src/cmd/acme/rows.c
index fc03c93c..a078a698 100644
--- a/src/cmd/acme/rows.c
+++ b/src/cmd/acme/rows.c
@@ -319,7 +319,7 @@ rowdump(Row *row, char *file)
uint q0, q1;
Biobuf *b;
char *buf, *a, *fontname;
- Rune *r;
+ Rune *r, *rp;
Column *c;
Window *w, *w1;
Text *t;
@@ -417,11 +417,17 @@ rowdump(Row *row, char *file)
Bwrite(b, buf, strlen(buf));
m = min(RBUFSIZE, w->tag.file->b.nc);
bufread(&w->tag.file->b, 0, r, m);
+ if(dodollarsigns && r[0] == '$'){
+ rp = runestrdup(r);
+ expandenv(&rp, (uint*)&m);
+ }else
+ rp = r;
n = 0;
- while(n<m && r[n]!='\n')
+ while(n<m && rp[n]!='\n')
n++;
- r[n++] = '\n';
- Bprint(b, "%.*S", n, r);
+ Bprint(b, "%.*S\n", n, rp);
+ if(rp != r)
+ free(rp);
if(dumped){
q0 = 0;
q1 = t->file->b.nc;