[Adds support for dynamic variables in strings for plugins.] [The token %subject% is translated into a special contact, which depends on the situation in which the string is parsed. Use this dialog to simulate the contact to which %subject% translates. An example for using this token is: !cinfo(%subject%,display).] [The token %extratext% is translated into a string which depends on the situation in which the string is parsed. Use this dialog to simulate the string to which %extratext% translates.] [The Variables plugin translates various tokens into a certain value. An example is: I'm running Miranda %mirandaversion%. The substring %mirandaversion% will be translated into the correct version number. The following list shows all available tokens.] [--- Special characters ---\r\n\r\nThe following characters have a special meaning in a formatting string:\r\n\r\n?()\r\nThis will parse the function given the arguments, the result will be parsed again. Example: Today is ?cdate(yyyy/MM/dd).\r\n\r\n!()\r\nThis will parse the function given the arguments, the result will not be parsed again. Example: Message waiting: !message(,first,rcvd,unread).\r\n\r\n%%\r\nThis will parse the given field. Example: I installed Miranda at: %mirandapath%.\r\n\r\n``\r\nThis will not parse the given string, any function, field or special character in the string will shown in the result without being translated. Example: Use `%mirandapath%` to show the installation path.\r\n\r\n#\r\nThis will add a comment in the formatting string. Everything from the # character to the end of the line will be removed. Example: %dbprofile% #this is a useless comment.\r\n\r\n\r\n--- Contacts ---\r\n\r\nWhenever a functions requires a contact as an argument, you can specify it in two ways:\r\n\r\n(1) Using a unique ID (UIN for ICQ, email for MSN) or, a protocol ID followed by a unique ID in the form , for example or .\r\n\r\n(2) Using the contact function:\r\n?contact(x,y)\r\nA contact will be searched which will have value x for its property y, y can be one of the following:\r\nfirst, last, nick, email, ID or display\r\n\r\nFor example: ?contact(miranda@hotmail.com,email) or ?contact(Miranda,nick). The contact function will return either a unique contact according to the arguments or nothing if none or multiple contacts exists with the given property.] [converts each non-html character into hex format] [converts each hex value into non-html character] [Boolean FALSE] [shows y if x is TRUE, otherwise it shows z] [shows x if x is TRUE, otherwise it shows y (if(x,x,y))] [the first argument parsed successfully] [y if w = x, else z] [TRUE if x = y] [Boolean TRUE] [pads decimal value x to length y with zeros] [get parent metacontact of contact x] [get default subcontact x] [get the 'most online' subcontact x] [Miranda Core Global] [will return parsed string %miranda_profile%\\Profiles\\%miranda_profilename%\\AvatarCache] [will return parsed string %miranda_profile%\\Profiles\\%miranda_profilename%\\Logs] [Miranda Core OS] [zth contact with property y described by x, example: (unregistered,nick) (z is optional)] [db setting z of module y of contact x and return w if z isn't exist (w is optional)] [get event for contact x (optional), according to y,z,w, see documentation] [get last seen time of contact x in format y (y is optional)] [get last seen date of contact x in format y (y is optional)] [get last seen status of contact x] [path to the Miranda NG executable] [info property y of protocol ID x] [retrieves the subject, depending on situation] [translates x] [get the version of Miranda] [get the contact display name] [get the date and time (using Miranda format)] [TRUE if service function exists] [(ANSI input only) substring match number z found in subject y with pattern x] [cuts x after the first line and appends y (y is optional)] [no operation, x as given] [pads x to length y prepending character z (z is optional)] [pads x to length y appending character z (z is optional)] [pads x to length y prepending character z, or cut if x is longer (z is optional)] [pads x to length y appending character z, or cut if x is longer (z is optional)] [replace all occurrences of y in x with z, multiple y and z arguments allowed] [moves string x, z characters to the left and trims it to y characters] [TRUE if x equals any of the following arguments] [TRUE if the first z characters of x equal y] [TRUE if x equals y, ignoring case] [TRUE if the first z characters of x equal y, ignoring case] [location of first occurrence of character y in string x] [location of last occurrence of character y in string x] [location of first occurrence of string y in x] [substring of x starting from position y to z] [z if y equals x, multiple y and z arguments allowed] [words (separated by white spaces) number y to z from string x (z is optional)] [TRUE if directory x exists] [shows files and directories of directory z, with filter y, separated by z (y and z optional)] [value y from registry key x (REG_SZ (string) values only)] [y > 0: line number y from file x, y = 0: the whole file, y < 0: line y counted from the end, y = r: random line] [variable set by put(s) with name x] [x, and stores y as variable named x]