GSoC 2014 proposal - Implement VBScript built-in functions

Shuai Meng mengshuaicalendr at
Fri Mar 21 07:29:17 CDT 2014

Thank you! I will.

2014-03-21 17:52 GMT+08:00 Jacek Caban <jacek at>:
> Hi Shuaimeng,
> On 03/20/14 12:33, 孟帅 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!
> I like the plan and schedule seems right, esp. about starting with
> easier functions and move to harder ones as the project progresses.
> Patches that you attached show that you already have an understanding of
> the code involved (they will need some adjustments, but let's leave
> that's for another thread). Make sure to submit application in GSoC
> system. The deadline is today!
> Cheers,
> Jacek

More information about the wine-devel mailing list