add doat plugin
This commit is contained in:
		
							parent
							
								
									99e015c3b3
								
							
						
					
					
						commit
						caa878bc93
					
				
					 5 changed files with 104 additions and 0 deletions
				
			
		|  | @ -47,6 +47,7 @@ copy %DEPS_ROOT%\bin\cert.pem %XCHAT_DEST% | |||
| copy %DEPS_ROOT%\bin\libenchant.dll %XCHAT_DEST% | ||||
| xcopy /q /s /i %DEPS_ROOT%\lib\enchant\libenchant_myspell.dll %XCHAT_DEST%\lib\enchant\ | ||||
| xcopy /q /s /i ..\plugins\checksum\xcchecksum.dll %XCHAT_DEST%\plugins\ | ||||
| copy ..\plugins\doat\xcdoat.dll %XCHAT_DEST%\plugins | ||||
| copy ..\plugins\lua\xclua.dll %XCHAT_DEST%\plugins | ||||
| ::copy ..\plugins\gtkpref\xcgtkpref.dll %XCHAT_DEST%\plugins | ||||
| copy ..\plugins\mpcinfo\xcmpcinfo.dll %XCHAT_DEST%\plugins | ||||
|  |  | |||
|  | @ -47,6 +47,7 @@ copy %DEPS_ROOT%\bin\cert.pem %XCHAT_DEST% | |||
| copy %DEPS_ROOT%\bin\libenchant.dll %XCHAT_DEST% | ||||
| xcopy /q /s /i %DEPS_ROOT%\lib\enchant\libenchant_myspell.dll %XCHAT_DEST%\lib\enchant\ | ||||
| xcopy /q /s /i ..\plugins\checksum\xcchecksum.dll %XCHAT_DEST%\plugins\ | ||||
| copy ..\plugins\doat\xcdoat.dll %XCHAT_DEST%\plugins | ||||
| copy ..\plugins\lua\xclua.dll %XCHAT_DEST%\plugins | ||||
| ::copy ..\plugins\gtkpref\xcgtkpref.dll %XCHAT_DEST%\plugins | ||||
| copy ..\plugins\mpcinfo\xcmpcinfo.dll %XCHAT_DEST%\plugins | ||||
|  |  | |||
							
								
								
									
										80
									
								
								plugins/doat/doat.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										80
									
								
								plugins/doat/doat.c
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,80 @@ | |||
| /* This program is free software. It comes without any warranty, to
 | ||||
|  * the extent permitted by applicable law. You can redistribute it | ||||
|  * and/or modify it under the terms of the Do What The Fuck You Want | ||||
|  * To Public License, Version 2, as published by Sam Hocevar. See | ||||
|  * http://sam.zoy.org/wtfpl/COPYING or http://lwsitu.com/xchat/COPYING
 | ||||
|  * for more details. */ | ||||
| 
 | ||||
| #include <stdlib.h> | ||||
| #include <string.h> | ||||
| #include <stdio.h> | ||||
| #include "xchat-plugin.h" | ||||
| 
 | ||||
| static xchat_plugin *ph; | ||||
| 
 | ||||
| static int | ||||
| parse_command( char *word[], char *word_eol[], void *userdata ) { | ||||
| 	char *channel = NULL, *server = NULL, *token = NULL; | ||||
| /*	char *save_ptr1 = NULL;*/ | ||||
| 	char *str1 = NULL; | ||||
| 	char *delimiter = NULL; | ||||
| 
 | ||||
| 	xchat_context *ctx = NULL; | ||||
| 
 | ||||
| 	if( word[2] != NULL && word[3] != NULL ) { | ||||
| 		for( str1 = word[2]; ; str1 = NULL ) { | ||||
| /*			token = strtok_r( str1, ",", &save_ptr1 );*/ | ||||
| 			token = strtok( str1, "," ); | ||||
| /*			printf( "token: %s\n", token );*/ | ||||
| 
 | ||||
| 			if( token == NULL ) { | ||||
| 				break; | ||||
| 			} | ||||
| 
 | ||||
| 			channel = malloc( strlen( token ) + 1 ); | ||||
| 			strcpy( channel, token ); | ||||
| 				 | ||||
| 			delimiter = strchr( channel, '/' ); | ||||
| 
 | ||||
| 			server = NULL; | ||||
| 			if( delimiter != NULL ) { | ||||
| 				*delimiter = '\0'; | ||||
| 				server = delimiter + 1; | ||||
| 			} | ||||
| 
 | ||||
| /*			printf( "channel[%s] server[%s]\n", channel, server );*/ | ||||
| 
 | ||||
| 			if( (ctx = xchat_find_context( ph, server, channel ) ) != NULL ) { | ||||
| 				if( xchat_set_context( ph, ctx ) ) { | ||||
| 					xchat_command( ph, word_eol[3] ); | ||||
| 				} | ||||
| 			} | ||||
| 
 | ||||
| 			free( channel ); | ||||
| 		} | ||||
| 	} | ||||
| 	return XCHAT_EAT_XCHAT; | ||||
| } | ||||
| 
 | ||||
