From b13fab12afeff46536dee5d38a9630fec48b861d Mon Sep 17 00:00:00 2001 From: Daniel Murphy Date: Sun, 4 Jan 2015 16:55:38 +1100 Subject: [PATCH 1/2] Work around missing implicit conversion from string literal to const(void)* --- src/doc.c | 12 ++++++------ src/macro.c | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/doc.c b/src/doc.c index 842abf258922..4fb1aa5f643f 100644 --- a/src/doc.c +++ b/src/doc.c @@ -420,19 +420,19 @@ void escapeDdocString(OutBuffer *buf, size_t start) { case '$': buf->remove(u, 1); - buf->insert(u, "$(DOLLAR)", 9); + buf->insert(u, (const char *)"$(DOLLAR)", 9); u += 8; break; case '(': buf->remove(u, 1); //remove the ( - buf->insert(u, "$(LPAREN)", 9); //insert this instead + buf->insert(u, (const char *)"$(LPAREN)", 9); //insert this instead u += 8; //skip over newly inserted macro break; case ')': buf->remove(u, 1); //remove the ) - buf->insert(u, "$(RPAREN)", 9); //insert this instead + buf->insert(u, (const char *)"$(RPAREN)", 9); //insert this instead u += 8; //skip over newly inserted macro break; } @@ -472,7 +472,7 @@ void escapeStrayParenthesis(OutBuffer *buf, size_t start, Dsymbol *s) warning(loc, "Ddoc: Stray ')'. This may cause incorrect Ddoc output." " Use $(RPAREN) instead for unpaired right parentheses."); buf->remove(u, 1); //remove the ) - buf->insert(u, "$(RPAREN)", 9); //insert this instead + buf->insert(u, (const char *)"$(RPAREN)", 9); //insert this instead u += 8; //skip over newly inserted macro } else @@ -507,7 +507,7 @@ void escapeStrayParenthesis(OutBuffer *buf, size_t start, Dsymbol *s) warning(loc, "Ddoc: Stray '('. This may cause incorrect Ddoc output." " Use $(LPAREN) instead for unpaired left parentheses."); buf->remove(u, 1); //remove the ( - buf->insert(u, "$(LPAREN)", 9); //insert this instead + buf->insert(u, (const char *)"$(LPAREN)", 9); //insert this instead } else par_open--; @@ -2408,7 +2408,7 @@ void highlightText(Scope *sc, Dsymbol *s, OutBuffer *buf, size_t offset) highlightCode2(sc, s, &codebuf, 0); buf->remove(iCodeStart, i - iCodeStart); i = buf->insert(iCodeStart, codebuf.data, codebuf.offset); - i = buf->insert(i, ")\n", 2); + i = buf->insert(i, (const char *)")\n", 2); i -= 2; // in next loop, c should be '\n' } else diff --git a/src/macro.c b/src/macro.c index daa2ff8608bc..c9028ddbbeb7 100644 --- a/src/macro.c +++ b/src/macro.c @@ -314,7 +314,7 @@ void Macro::expand(OutBuffer *buf, size_t start, size_t *pend, buf->data[u] = 0xFF; buf->data[u + 1] = '{'; buf->insert(u + 2, marg, marglen); - buf->insert(u + 2 + marglen, "\xFF}", 2); + buf->insert(u + 2 + marglen, (const char *)"\xFF}", 2); end += -2 + 2 + marglen + 2; // Scan replaced text for further expansion From 0bae7fc29aaa8a96c9e947346749d168c3c65477 Mon Sep 17 00:00:00 2001 From: Daniel Murphy Date: Sun, 4 Jan 2015 16:56:54 +1100 Subject: [PATCH 2/2] Make it possible to automatically convert outbuffer.c/outbuffer.h to D --- src/root/outbuffer.c | 25 +------------------------ src/root/outbuffer.h | 18 +++++++++++++++--- 2 files changed, 16 insertions(+), 27 deletions(-) diff --git a/src/root/outbuffer.c b/src/root/outbuffer.c index 1086304d6f0e..5c5e0928ad26 100644 --- a/src/root/outbuffer.c +++ b/src/root/outbuffer.c @@ -19,23 +19,6 @@ #include "outbuffer.h" #include "object.h" -#include "rmem.h" - -OutBuffer::OutBuffer() -{ - data = NULL; - offset = 0; - size = 0; - - doindent = 0; - level = 0; - notlinehead = 0; -} - -OutBuffer::~OutBuffer() -{ - mem.free(data); -} char *OutBuffer::extractData() { @@ -55,7 +38,7 @@ void OutBuffer::reserve(size_t nbytes) { size = (offset + nbytes) * 2; size = (size + 15) & ~15; - data = (utf8_t *)mem.realloc(data, size); + data = (unsigned char *)mem.realloc(data, size); } } @@ -302,12 +285,6 @@ void OutBuffer::fill0(size_t nbytes) offset += nbytes; } -void OutBuffer::align(size_t size) -{ - size_t nbytes = ((offset + size - 1) & ~(size - 1)) - offset; - fill0(nbytes); -} - void OutBuffer::vprintf(const char *format, va_list args) { int count; diff --git a/src/root/outbuffer.h b/src/root/outbuffer.h index 9a8405646f94..7321db64354d 100644 --- a/src/root/outbuffer.h +++ b/src/root/outbuffer.h @@ -15,6 +15,7 @@ #include #include #include "port.h" +#include "rmem.h" #if __DMC__ #pragma once @@ -32,8 +33,20 @@ struct OutBuffer int level; int notlinehead; - OutBuffer(); - ~OutBuffer(); + OutBuffer() + { + data = NULL; + offset = 0; + size = 0; + + doindent = 0; + level = 0; + notlinehead = 0; + } + ~OutBuffer() + { + mem.free(data); + } char *extractData(); void reserve(size_t nbytes); @@ -54,7 +67,6 @@ struct OutBuffer void write(OutBuffer *buf); void write(RootObject *obj); void fill0(size_t nbytes); - void align(size_t size); void vprintf(const char *format, va_list args); void printf(const char *format, ...); void bracket(char left, char right);