Merged changes from 3.15 branch up to revno 12670
This commit is contained in:
@@ -652,7 +652,7 @@ not follow this pattern, but are still printable strings.
|
||||
|
||||
=item [1] R3.15 Channel Access Reference Manual by Jeffrey O. Hill
|
||||
|
||||
L<http://www.aps.anl.gov/epics/base/R3-15/0-docs/CAref.html>
|
||||
L<http://www.aps.anl.gov/epics/base/R3-15/2-docs/CAref.html>
|
||||
|
||||
=back
|
||||
|
||||
|
||||
@@ -323,7 +323,7 @@ inline int aitString::installBuf(const char* pString, unsigned strLengthIn, unsi
|
||||
|
||||
inline int aitString::installBuf(const char* pString)
|
||||
{
|
||||
unsigned strLengthIn = strlen(pString);
|
||||
unsigned strLengthIn = (unsigned) strlen(pString);
|
||||
return this->installBuf(pString, strLengthIn, strLengthIn+1u);
|
||||
}
|
||||
|
||||
@@ -350,7 +350,7 @@ inline int aitString::installConstBuf(const char* pString, unsigned strLengthIn,
|
||||
|
||||
inline int aitString::installConstBuf(const char* pString)
|
||||
{
|
||||
unsigned strLengthIn = strlen(pString);
|
||||
unsigned strLengthIn = (unsigned) strlen(pString);
|
||||
return this->installConstBuf(pString, strLengthIn, strLengthIn+1u);
|
||||
}
|
||||
|
||||
@@ -378,7 +378,7 @@ inline int aitString::installConstImortalBuf(const char* pString,
|
||||
|
||||
inline int aitString::installConstImortalBuf(const char* pString)
|
||||
{
|
||||
unsigned strLengthIn = strlen(pString);
|
||||
unsigned strLengthIn = (unsigned) strlen(pString);
|
||||
return this->installConstImortalBuf(pString, strLengthIn, strLengthIn+1u);
|
||||
}
|
||||
|
||||
@@ -396,7 +396,7 @@ inline int aitString::copy(const char* pString, unsigned stringLength)
|
||||
|
||||
inline int aitString::copy(const char* p)
|
||||
{
|
||||
return this->copy(p, strlen(p));
|
||||
return this->copy(p, (unsigned) strlen(p));
|
||||
}
|
||||
|
||||
inline int aitString::copy(const aitString* p)
|
||||
@@ -436,7 +436,7 @@ inline aitString::aitString(void)
|
||||
|
||||
inline aitString::aitString(const char* p, aitStrType typeIn)
|
||||
{
|
||||
unsigned strLengthIn = strlen(p);
|
||||
unsigned strLengthIn = (unsigned) strlen(p);
|
||||
this->init(p, typeIn, strLengthIn, strLengthIn+1u);
|
||||
}
|
||||
|
||||
|
||||
@@ -2280,28 +2280,29 @@ long dbPutString(DBENTRY *pdbentry,const char *pstring)
|
||||
case DBF_INLINK:
|
||||
case DBF_OUTLINK:
|
||||
case DBF_FWDLINK: {
|
||||
dbLinkInfo link_info;
|
||||
DBLINK *plink = (DBLINK *)pfield;
|
||||
dbLinkInfo link_info;
|
||||
DBLINK *plink = (DBLINK *)pfield;
|
||||
|
||||
status = dbParseLink(pstring, pflddes->field_type, &link_info);
|
||||
status = dbParseLink(pstring, pflddes->field_type, &link_info);
|
||||
if (status) break;
|
||||
|
||||
if(status==0 && plink->type==CONSTANT && plink->value.constantStr==NULL) {
|
||||
/* links not yet initialized by dbInitRecordLinks() */
|
||||
free(plink->text);
|
||||
plink->text = epicsStrDup(pstring);
|
||||
free(link_info.target);
|
||||
if (plink->type==CONSTANT && plink->value.constantStr==NULL) {
|
||||
/* links not yet initialized by dbInitRecordLinks() */
|
||||
free(plink->text);
|
||||
plink->text = epicsStrDup(pstring);
|
||||
free(link_info.target);
|
||||
} else {
|
||||
/* assignment after init (eg. autosave restore) */
|
||||
struct dbCommon *prec = pdbentry->precnode->precord;
|
||||
devSup *devsup = (devSup *)ellNth(&pdbentry->precordType->devList, prec->dtyp+1);
|
||||
|
||||
} else if(status==0) {
|
||||
/* assignment after init (eg. autosave restore) */
|
||||
struct dbCommon *prec = pdbentry->precnode->precord;
|
||||
devSup *devsup = (devSup *)ellNth(&pdbentry->precordType->devList, prec->dtyp+1);
|
||||
status = dbCanSetLink(plink, &link_info, devsup);
|
||||
if(status==0)
|
||||
status = dbSetLink(plink, &link_info, devsup);
|
||||
status = dbCanSetLink(plink, &link_info, devsup);
|
||||
if (status == 0)
|
||||
status = dbSetLink(plink, &link_info, devsup);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return S_dbLib_badField;
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ accepted by the EPICS IOC's dbLoadTemplate command.</p>
|
||||
|
||||
<h2>Command Syntax:</h2>
|
||||
|
||||
<pre>msi -V -g -o<i>outfile</i> -I<i>dir</i> -M<i>subs</i> -S<i>subfile</i> <i>template</i></pre>
|
||||
<pre>msi -V -g -D -o<i>outfile</i> -I<i>dir</i> -M<i>subs</i> -S<i>subfile</i> <i>template</i></pre>
|
||||
|
||||
<p>All parameters are optional. The -o, -I, -M, and -S switches may be
|
||||
separated from their associated value string by spaces if desired. Output will
|
||||
@@ -46,6 +46,13 @@ be written to stdout unless the -o option is given.</p>
|
||||
this was the behavior of previous versions of msi, but it does not follow
|
||||
common scoping rules and is discouraged.</dd>
|
||||
|
||||
<dt><tt>-D</tt></dt>
|
||||
<dd>Output dependency information suitable for including by a Makefile to
|
||||
stdout instead of performing the macro substitutions. The <tt>-o</tt> option
|
||||
must be given to specify the target name for the dependency rules. Other
|
||||
options should be given exactly as will be used in the macro substitution
|
||||
process.</dd>
|
||||
|
||||
<dt><tt>-o</tt> <i>file</i></dt>
|
||||
<dd>Output will be written to the specifed file rather than to the standard
|
||||
output.</dd>
|
||||
|
||||
@@ -51,6 +51,7 @@ PERL_SCRIPTS += dbdToRecordtypeH.pl
|
||||
PERL_SCRIPTS += dbdExpand.pl
|
||||
PERL_SCRIPTS += dbdToHtml.pl
|
||||
PERL_SCRIPTS += podToHtml.pl
|
||||
PERL_SCRIPTS += podRemove.pl
|
||||
PERL_SCRIPTS += registerRecordDeviceDriver.pl
|
||||
|
||||
HTMLS = style.css
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
#!/usr/bin/env perl
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2015 UChicago Argonne LLC, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
|
||||
# $Id$
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use Getopt::Std;
|
||||
|
||||
our ($opt_o);
|
||||
|
||||
$Getopt::Std::OUTPUT_HELP_VERSION = 1;
|
||||
&HELP_MESSAGE if !getopts('o:') || @ARGV != 1;
|
||||
|
||||
my $infile = shift @ARGV;
|
||||
|
||||
if (!$opt_o) {
|
||||
($opt_o = $infile) =~ s/\.pod$//;
|
||||
$opt_o =~ s/^.*\///;
|
||||
}
|
||||
|
||||
open my $inp, '<', $infile or
|
||||
die "podRemove.pl: Can't open $infile: $!\n";
|
||||
open my $out, '>', $opt_o or
|
||||
die "podRemove.pl: Can't create $opt_o: $!\n";
|
||||
|
||||
my $inPod = 0;
|
||||
while (<$inp>) {
|
||||
if (m/\A=[a-zA-Z]/) {
|
||||
$inPod = !m/\A=cut/;
|
||||
}
|
||||
else {
|
||||
print $out $_ unless $inPod;
|
||||
}
|
||||
}
|
||||
|
||||
close $out;
|
||||
close $inp;
|
||||
|
||||
sub HELP_MESSAGE {
|
||||
print STDERR "Usage: podRemove.pl [-o file] file.pod\n";
|
||||
exit 2;
|
||||
}
|
||||
Reference in New Issue
Block a user