| int | ||||
| xchat_plugin_init( xchat_plugin * plugin_handle, char **plugin_name, | ||||
| 	char **plugin_desc, char **plugin_version, char *arg ) { | ||||
| 
 | ||||
| 	ph = plugin_handle; | ||||
| 	*plugin_name = "Do At"; | ||||
| 	*plugin_version = "1.0"; | ||||
| 	*plugin_desc = "Perform an arbitrary command on multiple channels"; | ||||
| 
 | ||||
| 	xchat_hook_command( ph, "doat", XCHAT_PRI_NORM, parse_command, "DOAT [channel,list,/network] [command], perform a command on multiple contexts", NULL ); | ||||
| 
 | ||||
| 	xchat_print (ph, "Do At plugin loaded\n"); | ||||
| 
 | ||||
| 	return 1; | ||||
| } | ||||
| 
 | ||||
| int | ||||
| xchat_plugin_deinit (void) | ||||
| { | ||||
| 	xchat_print (ph, "Do At plugin unloaded\n"); | ||||
| 	return 1; | ||||
| } | ||||
							
								
								
									
										18
									
								
								plugins/doat/makefile.mak
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								plugins/doat/makefile.mak
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,18 @@ | |||
| include "..\..\src\makeinc.mak" | ||||
| 
 | ||||
| all: doat.obj doat.def | ||||
| 	link $(LDFLAGS) $(LIBS) /dll /out:xcdoat.dll /def:doat.def doat.obj | ||||
| 
 | ||||
| doat.def: | ||||
| 	echo EXPORTS > doat.def | ||||
| 	echo xchat_plugin_init >> doat.def | ||||
| 	echo xchat_plugin_deinit >> doat.def | ||||
| 
 | ||||
| doat.obj: doat.c makefile.mak | ||||
| 	cl $(CFLAGS) $(GLIB) /I.. doat.c | ||||
| 
 | ||||
| clean: | ||||
| 	del *.obj | ||||
| 	del *.dll | ||||
| 	del *.exp | ||||
| 	del *.lib | ||||
|  | @ -3,6 +3,8 @@ all: | |||
| 	@-$(MAKE) /nologo /s /f makefile.mak $@ | ||||
| #	@cd ..\gtkpref
 | ||||
| #	@-$(MAKE) /nologo /s /f makefile.mak $@
 | ||||
| 	@cd ..\doat | ||||
| 	@-$(MAKE) /nologo /s /f makefile.mak $@ | ||||
| 	@cd ..\lua | ||||
| 	@-$(MAKE) /nologo /s /f makefile.mak $@ | ||||
| 	@cd ..\mpcinfo | ||||
|  | @ -25,6 +27,8 @@ clean: | |||
| 	@-$(MAKE) /nologo /s /f makefile.mak clean $@ | ||||
| #	@cd ..\gtkpref
 | ||||
| #	@-$(MAKE) /nologo /s /f makefile.mak clean $@
 | ||||
| 	@cd ..\doat | ||||
| 	@-$(MAKE) /nologo /s /f makefile.mak clean $@ | ||||
| 	@cd ..\lua | ||||
| 	@-$(MAKE) /nologo /s /f makefile.mak clean $@ | ||||
| 	@cd ..\mpcinfo | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue