GSoC 2014 proposal - Implement VBScript built-in functions

Shuai Meng mengshuaicalendr at
Fri Mar 21 03:30:15 CDT 2014

Thank you. I have finished it.

2014-03-21 15:37 GMT+08:00 Austin English <austinenglish at>:
> On Thu, Mar 20, 2014 at 4:33 AM, 孟帅 <mengshuaicalendr at> wrote:
>> Hi all!
>> I'm Shuai Meng, a student from software school of Beihang University,
>> China, GMT+08:00. I'm pursuing a master degree and now in grade one.
>> You can call me shuaimeng, that's my nickname used in irc. Now I'm
>> here to apply for GSoC to work for Wine. I'm familiar with C, and I
>> can code with python as well. Besides, I know a little about html and
>> vbscript. From May to August, I have plenty of free time.
>> About one year ago I started my way to linux, it's not smooth for a
>> person who had got used to windows then embrace linux. Soon I got a
>> problem: QQ(the most popular IM software in China) doesn't support
>> linux, but I really need it. Fortunately I knew wine through searching
>> google, it helped me solve this problem.Since then I have become a
>> wine user.
>> In the past three months, I had focused on dlls/vbscript/global.c,
>> searching MSDN for related documents[1]~[4]. Accordding those
>> documents, I added more tests in dlls/vbscript/tests/api.vbs, then got
>> some similar bugs and only reported one[5]. In order to fix them, I
>> read wine source code in dlls/vbscript/global.c, again and again.
>> Finally I finished a few draft patches[6] and I will send them to
>> wine-patches later.
>> As I have made so much effort in this module and gain a little
>> experience, during GSoC this part will go on to occupy most of my
>> attention. On the basis of difficulty to be implemented, I divide all
>> the functions in dlls/vbscript/global.c into four groups as following:
>> 1: Abs ScriptEngine ScriptEngineBuildVersion ScriptEngineMajorVersion
>> IsArray IsDate IsNumeric IsObject Sgn TypeName VarType
>> These are the easiest to implement, I will take about one week to
>> finish the unimplemented.
>> 2: FormatCurrency FormatDateTime FormatPercent Hour FormatNumber Join
>> Minute Month Oct Rnd Second Space TimeValue Year
>> The second group will occupy two weeks of the whole GSoC time. They
>> are not as easy as the first group and there are more to be
>> accomplished. Most of them are involved in time functions while a few
>> is about strings.
>> 3: Asc Ant Cos DateAdd DateDiff DatePart DateSerial Day Exp LBound Log
>> Replace Sin Sqr String Tan TimeSerial UBound Weekday CBool CByte CCur
>> CDate CDbl CInt CLng CSng CStr InStrRev Int Fix StrComp Timer
>> These are more difficult. However a large part is conversion functions
>> and they have been implemented or improved by me. You can find the
>> details in attchment. Optimistically speaking, I need at least three
>> weeks to complete all of them. When I finish that, this bug[7] will be
>> fixed.
>> 4: Array Date DateValue Escape Eval Filter GetLocale GetRef InputBox
>> LoadPicture Now RGB SetLocale
>> Split Time Unescape
>> Here come the most difficult ones. I am not so sure whether I can fix
>> or even understand them, but I will try my best. Maybe after I have
>> finish the above three groups, I can gain a little confidence to face
>> them. This group would cost me four weeks or even longer. If I have a
>> good luck, maybe I can fix this bug[8].
>> To be prudent, I'll spare at least one week to do a review on all my
>> codes. Write a summary as a guidence for my work to be continued after
>> GSoC.
>> Though I have a rough plan now, as a greenhand to wine, I hava too
>> much to learn and I badly need advice from all of you. I hope I can
>> make a proper schedule after communicating with my mentor.
>> Any comment or advice is greatly appreciated.
>> Thank you!
>> [1]
>> [2]
>> [3]
>> [4]
>> [5]
>> [6]In the attachment
>> [7]
>> [8]
> Hello Shuai,
> For your proposal to be considered, it must be submitted to Melange by the
> deadline (though it was good to introduce yourself here, I don't want you to
> miss the deadline :)).
> --
> -Austin

More information about the wine-devel mailing list