diff options
author | kcwu <kcwu@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2009-06-11 00:47:34 +0800 |
---|---|---|
committer | kcwu <kcwu@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2009-06-11 00:47:34 +0800 |
commit | 1b1142e4431812346c0d49e9581b6c1a964e949d (patch) | |
tree | 0bbfd351539dbd6505dcbd8c601adbd3558fbc53 /upgrade | |
parent | cc97eef7be4a7c4beeff5789e00bedbe505a3e85 (diff) | |
download | pttbbs-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.c | 24 |
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)) |