diff --git a/src/launcher/launchctl.c b/src/launcher/launchctl.c index ded89b60..fd289bf6 100644 --- a/src/launcher/launchctl.c +++ b/src/launcher/launchctl.c @@ -78,16 +78,15 @@ static int call_pipe_and_report(PWSTR PipeBuf, ULONG SendSize, ULONG RecvSize) info("OK"); else { + ULONG Count = 0; + for (PWSTR P = PipeBuf, PipeBufEnd = P + BytesTransferred / sizeof(WCHAR); PipeBufEnd > P; P++) - switch (*P) + if (L'\0' == *P) { - case L'\0': - *P = L'\n'; - break; - case L'\1': - *P = L' '; - break; + /* print a newline every 2 nulls; this works for both list and info */ + *P = 1 == Count % 2 ? L'\n' : L' '; + Count++; } if (BytesTransferred < RecvSize) diff --git a/src/launcher/launcher.c b/src/launcher/launcher.c index 47ddf012..af8fc225 100644 --- a/src/launcher/launcher.c +++ b/src/launcher/launcher.c @@ -443,9 +443,7 @@ NTSTATUS SvcInstanceGetNameList(HANDLE ClientToken, if (BufferEnd < P + ClassNameSize + InstanceNameSize) break; - ClassNameSize--; memcpy(P, SvcInstance->ClassName, ClassNameSize * sizeof(WCHAR)); P += ClassNameSize; - *Buffer++ = L'\1'; memcpy(P, SvcInstance->InstanceName, InstanceNameSize * sizeof(WCHAR)); P += InstanceNameSize; }