00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00030 #include "ppsig.hh"
00031 #include "names.hh"
00032 #include "property.hh"
00033 #include "ppsig.hh"
00034 #include "doc_Text.hh"
00035 #include "Text.hh"
00036 #include <assert.h>
00037
00038
00039
00040
00041
00042
00043 extern int gMaxNameSize;
00044
00045
00052 Tree DEFNAMEPROPERTY = tree(symbol("DEFNAMEPROPERTY"));
00053
00054 void setDefNameProperty(Tree t, Tree id)
00055 {
00056
00057 setProperty(t, DEFNAMEPROPERTY, id);
00058 }
00059
00060 void setDefNameProperty(Tree t, const string& name)
00061 {
00062
00063 int n = name.size();
00064 int m = (gMaxNameSize>1023) ? 1023 : gMaxNameSize;
00065 if (n > m) {
00066
00067 char buf[1024];
00068 int i = 0;
00069
00070 for (; i < m/3; i++) { buf[i] = name[i]; }
00071
00072 buf[i++] = '.';
00073 buf[i++] = '.';
00074 buf[i++] = '.';
00075
00076 for (int c = n-m/3; c<n; c++, i++) { buf[i] = name[c]; }
00077 buf[i] = 0;
00078 setProperty(t, DEFNAMEPROPERTY, tree(buf));
00079 } else {
00080 setProperty(t, DEFNAMEPROPERTY, tree(name.c_str()));
00081 }
00082
00083 }
00084
00085 bool getDefNameProperty(Tree t, Tree& id)
00086 {
00087
00088 return getProperty(t, DEFNAMEPROPERTY, id);
00089 }
00090
00091
00097 string defName2NickName (const string& defname)
00098 {
00099 return defname;
00100 }
00101
00102 Tree NICKNAMEPROPERTY = tree(symbol("NICKNAMEPROPERTY"));
00103
00104
00108 void setSigNickname(Tree t, const string& id)
00109 {
00110 Tree s,d;
00111 if (isSigFixDelay(t,s,d) && isZero(d)) {
00112 setProperty(s, NICKNAMEPROPERTY, tree(id));
00113 } else {
00114 setProperty(t, NICKNAMEPROPERTY, tree(id));
00115 }
00116 }
00117
00118
00122 bool getSigNickname(Tree t, Tree& id)
00123 {
00124 bool r = getProperty(t, NICKNAMEPROPERTY, id);
00125 return r;
00126 }
00127
00128
00129
00134 void setSigListNickName (Tree lsig, const string& nickname)
00135 {
00136 assert(isList(lsig));
00137
00138 if (isNil(tl(lsig))) {
00139 setSigNickname(hd(lsig), nickname);
00140 } else {
00141 int i=0;
00142 while (!isNil(lsig)) {
00143 setSigNickname(hd(lsig), subst("$0_$1", nickname, T(++i)));
00144 lsig = tl(lsig);
00145 }
00146 }
00147 }
00148
00149
00150
00151