summaryrefslogtreecommitdiffstats
path: root/upgrade
diff options
context:
space:
mode:
authorkcwu <kcwu@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2009-06-11 00:47:34 +0800
committerkcwu <kcwu@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2009-06-11 00:47:34 +0800
commit1b1142e4431812346c0d49e9581b6c1a964e949d (patch)
tree0bbfd351539dbd6505dcbd8c601adbd3558fbc53 /upgrade
parentcc97eef7be4a7c4beeff5789e00bedbe505a3e85 (diff)
downloadpttbbs-1b1142e4431812346c0d49e9581b6c1a964e949d.tar
pttbbs-1b1142e4431812346c0d49e9581b6c1a964e949d.tar.gz
pttbbs-1b1142e4431812346c0d49e9581b6c1a964e949d.tar.bz2
pttbbs-1b1142e4431812346c0d49e9581b6c1a964e949d.tar.lz
pttbbs-1b1142e4431812346c0d49e9581b6c1a964e949d.tar.xz
pttbbs-1b1142e4431812346c0d49e9581b6c1a964e949d.tar.zst
pttbbs-1b1142e4431812346c0d49e9581b6c1a964e949d.zip
* add is_valid_brdname() to cmbbs
git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@4553 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
Diffstat (limited to 'upgrade')
-rw-r--r--upgrade/merge_sob.c24
1 files changed, 23 insertions, 1 deletions
diff --git a/upgrade/merge_sob.c b/upgrade/merge_sob.c
index 91b97e37..4a78f112 100644
--- a/upgrade/merge_sob.c
+++ b/upgrade/merge_sob.c
@@ -197,6 +197,23 @@ m_sob(void)
return 0;
}
+// sob 允許板名用 a-zA-Z0-9_.- 開頭
+// ptt 只允許用 a-zA-Z
+static int
+is_valid_sob_brdname(const char *brd)
+{
+ register char ch, rv=0;
+
+ ch = *brd;
+ if (!isalpha((int)ch))
+ rv = 2;
+ while ((ch = *brd++)) {
+ if (not_alnum(ch) && ch != '_' && ch != '-' && ch != '.')
+ return (1|rv);
+ }
+ return rv;
+}
+
void
m_sob_brd(char *bname, char *fromdir)
{
@@ -208,8 +225,13 @@ m_sob_brd(char *bname, char *fromdir)
if(!getdata(20,0, "SOB的板名 [英文大小寫要完全正確]:", fbname, 20,
DOECHO)) return;
+ } while(!is_valid_sob_brdname(fbname));
+
+ if (!is_valid_brdname(fbname)) {
+ // TODO ask for alternative name
+ vmsg("非系統允許的板名, 暫不支援");
+ return;
}
- while((invalid_brdname(fbname)&1));
sprintf(buf, "sob/man/%s.tar.gz", fbname);
if(!dashf(buf))