mirror of
https://github.com/wfjm/w11.git
synced 2026-04-28 12:58:31 +00:00
minor updates and code cosmetics
- asm-11_expect: skip data checks if dot not defined - tbrun: print list of failed test after summary line - RparseUrl: add DirName,FileName,FileStem,FileType
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
// $Id: RlinkCommandList.hpp 1091 2018-12-23 12:38:29Z mueller $
|
||||
// $Id: RlinkCommandList.hpp 1161 2019-06-08 11:52:01Z mueller $
|
||||
//
|
||||
// Copyright 2011-2018 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
//
|
||||
@@ -53,7 +53,7 @@ namespace Retro {
|
||||
typedef std::unique_ptr<RlinkCommandExpect> exp_uptr_t;
|
||||
|
||||
RlinkCommandList();
|
||||
RlinkCommandList(const RlinkCommandList&);
|
||||
RlinkCommandList(const RlinkCommandList& rhs);
|
||||
~RlinkCommandList();
|
||||
|
||||
size_t AddCommand(cmd_uptr_t&& upcmd);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// $Id: RlinkPortTerm.cpp 1091 2018-12-23 12:38:29Z mueller $
|
||||
// $Id: RlinkPortTerm.cpp 1161 2019-06-08 11:52:01Z mueller $
|
||||
//
|
||||
// Copyright 2011-2018 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
//
|
||||
@@ -149,7 +149,7 @@ bool RlinkPortTerm::Open(const std::string& url, RerrMsg& emsg)
|
||||
emsg.Init("RlinkPortTerm::Open()",
|
||||
string("isatty() check for '") + fUrl.Path() +
|
||||
"' failed: not a TTY");
|
||||
close(fd);
|
||||
::close(fd);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -206,7 +206,7 @@ bool RlinkPortTerm::Open(const std::string& url, RerrMsg& emsg)
|
||||
emsg.InitErrno("RlinkPortTerm::Open()",
|
||||
string("cfsetspeed() for '") + baud + "' failed: ",
|
||||
errno);
|
||||
close(fd);
|
||||
::close(fd);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// $Id: RerrMsg.hpp 983 2018-01-02 20:35:59Z mueller $
|
||||
// $Id: RerrMsg.hpp 1161 2019-06-08 11:52:01Z mueller $
|
||||
//
|
||||
// Copyright 2011-2013 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
//
|
||||
@@ -39,7 +39,7 @@ namespace Retro {
|
||||
RerrMsg(const std::string& meth, const std::string& text);
|
||||
RerrMsg(const std::string& meth, const std::string& text,
|
||||
int errnum);
|
||||
~RerrMsg();
|
||||
~RerrMsg();
|
||||
|
||||
void Init(const std::string& meth, const std::string& text);
|
||||
void InitErrno(const std::string& meth,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// $Id: RparseUrl.cpp 1070 2018-11-17 09:48:04Z mueller $
|
||||
// $Id: RparseUrl.cpp 1161 2019-06-08 11:52:01Z mueller $
|
||||
//
|
||||
// Copyright 2013-2018 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
// Copyright 2013-2019 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
//
|
||||
// This program is free software; you may redistribute and/or modify it under
|
||||
// the terms of the GNU General Public License as published by the Free
|
||||
@@ -13,6 +13,7 @@
|
||||
//
|
||||
// Revision History:
|
||||
// Date Rev Version Comment
|
||||
// 2019-06-07 1161 1.2 add DirName,FileName,FileStem,FileType
|
||||
// 2018-11-16 1070 1.1.1 use auto; use emplace,make_pair; use range loop
|
||||
// 2017-04-15 875 1.1 add Set() with default scheme handling
|
||||
// 2015-06-04 686 1.0.2 Set(): add check that optlist is enclosed by '|'
|
||||
@@ -162,6 +163,46 @@ void RparseUrl::Clear()
|
||||
//------------------------------------------+-----------------------------------
|
||||
//! FIXME_docs
|
||||
|
||||
std::string RparseUrl::DirName() const
|
||||
{
|
||||
size_t ddel = fPath.find_last_of('/');
|
||||
return (ddel == string::npos) ? "." : fPath.substr(0,ddel);
|
||||
}
|
||||
|
||||
//------------------------------------------+-----------------------------------
|
||||
//! FIXME_docs
|
||||
|
||||
std::string RparseUrl::FileName() const
|
||||
{
|
||||
size_t ddel = fPath.find_last_of('/');
|
||||
return (ddel != string::npos && ddel+1 <= fPath.length()) ?
|
||||
fPath.substr(ddel+1) : fPath;
|
||||
}
|
||||
|
||||
//------------------------------------------+-----------------------------------
|
||||
//! FIXME_docs
|
||||
|
||||
std::string RparseUrl::FileStem() const
|
||||
{
|
||||
string fname = FileName();
|
||||
size_t ddel = fname.find_last_of('.');
|
||||
return (ddel == string::npos) ? "" : fname.substr(0,ddel);
|
||||
}
|
||||
|
||||
//------------------------------------------+-----------------------------------
|
||||
//! FIXME_docs
|
||||
|
||||
std::string RparseUrl::FileType() const
|
||||
{
|
||||
string fname = FileName();
|
||||
size_t ddel = fname.find_last_of('.');
|
||||
return (ddel != string::npos && ddel+1 <= fname.length()) ?
|
||||
fname.substr(ddel+1) : "";
|
||||
}
|
||||
|
||||
//------------------------------------------+-----------------------------------
|
||||
//! FIXME_docs
|
||||
|
||||
bool RparseUrl::FindOpt(const std::string& name) const
|
||||
{
|
||||
auto it = fOptMap.find(name);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// $Id: RparseUrl.hpp 1066 2018-11-10 11:21:53Z mueller $
|
||||
// $Id: RparseUrl.hpp 1161 2019-06-08 11:52:01Z mueller $
|
||||
//
|
||||
// Copyright 2013-2017 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
// Copyright 2013-2019 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
//
|
||||
// This program is free software; you may redistribute and/or modify it under
|
||||
// the terms of the GNU General Public License as published by the Free
|
||||
@@ -13,6 +13,7 @@
|
||||
//
|
||||
// Revision History:
|
||||
// Date Rev Version Comment
|
||||
// 2019-06-07 1161 1.2 add DirName,FileName,FileStem,FileType
|
||||
// 2017-04-15 875 1.1 add Set() with default scheme handling
|
||||
// 2013-02-23 492 1.0.1 add static FindScheme(); allow no or empty scheme
|
||||
// 2013-02-03 481 1.0 Initial version, extracted from RlinkPort
|
||||
@@ -51,10 +52,14 @@ namespace Retro {
|
||||
const std::string& Url() const;
|
||||
const std::string& Scheme() const;
|
||||
const std::string& Path() const;
|
||||
const omap_t& Opts() const;
|
||||
bool FindOpt(const std::string& name) const;
|
||||
bool FindOpt(const std::string& name,
|
||||
std::string& value) const;
|
||||
std::string DirName() const;
|
||||
std::string FileName() const;
|
||||
std::string FileStem() const;
|
||||
std::string FileType() const;
|
||||
const omap_t& Opts() const;
|
||||
bool FindOpt(const std::string& name) const;
|
||||
bool FindOpt(const std::string& name,
|
||||
std::string& value) const;
|
||||
|
||||
virtual void Dump(std::ostream& os, int ind=0, const char* text=0) const;
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// $Id: Rw11VirtTapeTap.cpp 1090 2018-12-21 12:17:35Z mueller $
|
||||
// $Id: Rw11VirtTapeTap.cpp 1161 2019-06-08 11:52:01Z mueller $
|
||||
//
|
||||
// Copyright 2015-2018 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
//
|
||||
@@ -504,7 +504,7 @@ bool Rw11VirtTapeTap::Write(size_t nbyt, const uint8_t* data, bool back,
|
||||
RerrMsg& emsg)
|
||||
{
|
||||
if (fTruncPend) {
|
||||
if (ftruncate(fFd, fPos) < 0) {
|
||||
if (::ftruncate(fFd, fPos) < 0) {
|
||||
emsg.InitErrno("Rw11VirtTapeTap::Write()", "ftruncate() failed: ", errno);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// $Id: Rw11VirtTermPty.cpp 1114 2019-02-23 18:01:55Z mueller $
|
||||
// $Id: Rw11VirtTermPty.cpp 1161 2019-06-08 11:52:01Z mueller $
|
||||
//
|
||||
// Copyright 2013-2019 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
||||
//
|
||||
@@ -85,21 +85,21 @@ bool Rw11VirtTermPty::Open(const std::string& url, RerrMsg& emsg)
|
||||
int irc = grantpt(fd);
|
||||
if (irc < 0) {
|
||||
emsg.InitErrno("Rw11VirtTermPty::Open", "grantpt() failed: ", errno);
|
||||
close(fd);
|
||||
::close(fd);
|
||||
return false;
|
||||
}
|
||||
|
||||
irc = unlockpt(fd);
|
||||
if (irc < 0) {
|
||||
emsg.InitErrno("Rw11VirtTermPty::Open", "unlockpt() failed: ", errno);
|
||||
close(fd);
|
||||
::close(fd);
|
||||
return false;
|
||||
}
|
||||
|
||||
char* pname = ptsname(fd);
|
||||
if (pname == nullptr) {
|
||||
emsg.InitErrno("Rw11VirtTermPty::Open", "ptsname() failed: ", errno);
|
||||
close(fd);
|
||||
::close(fd);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user