void PurpleLine::register_commands() { purple_cmd_register( "sticker", "w", PURPLE_CMD_P_PRPL, (PurpleCmdFlag)(PURPLE_CMD_FLAG_IM | PURPLE_CMD_FLAG_CHAT), LINE_PRPL_ID, WRAPPER(PurpleLine::cmd_sticker), "Sends a sticker. The argument should be of the format VER/PKGID/ID.", nullptr); purple_cmd_register( "history", "w", PURPLE_CMD_P_PRPL, (PurpleCmdFlag) (PURPLE_CMD_FLAG_IM | PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS), LINE_PRPL_ID, WRAPPER(PurpleLine::cmd_history), "Shows more chat history. Optional argument specifies number of messages to show.", nullptr); purple_cmd_register( "open", "w", PURPLE_CMD_P_PRPL, (PurpleCmdFlag)(PURPLE_CMD_FLAG_IM | PURPLE_CMD_FLAG_CHAT), LINE_PRPL_ID, WRAPPER(PurpleLine::cmd_open), "Opens an attachment (image, audio) by number.", nullptr); }
static void plugin_check_open_close__exit(void) { if (current_plugin_handle) return; if (open_files_bitmap_is_clear(&open_files_bitmap)) return; logf("Plugin '%s' leaks file handles", current_plugin); static const char *lines[] = { ID2P(LANG_PLUGIN_ERROR), "#leak-file-handles" }; static const struct text_message message = { lines, 2 }; button_clear_queue(); /* Empty the keyboard buffer */ gui_syncyesno_run(&message, NULL, NULL); FOR_EACH_BITARRAY_SET_BIT(&open_files_bitmap, fildes) WRAPPER(close)(fildes); }
int main(int argc, char** argv) { if (argc != 2) { printf("Usage : ./LZ76.c filename.\n Three complexity flavours are available. See #define WRAPPER in the souce code.\n"); return 0; } FILE * f = fopen(argv[1],"r"); if (f == NULL) { printf("This file does not exist or cannot be read.\n"); return 0; } char line[1000]; //Strings cannot be longer than that. while (fscanf(f,"%s\n",line) != EOF) { printf("%f\n",WRAPPER(line,strlen(line))); } fclose(f); return 0; }