This repository has been archived on 2024-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
deb-goldedplus/goldlib/gall/gmsgattr.cpp

203 lines
5.5 KiB
C++

// This may look like C code, but it is really -*- C++ -*-
// ------------------------------------------------------------------
// The Goldware Library
// Copyright (C) 1990-1999 Odinn Sorensen
// Copyright (C) 1999-2000 Alexander S. Aganichev
// ------------------------------------------------------------------
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this program; if not, write to the Free
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
// MA 02111-1307, USA
// ------------------------------------------------------------------
// $Id$
// ------------------------------------------------------------------
// Message attributes.
// ------------------------------------------------------------------
#include <gstrall.h>
#include <gmsgattr.h>
// ------------------------------------------------------------------
// Add attributes
void ftn_attr::add(const ftn_attr& b) {
if(b.pvt()) pvt1();
if(b.cra()) cra1();
if(b.rcv()) rcv1();
if(b.snt()) snt1();
if(b.att()) att1();
if(b.trs()) trs1();
if(b.orp()) orp1();
if(b.k_s()) k_s1();
if(b.loc()) loc1();
if(b.hld()) hld1();
if(b.rsv()) rsv1();
if(b.frq()) frq1();
if(b.rrq()) rrq1();
if(b.rrc()) rrc1();
if(b.arq()) arq1();
if(b.urq()) urq1();
if(b.grp()) grp1_();
if(b.imm()) imm1();
if(b.dir()) dir1();
if(b.tfs()) tfs1();
if(b.kfs()) kfs1();
if(b.lok()) lok1();
if(b.a_s()) a_s1();
if(b.zon()) zon1();
if(b.hub()) hub1();
if(b.xma()) xma1();
if(b.cfm()) cfm1();
if(b.hir()) hir1();
if(b.cov()) cov1();
if(b.sig()) sig1();
if(b.let()) let1();
if(b.uns()) uns1();
if(b.del()) del1();
if(b.nwm()) nwm1();
if(b.rot()) rot1();
if(b.hex()) hex1();
if(b.upd()) upd1();
if(b.tou()) tou1();
if(b.fmu()) fmu1();
if(b.scn()) scn1();
if(b.pos()) pos1();
if(b.r_o()) r_o1();
if(b.nok()) nok1();
if(b.fax()) fax1();
if(b.prn()) prn1();
}
// ------------------------------------------------------------------
// Create string representation of an attribute set
std::string& ftn_attr::make_string(std::string& s) const {
s = "";
if(del()) s += "DEL ";
if(rcv()) s += "Rcv ";
if(snt()) s += "Snt ";
if(uns()) s += "Uns ";
if(imm()) s += "Imm ";
if(dir()) s += "Dir ";
if(lok()) s += "Lok ";
if(tfs()) s += "Tfs ";
if(kfs()) s += "Kfs ";
if(pvt()) s += "Pvt ";
if(cra()) s += "Cra ";
if(loc()) s += "Loc ";
if(hld()) s += "Hld ";
if(k_s()) s += "K/s ";
if(frq()) s += "Frq ";
if(urq()) s += "URq ";
if(att()) s += "Att ";
if(arq()) s += "ARq ";
if(rrq()) s += "RRq ";
if(rrc()) s += "RRc ";
if(trs()) s += "Trs ";
if(orp()) s += "Orp ";
if(a_s()) s += "A/s ";
if(zon()) s += "Zon ";
if(hub()) s += "Hub ";
if(xma()) s += "Xma ";
if(cfm()) s += "Cfm ";
if(hir()) s += "Hir ";
if(cov()) s += "Cov ";
if(sig()) s += "Sig ";
if(let()) s += "Let ";
if(fax()) s += "Fax ";
if(rsv()) s += "Rsv ";
if(grp()) s += "Grp ";
if(scn()) s += "Scn ";
if(prn()) s += "Prn ";
size_t len = s.length();
while(len and ('!' > s[--len]))
s.erase(len, 1);
return s;
}
// ------------------------------------------------------------------
void ftn_attr::get(const std::string& __s) {
const char *s = __s.c_str();
if(striinc("PVT", s)) pvt1();
if(striinc("CRA", s)) cra1();
if(striinc("RCV", s)) rcv1();
if(striinc("SNT", s)) snt1();
if(striinc("ATT", s)) att1();
if(striinc("TRS", s)) trs1();
if(striinc("ORP", s)) orp1();
if(striinc("K/S", s)) k_s1();
if(striinc("LOC", s)) loc1();
if(striinc("HLD", s)) hld1();
if(striinc("RSV", s)) rsv1();
if(striinc("FRQ", s)) frq1();
if(striinc("RRQ", s)) rrq1();
if(striinc("RRC", s)) rrc1();
if(striinc("ARQ", s)) arq1();
if(striinc("URQ", s)) urq1();
if(striinc("GRP", s)) grp1_();
if(striinc("IMM", s)) imm1();
if(striinc("DIR", s)) dir1();
if(striinc("TFS", s)) tfs1();
if(striinc("KFS", s)) kfs1();
if(striinc("LOK", s)) lok1();
if(striinc("A/S", s)) a_s1();
if(striinc("ZON", s)) zon1();
if(striinc("HUB", s)) hub1();
if(striinc("XMA", s)) xma1();
if(striinc("CFM", s)) cfm1();
if(striinc("HIR", s)) hir1();
if(striinc("COV", s)) cov1();
if(striinc("SIG", s)) sig1();
if(striinc("LET", s)) let1();
if(striinc("UNS", s)) uns1();
if(striinc("DEL", s)) del1();
if(striinc("NWM", s)) nwm1();
if(striinc("ROT", s)) rot1();
if(striinc("HEX", s)) hex1();
if(striinc("UPD", s)) upd1();
if(striinc("TOU", s)) tou1();
if(striinc("FMU", s)) fmu1();
if(striinc("SCN", s)) scn1();
if(striinc("POS", s)) pos1();
if(striinc("R/O", s)) r_o1();
if(striinc("NOK", s)) nok1();
if(striinc("FAX", s)) fax1();
if(striinc("PRN", s)) prn1();
}
// ------------------------------------------------------------------
bool ftn_attr::equals(const ftn_attr& b) const {
return (attr1 == b.attr1) and (attr2 == b.attr2);
}
// ------------------------------------------------------------------