fixed nonsense with truncation
parent
bb324087a8
commit
344cbfc56e
|
@ -3,4 +3,4 @@ project(rex)
|
||||||
|
|
||||||
set(CMAKE_CXX_STANDARD 14)
|
set(CMAKE_CXX_STANDARD 14)
|
||||||
|
|
||||||
add_executable(rex Rex.cpp src/json_support/jsoncpp/json.h src/json_support/jsoncpp/json-forwards.h src/json_support/jsoncpp/jsoncpp.cpp src/logger/Logger.cpp src/logger/Logger.h src/json_support/JSON.cpp src/json_support/JSON.h src/misc/helpers.cpp src/misc/helpers.h src/config/Config.cpp src/config/Config.h src/suite/Suite.cpp src/suite/Suite.h src/suite/Unit.cpp src/suite/Unit.h src/shells/shells.cpp src/shells/shells.h src/plan/Plan.cpp src/plan/Plan.h src/plan/Task.cpp src/plan/Task.h src/lcpex/liblcpex.h src/lcpex/liblcpex.cpp src/lcpex/vpty/libclpex_tty.h src/lcpex/vpty/libclpex_tty.cpp src/lcpex/Contexts.h src/lcpex/Contexts.cpp src/lcpex/helpers.h src/lcpex/string_expansion/string_expansion.h src/lcpex/string_expansion/string_expansion.cpp src/lcpex/vpty/pty_fork_mod/pty_fork.h src/lcpex/vpty/pty_fork_mod/pty_fork.cpp src/lcpex/vpty/pty_fork_mod/pty_master_open.h src/lcpex/vpty/pty_fork_mod/pty_master_open.cpp src/lcpex/vpty/pty_fork_mod/tty_functions.h src/lcpex/vpty/pty_fork_mod/tty_functions.cpp )
|
add_executable(rex Rex.cpp src/json_support/jsoncpp/json.h src/json_support/jsoncpp/json-forwards.h src/json_support/jsoncpp/jsoncpp.cpp src/logger/Logger.cpp src/logger/Logger.h src/json_support/JSON.cpp src/json_support/JSON.h src/misc/helpers.cpp src/misc/helpers.h src/config/Config.cpp src/config/Config.h src/suite/Suite.cpp src/suite/Suite.h src/suite/Unit.cpp src/suite/Unit.h src/shells/shells.cpp src/shells/shells.h src/plan/Plan.cpp src/plan/Plan.h src/plan/Task.cpp src/plan/Task.h src/lcpex/helpers.h src/lcpex/helpers.cpp src/lcpex/liblcpex.h src/lcpex/liblcpex.cpp src/lcpex/vpty/libclpex_tty.h src/lcpex/vpty/libclpex_tty.cpp src/lcpex/Contexts.h src/lcpex/Contexts.cpp src/lcpex/helpers.h src/lcpex/string_expansion/string_expansion.h src/lcpex/string_expansion/string_expansion.cpp src/lcpex/vpty/pty_fork_mod/pty_fork.h src/lcpex/vpty/pty_fork_mod/pty_fork.cpp src/lcpex/vpty/pty_fork_mod/pty_master_open.h src/lcpex/vpty/pty_fork_mod/pty_master_open.cpp src/lcpex/vpty/pty_fork_mod/tty_functions.h src/lcpex/vpty/pty_fork_mod/tty_functions.cpp )
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
#include "helpers.h"
|
||||||
|
|
||||||
|
ssize_t write_all(int fd, const void *buf, size_t count) {
|
||||||
|
const char *p = (const char *)buf;
|
||||||
|
while (count > 0) {
|
||||||
|
ssize_t written = write(fd, p, count);
|
||||||
|
if (written == -1) {
|
||||||
|
if (errno == EINTR || errno == EAGAIN) continue; // Retry
|
||||||
|
return -1; // Other errors
|
||||||
|
}
|
||||||
|
count -= written;
|
||||||
|
p += written;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
|
@ -1,6 +1,9 @@
|
||||||
#ifndef LCPEX_HELPERS_H
|
#ifndef LCPEX_HELPERS_H
|
||||||
#define LCPEX_HELPERS_H
|
#define LCPEX_HELPERS_H
|
||||||
|
|
||||||
|
#include <unistd.h>
|
||||||
|
#include "errno.h"
|
||||||
|
|
||||||
// helper for sanity
|
// helper for sanity
|
||||||
enum PIPE_ENDS {
|
enum PIPE_ENDS {
|
||||||
READ_END = 0,
|
READ_END = 0,
|
||||||
|
@ -16,18 +19,6 @@ enum CHILD_PIPE_NAMES {
|
||||||
|
|
||||||
#define BUFFER_SIZE 1024
|
#define BUFFER_SIZE 1024
|
||||||
|
|
||||||
ssize_t write_all(int fd, const void *buf, size_t count) {
|
ssize_t write_all(int fd, const void *buf, size_t count);
|
||||||
const char *p = (const char *)buf;
|
|
||||||
while (count > 0) {
|
|
||||||
ssize_t written = write(fd, p, count);
|
|
||||||
if (written == -1) {
|
|
||||||
if (errno == EINTR || errno == EAGAIN) continue; // Retry
|
|
||||||
return -1; // Other errors
|
|
||||||
}
|
|
||||||
count -= written;
|
|
||||||
p += written;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif //LCPEX_HELPERS_H
|
#endif //LCPEX_HELPERS_H
|
||||||
|
|
|
@ -138,17 +138,3 @@ std::string get_absolute_path(const std::string &relative_path)
|
||||||
return std::string(resolved_path);
|
return std::string(resolved_path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ssize_t write_all(int fd, const void *buf, size_t count) {
|
|
||||||
const char *p = (const char *)buf;
|
|
||||||
while (count > 0) {
|
|
||||||
ssize_t written = write(fd, p, count);
|
|
||||||
if (written == -1) {
|
|
||||||
if (errno == EINTR || errno == EAGAIN) continue; // Retry
|
|
||||||
return -1; // Other errors
|
|
||||||
}
|
|
||||||
count -= written;
|
|
||||||
p += written;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
|
@ -67,6 +67,4 @@ const char * command2args( std::string input_string );
|
||||||
*/
|
*/
|
||||||
std::string get_absolute_path(const std::string &relative_path);
|
std::string get_absolute_path(const std::string &relative_path);
|
||||||
|
|
||||||
ssize_t write_all(int fd, const void *buf, size_t count);
|
|
||||||
|
|
||||||
#endif //REX_HELPERS_H
|
#endif //REX_HELPERS_H
|
||||||
|
|
Loading…
Reference in New Issue