GFX2_OpenURL()
This commit is contained in:
		
							parent
							
								
									663ddf39aa
								
							
						
					
					
						commit
						2fdceab6bc
					
				
							
								
								
									
										33
									
								
								src/help.c
									
									
									
									
									
								
							
							
						
						
									
										33
									
								
								src/help.c
									
									
									
									
									
								
							@ -361,38 +361,7 @@ static void Window_help_follow_link(const char * line)
 | 
				
			|||||||
    buffer[i++] = *link++;
 | 
					    buffer[i++] = *link++;
 | 
				
			||||||
  buffer[i] = '\0';
 | 
					  buffer[i] = '\0';
 | 
				
			||||||
  GFX2_Log(GFX2_DEBUG, "WWW link found : \"%s\"\n", buffer);
 | 
					  GFX2_Log(GFX2_DEBUG, "WWW link found : \"%s\"\n", buffer);
 | 
				
			||||||
#if defined(WIN32)
 | 
					  GFX2_OpenURL(buffer, i);
 | 
				
			||||||
  /*HINSTANCE hInst = */ShellExecuteA(NULL, "open", buffer, NULL, NULL, SW_SHOWNORMAL);
 | 
					 | 
				
			||||||
#elif defined(__macosx__)
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    OSStatus ret;
 | 
					 | 
				
			||||||
    CFURLRef url = CFURLCreateWithBytes (
 | 
					 | 
				
			||||||
        NULL,                   // allocator
 | 
					 | 
				
			||||||
        (UInt8*)buffer,         // URLBytes
 | 
					 | 
				
			||||||
        i,                      // length
 | 
					 | 
				
			||||||
        kCFStringEncodingASCII, // encoding
 | 
					 | 
				
			||||||
        NULL                    // baseURL
 | 
					 | 
				
			||||||
      );
 | 
					 | 
				
			||||||
    ret = LSOpenCFURLRef(url,0);
 | 
					 | 
				
			||||||
    if (ret != noErr)
 | 
					 | 
				
			||||||
      GFX2_Log(GFX2_ERROR, "LSOpenCFURLRef() returned %d\n", ret);
 | 
					 | 
				
			||||||
    CFRelease(url);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
#elif defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    int ret;
 | 
					 | 
				
			||||||
    char command[80]; // use the xdg-open command to open the url in the default browser
 | 
					 | 
				
			||||||
    snprintf(command, sizeof(command), "xdg-open \"%s\"", buffer);
 | 
					 | 
				
			||||||
    ret = system(command);
 | 
					 | 
				
			||||||
    if (ret < 0)
 | 
					 | 
				
			||||||
      GFX2_Log(GFX2_ERROR, "system('%s') FAILED\n", command);
 | 
					 | 
				
			||||||
    else if (ret == 127)
 | 
					 | 
				
			||||||
      GFX2_Log(GFX2_ERROR, "system() FAILED to execute shell\n");
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
#else
 | 
					 | 
				
			||||||
  // TODO : HAIKU, MINT, etc.
 | 
					 | 
				
			||||||
  GFX2_Log(GFX2_WARNING, "URL open not supported yet on this system.\n");
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
///
 | 
					///
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										37
									
								
								src/osdep.c
									
									
									
									
									
								
							
							
						
						
									
										37
									
								
								src/osdep.c
									
									
									
									
									
								
							@ -49,6 +49,43 @@ dword GFX2_GetTicks(void)
 | 
				
			|||||||
#endif
 | 
					#endif
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void GFX2_OpenURL(const char * buffer, unsigned int len)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					#if defined(WIN32)
 | 
				
			||||||
 | 
					  (void)len;
 | 
				
			||||||
 | 
					  /*HINSTANCE hInst = */ShellExecuteA(NULL, "open", buffer, NULL, NULL, SW_SHOWNORMAL);
 | 
				
			||||||
 | 
					#elif defined(__macosx__)
 | 
				
			||||||
 | 
					  OSStatus ret;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  CFURLRef url = CFURLCreateWithBytes (
 | 
				
			||||||
 | 
					      NULL,                   // allocator
 | 
				
			||||||
 | 
					      (UInt8*)buffer,         // URLBytes
 | 
				
			||||||
 | 
					      len,                    // length
 | 
				
			||||||
 | 
					      kCFStringEncodingASCII, // encoding
 | 
				
			||||||
 | 
					      NULL                    // baseURL
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					  ret = LSOpenCFURLRef(url,0);
 | 
				
			||||||
 | 
					  if (ret != noErr)
 | 
				
			||||||
 | 
					    GFX2_Log(GFX2_ERROR, "LSOpenCFURLRef() returned %d\n", ret);
 | 
				
			||||||
 | 
					  CFRelease(url);
 | 
				
			||||||
 | 
					#elif defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
 | 
				
			||||||
 | 
					  int ret;
 | 
				
			||||||
 | 
					  char command[256]; // use the xdg-open command to open the url in the default browser
 | 
				
			||||||
 | 
					  (void)len;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  snprintf(command, sizeof(command), "xdg-open \"%s\"", buffer);
 | 
				
			||||||
 | 
					  ret = system(command);
 | 
				
			||||||
 | 
					  if (ret < 0)
 | 
				
			||||||
 | 
					    GFX2_Log(GFX2_ERROR, "system('%s') FAILED\n", command);
 | 
				
			||||||
 | 
					  else if (ret == 127)
 | 
				
			||||||
 | 
					    GFX2_Log(GFX2_ERROR, "system() FAILED to execute shell\n");
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					  // TODO : HAIKU, MINT, etc.
 | 
				
			||||||
 | 
					  (void)len; (void)buffer;
 | 
				
			||||||
 | 
					  GFX2_Log(GFX2_WARNING, "URL open not supported yet on this system.\n");
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if defined(__macosx__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__SWITCH__)
 | 
					#if defined(__macosx__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__SWITCH__)
 | 
				
			||||||
  #if defined(__OpenBSD__)
 | 
					  #if defined(__OpenBSD__)
 | 
				
			||||||
  #include <sys/param.h>
 | 
					  #include <sys/param.h>
 | 
				
			||||||
 | 
				
			|||||||
@ -33,6 +33,13 @@
 | 
				
			|||||||
/// Return a number of milliseconds
 | 
					/// Return a number of milliseconds
 | 
				
			||||||
dword GFX2_GetTicks(void);
 | 
					dword GFX2_GetTicks(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Open an URL in the system default browser
 | 
				
			||||||
 | 
					 * @param url URL (ascii)
 | 
				
			||||||
 | 
					 * @param len URL length in bytes
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					void GFX2_OpenURL(const char * url, unsigned int len);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if defined (__MINT__)
 | 
					#if defined (__MINT__)
 | 
				
			||||||
void Atari_Memory_free(unsigned long *stRam, unsigned long *ttRam);
 | 
					void Atari_Memory_free(unsigned long *stRam, unsigned long *ttRam);
 | 
				
			||||||
#else
 | 
					#else
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user