SDL: Updated "see also" references to be more consistent

From d8a54cd4f81dac90848bc5c40f9cfc4623e1bb7f Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Sun, 17 Mar 2024 11:00:15 -0700
Subject: [PATCH] Updated "see also" references to be more consistent

Fixes https://github.com/libsdl-org/SDL/issues/9282
---
 include/SDL3/SDL_atomic.h     |  2 -
 include/SDL3/SDL_audio.h      | 60 ++++---------------------
 include/SDL3/SDL_clipboard.h  |  3 +-
 include/SDL3/SDL_cpuinfo.h    | 66 ----------------------------
 include/SDL3/SDL_dialog.h     |  8 ----
 include/SDL3/SDL_filesystem.h |  2 -
 include/SDL3/SDL_gamepad.h    | 79 ++++++++++++++++++++++++++++-----
 include/SDL3/SDL_haptic.h     | 25 +++--------
 include/SDL3/SDL_hints.h      |  8 ++--
 include/SDL3/SDL_iostream.h   | 42 +++++-------------
 include/SDL3/SDL_joystick.h   | 66 +++++++++++++++++++++++-----
 include/SDL3/SDL_loadso.h     |  2 -
 include/SDL3/SDL_log.h        |  2 +
 include/SDL3/SDL_main.h       |  4 --
 include/SDL3/SDL_metal.h      |  2 -
 include/SDL3/SDL_mouse.h      |  9 ++--
 include/SDL3/SDL_mutex.h      | 69 +++++++++--------------------
 include/SDL3/SDL_pen.h        |  4 --
 include/SDL3/SDL_pixels.h     |  9 ++--
 include/SDL3/SDL_properties.h |  9 ++++
 include/SDL3/SDL_render.h     | 81 ++++++++++++++++------------------
 include/SDL3/SDL_storage.h    | 83 +++++++++++------------------------
 include/SDL3/SDL_surface.h    | 36 +++++++--------
 include/SDL3/SDL_thread.h     | 11 ++---
 include/SDL3/SDL_touch.h      |  2 +
 include/SDL3/SDL_video.h      | 30 +------------
 26 files changed, 277 insertions(+), 437 deletions(-)

diff --git a/include/SDL3/SDL_atomic.h b/include/SDL3/SDL_atomic.h
index c7e4e6c3974fb..b5ebe007919f4 100644
--- a/include/SDL3/SDL_atomic.h
+++ b/include/SDL3/SDL_atomic.h
@@ -283,8 +283,6 @@ typedef struct SDL_AtomicInt { int value; } SDL_AtomicInt;
  * \since This function is available since SDL 3.0.0.
  *
  * \sa SDL_AtomicCompareAndSwapPointer
- * \sa SDL_AtomicGet
- * \sa SDL_AtomicSet
  */
 extern DECLSPEC SDL_bool SDLCALL SDL_AtomicCompareAndSwap(SDL_AtomicInt *a, int oldval, int newval);
 
diff --git a/include/SDL3/SDL_audio.h b/include/SDL3/SDL_audio.h
index 16820be6f7c54..feac79c5a3183 100644
--- a/include/SDL3/SDL_audio.h
+++ b/include/SDL3/SDL_audio.h
@@ -561,7 +561,6 @@ extern DECLSPEC void SDLCALL SDL_CloseAudioDevice(SDL_AudioDeviceID devid);
  * \since This function is available since SDL 3.0.0.
  *
  * \sa SDL_BindAudioStreams
- * \sa SDL_UnbindAudioStreams
  * \sa SDL_UnbindAudioStream
  * \sa SDL_GetAudioStreamDevice
  */
