/* Actually get the strings */\r
ret = RegQueryValueEx(key, value, 0, &type, (unsigned char *) *env, envlen);\r
if (ret != ERROR_SUCCESS) {\r
+ log_event(EVENTLOG_ERROR_TYPE, NSSM_EVENT_QUERYVALUE_FAILED, value, error_string(GetLastError()), 0);\r
HeapFree(GetProcessHeap(), 0, *env);\r
*env = 0;\r
*envlen = 0;\r
- log_event(EVENTLOG_ERROR_TYPE, NSSM_EVENT_QUERYVALUE_FAILED, value, error_string(GetLastError()), 0);\r
return 4;\r
}\r
\r
}\r
\r
for (i = 0; i < dnlen; i++) if (dn[i] != _T('\r')) ++*newlen;\r
+\r
+ /* Skip blank lines. */\r
+ for (i = 0; i < dnlen; i++) {\r
+ if (dn[i] == _T('\r') && dn[i + 1] == _T('\n')) {\r
+ /* This is the last CRLF. */\r
+ if (i >= dnlen - 2) break;\r
+\r
+ /*\r
+ Strip at the start of the block or if the next characters are\r
+ CRLF too.\r
+ */\r
+ if (! i || (dn[i + 2] == _T('\r') && dn[i + 3] == _T('\n'))) {\r
+ for (j = i + 2; j < dnlen; j++) dn[j - 2] = dn[j];\r
+ dn[dnlen--] = _T('\0');\r
+ dn[dnlen--] = _T('\0');\r
+ i--;\r
+ --*newlen;\r
+ }\r
+ }\r
+ }\r
+\r
/* Must end with two NULLs. */\r
*newlen += 2;\r
\r