@@ -583,7 +582,6 @@ extern DECLSPEC int SDLCALL SDL_BindAudioStreams(SDL_AudioDeviceID devid, SDL_Au
  * \since This function is available since SDL 3.0.0.
  *
  * \sa SDL_BindAudioStreams
- * \sa SDL_UnbindAudioStreams
  * \sa SDL_UnbindAudioStream
  * \sa SDL_GetAudioStreamDevice
  */
@@ -607,9 +605,6 @@ extern DECLSPEC int SDLCALL SDL_BindAudioStream(SDL_AudioDeviceID devid, SDL_Aud
  * \since This function is available since SDL 3.0.0.
  *
  * \sa SDL_BindAudioStreams
- * \sa SDL_BindAudioStream
- * \sa SDL_UnbindAudioStream
- * \sa SDL_GetAudioStreamDevice
  */
 extern DECLSPEC void SDLCALL SDL_UnbindAudioStreams(SDL_AudioStream **streams, int num_streams);
 
@@ -626,9 +621,6 @@ extern DECLSPEC void SDLCALL SDL_UnbindAudioStreams(SDL_AudioStream **streams, i
  * \since This function is available since SDL 3.0.0.
  *
  * \sa SDL_BindAudioStream
- * \sa SDL_BindAudioStreams
- * \sa SDL_UnbindAudioStreams
- * \sa SDL_GetAudioStreamDevice
  */
 extern DECLSPEC void SDLCALL SDL_UnbindAudioStream(SDL_AudioStream *stream);
 
@@ -649,8 +641,6 @@ extern DECLSPEC void SDLCALL SDL_UnbindAudioStream(SDL_AudioStream *stream);
  *
  * \sa SDL_BindAudioStream
  * \sa SDL_BindAudioStreams
- * \sa SDL_UnbindAudioStream
- * \sa SDL_UnbindAudioStreams
  */
 extern DECLSPEC SDL_AudioDeviceID SDLCALL SDL_GetAudioStreamDevice(SDL_AudioStream *stream);
 
@@ -727,9 +717,6 @@ extern DECLSPEC int SDLCALL SDL_GetAudioStreamFormat(SDL_AudioStream *stream,
  * \since This function is available since SDL 3.0.0.
  *
  * \sa SDL_GetAudioStreamFormat
- * \sa SDL_PutAudioStreamData
- * \sa SDL_GetAudioStreamData
- * \sa SDL_GetAudioStreamAvailable
  * \sa SDL_SetAudioStreamFrequencyRatio
  */
 extern DECLSPEC int SDLCALL SDL_SetAudioStreamFormat(SDL_AudioStream *stream,
@@ -801,12 +788,10 @@ extern DECLSPEC int SDLCALL SDL_SetAudioStreamFrequencyRatio(SDL_AudioStream *st
  *
  * \since This function is available since SDL 3.0.0.
  *
- * \sa SDL_CreateAudioStream
- * \sa SDL_GetAudioStreamData
- * \sa SDL_GetAudioStreamAvailable
- * \sa SDL_FlushAudioStream
  * \sa SDL_ClearAudioStream
- * \sa SDL_DestroyAudioStream
+ * \sa SDL_FlushAudioStream
+ * \sa SDL_GetAudioStreamData
+ * \sa SDL_GetAudioStreamQueued
  */
 extern DECLSPEC int SDLCALL SDL_PutAudioStreamData(SDL_AudioStream *stream, const void *buf, int len);
 
@@ -833,13 +818,9 @@ extern DECLSPEC int SDLCALL SDL_PutAudioStreamData(SDL_AudioStream *stream, cons
  *
  * \since This function is available since SDL 3.0.0.
  *
- * \sa SDL_CreateAudioStream
- * \sa SDL_PutAudioStreamData
- * \sa SDL_GetAudioStreamAvailable
- * \sa SDL_SetAudioStreamFormat
- * \sa SDL_FlushAudioStream
  * \sa SDL_ClearAudioStream
- * \sa SDL_DestroyAudioStream
+ * \sa SDL_GetAudioStreamAvailable
+ * \sa SDL_PutAudioStreamData
  */
 extern DECLSPEC int SDLCALL SDL_GetAudioStreamData(SDL_AudioStream *stream, void *buf, int len);
 
@@ -863,12 +844,8 @@ extern DECLSPEC int SDLCALL SDL_GetAudioStreamData(SDL_AudioStream *stream, void
  *
  * \since This function is available since SDL 3.0.0.
  *
- * \sa SDL_CreateAudioStream
- * \sa SDL_PutAudioStreamData
  * \sa SDL_GetAudioStreamData
- * \sa SDL_FlushAudioStream
- * \sa SDL_ClearAudioStream
- * \sa SDL_DestroyAudioStream
+ * \sa SDL_PutAudioStreamData
  */
 extern DECLSPEC int SDLCALL SDL_GetAudioStreamAvailable(SDL_AudioStream *stream);
 
@@ -900,7 +877,6 @@ extern DECLSPEC int SDLCALL SDL_GetAudioStreamAvailable(SDL_AudioStream *stream)
  * \since This function is available since SDL 3.0.0.
  *
  * \sa SDL_PutAudioStreamData
- * \sa SDL_GetAudioStreamData
  * \sa SDL_ClearAudioStream
  */
 extern DECLSPEC int SDLCALL SDL_GetAudioStreamQueued(SDL_AudioStream *stream);
@@ -922,12 +898,7 @@ extern DECLSPEC int SDLCALL SDL_GetAudioStreamQueued(SDL_AudioStream *stream);
  *
  * \since This function is available since SDL 3.0.0.
  *
- * \sa SDL_CreateAudioStream
  * \sa SDL_PutAudioStreamData
- * \sa SDL_GetAudioStreamData
- * \sa SDL_GetAudioStreamAvailable
- * \sa SDL_ClearAudioStream
- * \sa SDL_DestroyAudioStream
  */
 extern DECLSPEC int SDLCALL SDL_FlushAudioStream(SDL_AudioStream *stream);
 
@@ -942,12 +913,10 @@ extern DECLSPEC int SDLCALL SDL_FlushAudioStream(SDL_AudioStream *stream);
  *
  * \since This function is available since SDL 3.0.0.
  *
- * \sa SDL_CreateAudioStream
- * \sa SDL_PutAudioStreamData
- * \sa SDL_GetAudioStreamData
  * \sa SDL_GetAudioStreamAvailable
- * \sa SDL_FlushAudioStream
- * \sa SDL_DestroyAudioStream
+ * \sa SDL_GetAudioStreamData
+ * \sa SDL_GetAudioStreamQueued
+ * \sa SDL_PutAudioStreamData
  */
 extern DECLSPEC int SDLCALL SDL_ClearAudioStream(SDL_AudioStream *stream);
 
@@ -976,8 +945,6 @@ extern DECLSPEC int SDLCALL SDL_ClearAudioStream(SDL_AudioStream *stream);
  * \since This function is available since SDL 3.0.0.
  *
  * \sa SDL_UnlockAudioStream
- * \sa SDL_SetAudioStreamPutCallback
- * \sa SDL_SetAudioStreamGetCallback
  */
 extern DECLSPEC int SDLCALL SDL_LockAudioStream(SDL_AudioStream *stream);
 
@@ -997,8 +964,6 @@ extern DECLSPEC int SDLCALL SDL_LockAudioStream(SDL_AudioStream *stream);
  * \since This function is available since SDL 3.0.0.
  *
  * \sa SDL_LockAudioStream
- * \sa SDL_SetAudioStreamPutCallback
- * \sa SDL_SetAudioStreamGetCallback
  */
 extern DECLSPEC int SDLCALL SDL_UnlockAudioStream(SDL_AudioStream *stream);
 
@@ -1134,11 +1099,6 @@ extern DECLSPEC int SDLCALL SDL_SetAudioStreamPutCallback(SDL_AudioStream *strea
  * \since This function is available since SDL 3.0.0.
  *
  * \sa SDL_CreateAudioStream
- * \sa SDL_PutAudioStreamData
- * \sa SDL_GetAudioStreamData
- * \sa SDL_GetAudioStreamAvailable
- * \sa SDL_FlushAudioStream
- * \sa SDL_ClearAudioStream
  */
 extern DECLSPEC void SDLCALL SDL_DestroyAudioStream(SDL_AudioStream *stream);
 
@@ -1458,8 +1418,6 @@ extern DECLSPEC int SDLCALL SDL_MixAudioFormat(Uint8 * dst,
  * \threadsafety It is safe to call this function from any thread.
  *
  * \since This function is available since SDL 3.0.0.
- *
- * \sa SDL_CreateAudioStream
  */
 extern DECLSPEC int SDLCALL SDL_ConvertAudioSamples(const SDL_AudioSpec *src_spec,
                                                     const Uint8 *src_data,
diff --git a/include/SDL3/SDL_clipboard.h b/include/SDL3/SDL_clipboard.h
index 84317613f80ed..7e2d3aba6662c 100644
--- a/include/SDL3/SDL_clipboard.h
+++ b/include/SDL3/SDL_clipboard.h
@@ -187,8 +187,7 @@ typedef void (SDLCALL *SDL_ClipboardCleanupCallback)(void *userdata);
  *
  * \since This function is available since SDL 3.0.0.
  *
- * \sa SDL_ClipboardDataCallback
- * \sa SDL_SetClipboardData
+ * \sa SDL_ClearClipboardData
  * \sa SDL_GetClipboardData
  * \sa SDL_HasClipboardData
  */
diff --git a/include/SDL3/SDL_cpuinfo.h b/include/SDL3/SDL_cpuinfo.h
index c4b3d3988906b..59a4b325392e6 100644
--- a/include/SDL3/SDL_cpuinfo.h
+++ b/include/SDL3/SDL_cpuinfo.h
@@ -75,16 +75,6 @@ extern DECLSPEC int SDLCALL SDL_GetCPUCacheLineSize(void);
  * \returns SDL_TRUE if the CPU has AltiVec features or SDL_FALSE if not.
  *
  * \since This function is available since SDL 3.0.0.
- *
- * \sa SDL_HasAVX
- * \sa SDL_HasAVX2
- * \sa SDL_HasAVX512F
- * \sa SDL_HasMMX
- * \sa SDL_HasSSE
- * \sa SDL_HasSSE2
- * \sa SDL_HasSSE3
- * \sa SDL_HasSSE41
- * \sa SDL_HasSSE42
  */
 extern DECLSPEC SDL_bool SDLCALL SDL_HasAltiVec(void);
 
@@ -96,16 +86,6 @@ extern DECLSPEC SDL_bool SDLCALL SDL_HasAltiVec(void);
  * \returns SDL_TRUE if the CPU has MMX features or SDL_FALSE if not.
  *
  * \since This function is available since SDL 3.0.0.
- *
- * \sa SDL_HasAltiVec
- * \sa SDL_HasAVX
- * \sa SDL_HasAVX2
- * \sa SDL_HasAVX512F
- * \sa SDL_HasSSE
- * \sa SDL_HasSSE2
- * \sa SDL_HasSSE3
- * \sa SDL_HasSSE41
- * \sa SDL_HasSSE42
  */
 extern DECLSPEC SDL_bool SDLCALL SDL_HasMMX(void);
 
@@ -118,11 +98,6 @@ extern DECLSPEC SDL_bool SDLCALL SDL_HasMMX(void);
  *
  * \since This function is available since SDL 3.0.0.
  *
- * \sa SDL_HasAltiVec
- * \sa SDL_HasAVX
- * \sa SDL_HasAVX2
- * \sa SDL_HasAVX512F
- * \sa SDL_HasMMX
  * \sa SDL_HasSSE2
  * \sa SDL_HasSSE3
  * \sa SDL_HasSSE41
@@ -139,11 +114,6 @@ extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE(void);
  *
  * \since This function is available since SDL 3.0.0.
  *
- * \sa SDL_HasAltiVec
- * \sa SDL_HasAVX
- * \sa SDL_HasAVX2
- * \sa SDL_HasAVX512F
- * \sa SDL_HasMMX
  * \sa SDL_HasSSE
  * \sa SDL_HasSSE3
  * \sa SDL_HasSSE41
@@ -160,11 +130,6 @@ extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE2(void);
  *
  * \since This function is available since SDL 3.0.0.
  *
- * \sa SDL_HasAltiVec
- * \sa SDL_HasAVX
- * \sa SDL_HasAVX2
- * \sa SDL_HasAVX512F
- * \sa SDL_HasMMX
  * \sa SDL_HasSSE
  * \sa SDL_HasSSE2
  * \sa SDL_HasSSE41
@@ -181,11 +146,6 @@ extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE3(void);
  *
  * \since This function is available since SDL 3.0.0.
  *
- * \sa SDL_HasAltiVec
- * \sa SDL_HasAVX
- * \sa SDL_HasAVX2
- * \sa SDL_HasAVX512F
- * \sa SDL_HasMMX
  * \sa SDL_HasSSE
  * \sa SDL_HasSSE2
  * \sa SDL_HasSSE3
@@ -202,11 +162,6 @@ extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE41(void);
  *
  * \since This function is available since SDL 3.0.0.
  *
- * \sa SDL_HasAltiVec
- * \sa SDL_HasAVX
- * \sa SDL_HasAVX2
- * \sa SDL_HasAVX512F
- * \sa SDL_HasMMX
  * \sa SDL_HasSSE
  * \sa SDL_HasSSE2
  * \sa SDL_HasSSE3
@@ -223,15 +178,8 @@ extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE42(void);
  *
  * \since This function is available since SDL 3.0.0.
  *
- * \sa SDL_HasAltiVec
  * \sa SDL_HasAVX2
  * \sa SDL_HasAVX512F
- * \sa SDL_HasMMX
- * \sa SDL_HasSSE
- * \sa SDL_HasSSE2
- * \sa SDL_HasSSE3
- * \sa SDL_HasSSE41
- * \sa SDL_HasSSE42
  */
 extern DECLSPEC SDL_bool SDLCALL SDL_HasAVX(void);
 
@@ -244,15 +192,8 @@ extern DECLSPEC SDL_bool SDLCALL SDL_HasAVX(void);
  *
  * \since This function is available since SDL 3.0.0.
  *
- * \sa SDL_HasAltiVec
  * \sa SDL_HasAVX
  * \sa SDL_HasAVX512F
- * \sa SDL_HasMMX
- * \sa SDL_HasSSE
- * \sa SDL_HasSSE2
- * \sa SDL_HasSSE3
- * \sa SDL_HasSSE41
- * \sa SDL_HasSSE42
  */
 extern DECLSPEC SDL_bool SDLCALL SDL_HasAVX2(void);
 
@@ -265,15 +206,8 @@ extern DECLSPEC SDL_bool SDLCALL SDL_HasAVX2(void);
  *
  * \since This function is available since SDL 3.0.0.
  *
- * \sa SDL_HasAltiVec
  * \sa SDL_HasAVX
  * \sa SDL_HasAVX2
- * \sa SDL_HasMMX
- * \sa SDL_HasSSE
- * \sa SDL_HasSSE2
- * \sa SDL_HasSSE3
- * \sa SDL_HasSSE41
- * \sa SDL_HasSSE42
  */
 extern DECLSPEC SDL_bool SDLCALL SDL_HasAVX512F(void);
 
diff --git a/include/SDL3/SDL_dialog.h b/include/SDL3/SDL_dialog.h
index 0554a932b8a37..4af592e508690 100644
--- a/include/SDL3/SDL_dialog.h
+++ b/include/SDL3/SDL_dialog.h
@@ -116,8 +116,6 @@ typedef void(SDLCALL *SDL_DialogFileCallback)(void *userdata, const char * const
  *
  * \since This function is available since SDL 3.0.0.
  *
- * \sa SDL_DialogFileFilter
- * \sa SDL_DialogFileCallback
  * \sa SDL_ShowSaveFileDialog
  * \sa SDL_ShowOpenFolderDialog
  */
@@ -161,10 +159,7 @@ extern DECLSPEC void SDLCALL SDL_ShowOpenFileDialog(SDL_DialogFileCallback callb
  *
  * \since This function is available since SDL 3.0.0.
  *
- * \sa SDL_DialogFileFilter
- * \sa SDL_DialogFileCallback
  * \sa SDL_ShowOpenFileDialog
- * \sa SDL_ShowOpenFolderDialog
  */
 extern DECLSPEC void SDLCALL SDL_ShowSaveFileDialog(SDL_DialogFileCallback callback, void *userdata, SDL_Window *window, const SDL_DialogFileFilter *filters, const char *default_location);
 
@@ -205,10 +200,7 @@ extern DECLSPEC void SDLCALL SDL_ShowSaveFileDialog(SDL_DialogFileCallback callb
  *
  * \since This function is available since SDL 3.0.0.
  *
- * \sa SDL_DialogFileFilter
- * \sa SDL_DialogFileCallback
  * \sa SDL_ShowOpenFileDialog
- * \sa SDL_ShowSaveFileDialog
  */
 extern DECLSPEC void SDLCALL SDL_ShowOpenFolderDialog(SDL_DialogFileCallback callback, void *userdata, SDL_Window *window, const char *default_location, SDL_bool allow_many);
 
diff --git a/include/SDL3/SDL_filesystem.h b/include/SDL3/SDL_filesystem.h
index 1d49be7df7427..c98c1b1a04b43 100644
--- a/include/SDL3/SDL_filesystem.h
+++ b/include/SDL3/SDL_filesystem.h
@@ -231,8 +231,6 @@ typedef enum
  *          folder, or NULL if an error happened.
  *
  * \since This function is available since SDL 3.0.0.
- *
- * \sa SDL_Folder
  */
 extern DECLSPEC char *SDLCALL SDL_GetUserFolder(SDL_Folder folder);
 
diff --git a/include/SDL3/SDL_gamepad.h b/include/SDL3/SDL_gamepad.h
index c35adf3c474bb..1b2f25f59ad21 100644
--- a/include/SDL3/SDL_gamepad.h
+++ b/include/SDL3/SDL_gamepad.h
@@ -251,7 +251,7 @@ typedef struct SDL_GamepadBinding
 extern DECLSPEC int SDLCALL SDL_AddGamepadMapping(const char *mapping);
 
 /**
- * Load a set of gamepad mappings from a seekable SDL data stream.
+ * Load a set of gamepad mappings from an SDL_IOStream.
  *
  * You can call this function several times, if needed, to load different
  * database files.
@@ -277,6 +277,7 @@ extern DECLSPEC int SDLCALL SDL_AddGamepadMapping(const char *mapping);
  *
  * \sa SDL_AddGamepadMapping
  * \sa SDL_AddGamepadMappingsFromFile
+ * \sa SDL_GetGamepadMapping
  * \sa SDL_GetGamepadMappingForGUID
  */
 extern DECLSPEC int SDLCALL SDL_AddGamepadMappingsFromIO(SDL_IOStream *src, SDL_bool closeio);
@@ -302,6 +303,7 @@ extern DECLSPEC int SDLCALL SDL_AddGamepadMappingsFromIO(SDL_IOStream *src, SDL_
  *
  * \sa SDL_AddGamepadMapping
  * \sa SDL_AddGamepadMappingsFromIO
+ * \sa SDL_GetGamepadMapping
  * \sa SDL_GetGamepadMappingForGUID
  */
 extern DECLSPEC int SDLCALL SDL_AddGamepadMappingsFromFile(const char *file);
@@ -363,6 +365,7 @@ extern DECLSPEC char * SDLCALL SDL_GetGamepadMappingForGUID(SDL_JoystickGUID gui
  * \since This function is available since SDL 3.0.0.
  *
  * \sa SDL_AddGamepadMapping
+ * \sa SDL_GetGamepadInstanceMapping
  * \sa SDL_GetGamepadMappingForGUID
  * \sa SDL_SetGamepadMapping
  */
@@ -409,6 +412,7 @@ extern DECLSPEC SDL_JoystickID *SDLCALL SDL_GetGamepads(int *count);
  *
  * \since This function is available since SDL 3.0.0.
  *
+ * \sa SDL_GetJoysticks
  * \sa SDL_OpenGamepad
  */
 extern DECLSPEC SDL_bool SDLCALL SDL_IsGamepad(SDL_JoystickID instance_id);
@@ -425,7 +429,7 @@ extern DECLSPEC SDL_bool SDLCALL SDL_IsGamepad(SDL_JoystickID instance_id);
  * \since This function is available since SDL 3.0.0.
  *
  * \sa SDL_GetGamepadName
- * \sa SDL_OpenGamepad
+ * \sa SDL_GetGamepads
  */
 extern DECLSPEC const char *SDLCALL SDL_GetGamepadInstanceName(SDL_JoystickID instance_id);
 
@@ -441,7 +445,7 @@ extern DECLSPEC const char *SDLCALL SDL_GetGamepadInstanceName(SDL_JoystickID in
  * \since This function is available since SDL 3.0.0.
  *
  * \sa SDL_GetGamepadPath
- * \sa SDL_OpenGamepad
+ * \sa SDL_GetGamepads
  */
 extern DECLSPEC const char *SDLCALL SDL_GetGamepadInstancePath(SDL_JoystickID instance_id);
 
@@ -456,7 +460,7 @@ extern DECLSPEC const char *SDLCALL SDL_GetGamepadInstancePath(SDL_JoystickID in
  * \since This function is available since SDL 3.0.0.
  *
  * \sa SDL_GetGamepadPlayerIndex
- * \sa SDL_OpenGamepad
+ * \sa SDL_GetGamepads
  */
 extern DECLSPEC int SDLCALL SDL_GetGamepadInstancePlayerIndex(SDL_JoystickID instance_id);
 
@@ -473,6 +477,7 @@ extern DECLSPEC int SDLCALL SDL_GetGamepadInstancePlayerIndex(SDL_JoystickID ins
  *
  * \sa SDL_GetGamepadGUID
  * \sa SDL_GetGamepadGUIDString
+ * \sa SDL_GetGamepads
  */
 extern DECLSPEC SDL_JoystickGUID SDLCALL SDL_GetGamepadInstanceGUID(SDL_JoystickID instance_id);
 
@@ -487,6 +492,9 @@ extern DECLSPEC SDL_JoystickGUID SDLCALL SDL_GetGamepadInstanceGUID(SDL_Joystick
  *          index, this function returns zero
  *
  * \since This function is available since SDL 3.0.0.
+ *
+ * \sa SDL_GetGamepadVendor
+ * \sa SDL_GetGamepads
  */
 extern DECLSPEC Uint16 SDLCALL SDL_GetGamepadInstanceVendor(SDL_JoystickID instance_id);
 
@@ -501,6 +509,9 @@ extern DECLSPEC Uint16 SDLCALL SDL_GetGamepadInstanceVendor(SDL_JoystickID insta
  *          invalid index, this function returns zero
  *
  * \since This function is available since SDL 3.0.0.
+ *
+ * \sa SDL_GetGamepadProduct
+ * \sa SDL_GetGamepads
  */
 extern DECLSPEC Uint16 SDLCALL SDL_GetGamepadInstanceProduct(SDL_JoystickID instance_id);
 
@@ -515,6 +526,9 @@ extern DECLSPEC Uint16 SDLCALL SDL_GetGamepadInstanceProduct(SDL_JoystickID inst
  *          invalid index, this function returns zero
  *
  * \since This function is available since SDL 3.0.0.
+ *
+ * \sa SDL_GetGamepadProductVersion
+ * \sa SDL_GetGamepads
  */
 extern DECLSPEC Uint16 SDLCALL SDL_GetGamepadInstanceProductVersion(SDL_JoystickID instance_id);
 
@@ -527,6 +541,10 @@ extern DECLSPEC Uint16 SDLCALL SDL_GetGamepadInstanceProductVersion(SDL_Joystick
  * \returns the gamepad type.
  *
  * \since This function is available since SDL 3.0.0.
+ *
+ * \sa SDL_GetGamepadType
+ * \sa SDL_GetGamepads
+ * \sa SDL_GetRealGamepadInstanceType
  */
 extern DECLSPEC SDL_GamepadType SDLCALL SDL_GetGamepadInstanceType(SDL_JoystickID instance_id);
 
@@ -539,6 +557,10 @@ extern DECLSPEC SDL_GamepadType SDLCALL SDL_GetGamepadInstanceType(SDL_JoystickI
  * \returns the gamepad type.
  *
  * \since This function is available since SDL 3.0.0.
+ *
+ * \sa SDL_GetGamepadInstanceType
+ * \sa SDL_GetGamepads
+ * \sa SDL_GetRealGamepadType
  */
 extern DECLSPEC SDL_GamepadType SDLCALL SDL_GetRealGamepadInstanceType(SDL_JoystickID instance_id);
 
@@ -552,6 +574,9 @@ extern DECLSPEC SDL_GamepadType SDLCALL SDL_GetRealGamepadInstanceType(SDL_Joyst
  *          no mapping is available.
  *
  * \since This function is available since SDL 3.0.0.
+ *
+ * \sa SDL_GetGamepads
+ * \sa SDL_GetGamepadMapping
  */
 extern DECLSPEC char *SDLCALL SDL_GetGamepadInstanceMapping(SDL_JoystickID instance_id);
 
@@ -639,8 +664,6 @@ extern DECLSPEC SDL_PropertiesID SDLCALL SDL_GetGamepadProperties(SDL_Gamepad *g
  *          failure; call SDL_GetError() for more information.
  *
  * \since This function is available since SDL 3.0.0.
- *
- * \sa SDL_OpenGamepad
  */
 extern DECLSPEC SDL_JoystickID SDLCALL SDL_GetGamepadInstanceID(SDL_Gamepad *gamepad);
 
@@ -655,7 +678,6 @@ extern DECLSPEC SDL_JoystickID SDLCALL SDL_GetGamepadInstanceID(SDL_Gamepad *gam
  * \since This function is available since SDL 3.0.0.
  *
  * \sa SDL_GetGamepadInstanceName
- * \sa SDL_OpenGamepad
  */
 extern DECLSPEC const char *SDLCALL SDL_GetGamepadName(SDL_Gamepad *gamepad);
 
@@ -708,6 +730,8 @@ extern DECLSPEC SDL_GamepadType SDLCALL SDL_GetRealGamepadType(SDL_Gamepad *game
  * \returns the player index for gamepad, or -1 if it's not available.
  *
  * \since This function is available since SDL 3.0.0.
+ *
+ * \sa SDL_SetGamepadPlayerIndex
  */
 extern DECLSPEC int SDLCALL SDL_GetGamepadPlayerIndex(SDL_Gamepad *gamepad);
 
@@ -721,6 +745,8 @@ extern DECLSPEC int SDLCALL SDL_GetGamepadPlayerIndex(SDL_Gamepad *gamepad);
  *          SDL_GetError() for more information.
  *
  * \since This function is available since SDL 3.0.0.
+ *
+ * \sa SDL_GetGamepadPlayerIndex
  */
 extern DECLSPEC int SDLCALL SDL_SetGamepadPlayerIndex(SDL_Gamepad *gamepad, int player_index);
 
@@ -733,6 +759,8 @@ extern DECLSPEC int SDLCALL SDL_SetGamepadPlayerIndex(SDL_Gamepad *gamepad, int
  * \returns the USB vendor ID, or zero if unavailable.
  *
  * \since This function is available since SDL 3.0.0.
+ *
+ * \sa SDL_GetGamepadInstanceVendor
  */
 extern DECLSPEC Uint16 SDLCALL SDL_GetGamepadVendor(SDL_Gamepad *gamepad);
 
@@ -745,6 +773,8 @@ extern DECLSPEC Uint16 SDLCALL SDL_GetGamepadVendor(SDL_Gamepad *gamepad);
  * \returns the USB product ID, or zero if unavailable.
  *
  * \since This function is available since SDL 3.0.0.
+ *
+ * \sa SDL_GetGamepadInstanceProduct
  */
 extern DECLSPEC Uint16 SDLCALL SDL_GetGamepadProduct(SDL_Gamepad *gamepad);
 
@@ -757,6 +787,8 @@ extern DECLSPEC Uint16 SDLCALL SDL_GetGamepadProduct(SDL_Gamepad *gamepad);
  * \returns the USB product version, or zero if unavailable.
  *
  * \since This function is available since SDL 3.0.0.
+ *
+ * \sa SDL_GetGamepadInstanceProductVersion
  */
 extern DECLSPEC Uint16 SDLCALL SDL_GetGamepadProductVersion(SDL_Gamepad *gamepad);
 
@@ -818,9 +850,6 @@ extern DECLSPEC SDL_JoystickPowerLevel SDLCALL SDL_GetGamepadPowerLevel(SDL_Game
  *          connected, or SDL_FALSE if not.
  *
  * \since This function is available since SDL 3.0.0.
- *
- * \sa SDL_CloseGamepad
- * \sa SDL_OpenGamepad
  */
 extern DECLSPEC SDL_bool SDLCALL SDL_GamepadConnected(SDL_Gamepad *gamepad);
 
@@ -854,6 +883,7 @@ extern DECLSPEC SDL_Joystick *SDLCALL SDL_GetGamepadJoystick(SDL_Gamepad *gamepa
  * \since This function is available since SDL 3.0.0.
  *
  * \sa SDL_GamepadEventsEnabled
+ * \sa SDL_UpdateGamepads
  */
 extern DECLSPEC void SDLCALL SDL_SetGamepadEventsEnabled(SDL_bool enabled);
 
@@ -966,7 +996,7 @@ extern DECLSPEC SDL_GamepadAxis SDLCALL SDL_GetGamepadAxisFromString(const char
  *
  * \sa SDL_GetGamepadAxisFromString
  */
-extern DECLSPEC const char* SDLCALL SDL_GetGamepadStringForAxis(SDL_GamepadAxis axis);
+extern DECLSPEC const char * SDLCALL SDL_GetGamepadStringForAxis(SDL_GamepadAxis axis);
 
 /**
  * Query whether a gamepad has a given axis.
@@ -979,6 +1009,9 @@ extern DECLSPEC const char* SDLCALL SDL_GetGamepadStringForAxis(SDL_GamepadAxis
  * \returns SDL_TRUE if the gamepad has this axis, SDL_FALSE otherwise.
  *
  * \since This function is available since SDL 3.0.0.
+ *
+ * \sa SDL_GamepadHasButton
+ * \sa SDL_GetGamepadAxis
  */
 extern DECLSPEC SDL_bool SDLCALL SDL_GamepadHasAxis(SDL_Gamepad *gamepad, SDL_GamepadAxis axis);
 
@@ -1001,6 +1034,7 @@ extern DECLSPEC SDL_bool SDLCALL SDL_GamepadHasAxis(SDL_Gamepad *gamepad, SDL_Ga
  *
  * \since This function is available since SDL 3.0.0.
  *
+ * \sa SDL_GamepadHasAxis
  * \sa SDL_GetGamepadButton
  */
 extern DECLSPEC Sint16 SDLCALL SDL_GetGamepadAxis(SDL_Gamepad *gamepad, SDL_GamepadAxis axis);
@@ -1018,6 +1052,8 @@ extern DECLSPEC Sint16 SDLCALL SDL_GetGamepadAxis(SDL_Gamepad *gamepad, SDL_Game
  *          `SDL_GAMEPAD_BUTTON_INVALID` if no match was found.
  *
  * \since This function is available since SDL 3.0.0.
+ *
+ * \sa SDL_GetGamepadStringForButton
  */
 extern DECLSPEC SDL_GamepadButton SDLCALL SDL_GetGamepadButtonFromString(const char *str);
 
@@ -1048,6 +1084,8 @@ extern DECLSPEC const char* SDLCALL SDL_GetGamepadStringForButton(SDL_GamepadBut
  * \returns SDL_TRUE if the gamepad has this button, SDL_FALSE otherwise.
  *
  * \since This function is available since SDL 3.0.0.
+ *
+ * \sa SDL_GamepadHasAxis
  */
 extern DECLSPEC SDL_bool SDLCALL SDL_GamepadHasButton(SDL_Gamepad *gamepad, SDL_GamepadButton button);
 
@@ -1061,6 +1099,7 @@ extern DECLSPEC SDL_bool SDLCALL SDL_GamepadHasButton(SDL_Gamepad *gamepad, SDL_
  *
  * \since This function is available since SDL 3.0.0.
  *
+ * \sa SDL_GamepadHasButton
  * \sa SDL_GetGamepadAxis
  */
 extern DECLSPEC Uint8 SDLCALL SDL_GetGamepadButton(SDL_Gamepad *gamepad, SDL_GamepadButton button);
@@ -1098,6 +1137,8 @@ extern DECLSPEC SDL_GamepadButtonLabel SDLCALL SDL_GetGamepadButtonLabel(SDL_Gam
  * \returns number of touchpads
  *
  * \since This function is available since SDL 3.0.0.
+ *
+ * \sa SDL_GetNumGamepadTouchpadFingers
  */
 extern DECLSPEC int SDLCALL SDL_GetNumGamepadTouchpads(SDL_Gamepad *gamepad);
 
@@ -1110,6 +1151,9 @@ extern DECLSPEC int SDLCALL SDL_GetNumGamepadTouchpads(SDL_Gamepad *gamepad);
  * \returns number of supported simultaneous fingers
  *
  * \since This function is available since SDL 3.0.0.
+ *
+ * \sa SDL_GetGamepadTouchpadFinger
+ * \sa SDL_GetNumGamepadTouchpads
  */
 extern DECLSPEC int SDLCALL SDL_GetNumGamepadTouchpadFingers(SDL_Gamepad *gamepad, int touchpad);
 
@@ -1127,6 +1171,8 @@ extern DECLSPEC int SDLCALL SDL_GetNumGamepadTouchpadFingers(SDL_Gamepad *gamepa
  *          SDL_GetError() for more information.
  *
  * \since This function is available since SDL 3.0.0.
+ *
+ * \sa SDL_GetNumGamepadTouchpadFingers
  */
 extern DECLSPEC int SDLCALL SDL_GetGamepadTouchpadFinger(SDL_Gamepad *gamepad, int touchpad, int finger, Uint8 *state, float *x, float *y, float *pressure);
 
@@ -1138,6 +1184,10 @@ extern DECLSPEC int SDLCALL SDL_GetGamepadTouchpadFinger(SDL_Gamepad *gamepad, i
  * \returns SDL_TRUE if the sensor exists, SDL_FALSE otherwise.
  *
  * \since This function is available since SDL 3.0.0.
+ *
+ * \sa SDL_GetGamepadSensorData
+ * \sa SDL_GetGamepadSensorDataRate
+ * \sa SDL_SetGamepadSensorEnabled
  */
 extern DECLSPEC SDL_bool SDLCALL SDL_GamepadHasSensor(SDL_Gamepad *gamepad, SDL_SensorType type);
 
@@ -1151,6 +1201,9 @@ extern DECLSPEC SDL_bool SDLCALL SDL_GamepadHasSensor(SDL_Gamepad *gamepad, SDL_
  *          SDL_GetError() for more information.
  *
  * \since This function is available since SDL 3.0.0.
+ *
+ * \sa SDL_GamepadHasSensor
+ * \sa SDL_GamepadSensorEnabled
  */
 extern DECLSPEC int SDLCALL SDL_SetGamepadSensorEnabled(SDL_Gamepad *gamepad, SDL_SensorType type, SDL_bool enabled);
 
@@ -1162,6 +1215,8 @@ extern DECLSPEC int SDLCALL SDL_SetGamepadSensorEnabled(SDL_Gamepad *gamepad, SD
  * \returns SDL_TRUE if the sensor is enabled, SDL_FALSE otherwise.
  *
  * \since This function is available since SDL 3.0.0.
+ *
+ * \sa SDL_SetGamepadSensorEnabled
  */
 extern DECLSPEC SDL_bool SDLCALL SDL_GamepadSensorEnabled(SDL_Gamepad *gamepad, SDL_SensorType type);
 
@@ -1237,6 +1292,8 @@ extern DECLSPEC int SDLCALL SDL_RumbleGamepad(SDL_Gamepad *gamepad, Uint16 low_f
  *          SDL_GetError() for more information.
  *
  * \since This function is available since SDL 3.0.0.
+ *
+ * \sa SDL_RumbleGamepad
  */
 extern DECLSPEC int SDLCALL SDL_RumbleGamepadTriggers(SDL_Gamepad *gamepad, Uint16 left_rumble, Uint16 right_rumble, Uint32 duration_ms);
 
diff --git a/include/SDL3/SDL_haptic.h b/include/SDL3/SDL_haptic.h
index 3bf1808485f61..3bc17b8a800f0 100644
--- a/include/SDL3/SDL_haptic.h
+++ b/include/SDL3/SDL_haptic.h
@@ -898,10 +898,8 @@ extern DECLSPEC const char *SDLCALL SDL_GetHapticInstanceName(SDL_HapticID insta
  * \sa SDL_GetHaptics
  * \sa SDL_OpenHapticFromJoystick
  * \sa SDL_OpenHapticFromMouse
- * \sa SDL_PauseHaptic
  * \sa SDL_SetHapticAutocenter
  * \sa SDL_SetHapticGain
- * \sa SDL_StopHapticEffects
  */
 extern DECLSPEC SDL_Haptic *SDLCALL SDL_OpenHaptic(SDL_HapticID instance_id);
 
@@ -925,8 +923,6 @@ extern DECLSPEC SDL_Haptic *SDLCALL SDL_GetHapticFromInstanceID(SDL_HapticID ins
  *          failure; call SDL_GetError() for more information.
  *
  * \since This function is available since SDL 3.0.0.
- *
- * \sa SDL_OpenHaptic
  */
 extern DECLSPEC SDL_HapticID SDLCALL SDL_GetHapticInstanceID(SDL_Haptic *haptic);
 
@@ -941,7 +937,6 @@ extern DECLSPEC SDL_HapticID SDLCALL SDL_GetHapticInstanceID(SDL_Haptic *haptic)
  * \since This function is available since SDL 3.0.0.
  *
  * \sa SDL_GetHapticInstanceName
- * \sa SDL_OpenHaptic
  */
 extern DECLSPEC const char *SDLCALL SDL_GetHapticName(SDL_Haptic *haptic);
 
@@ -964,7 +959,7 @@ extern DECLSPEC SDL_bool SDLCALL SDL_IsMouseHaptic(void);
  *
  * \since This function is available since SDL 3.0.0.
  *
- * \sa SDL_OpenHaptic
+ * \sa SDL_CloseHaptic
  * \sa SDL_IsMouseHaptic
  */
 extern DECLSPEC SDL_Haptic *SDLCALL SDL_OpenHapticFromMouse(void);
@@ -999,7 +994,6 @@ extern DECLSPEC SDL_bool SDLCALL SDL_IsJoystickHaptic(SDL_Joystick *joystick);
  * \since This function is available since SDL 3.0.0.
  *
  * \sa SDL_CloseHaptic
- * \sa SDL_OpenHaptic
  * \sa SDL_IsJoystickHaptic
  */
 extern DECLSPEC SDL_Haptic *SDLCALL SDL_OpenHapticFromJoystick(SDL_Joystick *joystick);
@@ -1127,7 +1121,6 @@ extern DECLSPEC int SDLCALL SDL_CreateHapticEffect(SDL_Haptic *haptic, const SDL
  *
  * \since This function is available since SDL 3.0.0.
  *
- * \sa SDL_DestroyHapticEffect
  * \sa SDL_CreateHapticEffect
  * \sa SDL_RunHapticEffect
  */
@@ -1151,9 +1144,9 @@ extern DECLSPEC int SDLCALL SDL_UpdateHapticEffect(SDL_Haptic *haptic, int effec
  *
  * \since This function is available since SDL 3.0.0.
  *
- * \sa SDL_DestroyHapticEffect
  * \sa SDL_GetHapticEffectStatus
  * \sa SDL_StopHapticEffect
+ * \sa SDL_StopHapticEffects
  */
 extern DECLSPEC int SDLCALL SDL_RunHapticEffect(SDL_Haptic *haptic, int effect, Uint32 iterations);
 
@@ -1169,8 +1162,8 @@ extern DECLSPEC int SDLCALL SDL_RunHapticEffect(SDL_Haptic *haptic, int effect,
  *
  * \since This function is available since SDL 3.0.0.
  *
- * \sa SDL_DestroyHapticEffect
  * \sa SDL_RunHapticEffect
+ * \sa SDL_StopHapticEffects
  */
 extern DECLSPEC int SDLCALL SDL_StopHapticEffect(SDL_Haptic *haptic, int effect);
 
@@ -1200,9 +1193,6 @@ extern DECLSPEC void SDLCALL SDL_DestroyHapticEffect(SDL_Haptic *haptic, int eff
  *          code on failure; call SDL_GetError() for more information.
  *
  * \since This function is available since SDL 3.0.0.
- *
- * \sa SDL_RunHapticEffect
- * \sa SDL_StopHapticEffect
  */
 extern DECLSPEC int SDLCALL SDL_GetHapticEffectStatus(SDL_Haptic *haptic, int effect);
 
@@ -1288,6 +1278,9 @@ extern DECLSPEC int SDLCALL SDL_ResumeHaptic(SDL_Haptic *haptic);
  *          SDL_GetError() for more information.
  *
  * \since This function is available since SDL 3.0.0.
+ *
+ * \sa SDL_RunHapticEffect
+ * \sa SDL_StopHapticEffects
  */
 extern DECLSPEC int SDLCALL SDL_StopHapticEffects(SDL_Haptic *haptic);
 
@@ -1300,8 +1293,6 @@ extern DECLSPEC int SDLCALL SDL_StopHapticEffects(SDL_Haptic *haptic

(Patch may be truncated, please check the link at the top of this post.)